204 lines
417 KiB
JavaScript
204 lines
417 KiB
JavaScript
/**
|
||
* @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
|
||
* Available via the MIT or new BSD license.
|
||
* see: http://github.com/jrburke/almond for details
|
||
*/
|
||
|
||
/*!
|
||
* jQuery JavaScript Library v1.11.0
|
||
* http://jquery.com/
|
||
*
|
||
* Includes Sizzle.js
|
||
* http://sizzlejs.com/
|
||
*
|
||
* Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
|
||
* Released under the MIT license
|
||
* http://jquery.org/license
|
||
*
|
||
* Date: 2014-01-23T21:02Z
|
||
*/
|
||
|
||
/*!
|
||
* Sizzle CSS Selector Engine v1.10.16
|
||
* http://sizzlejs.com/
|
||
*
|
||
* Copyright 2013 jQuery Foundation, Inc. and other contributors
|
||
* Released under the MIT license
|
||
* http://jquery.org/license
|
||
*
|
||
* Date: 2014-01-13
|
||
*/
|
||
|
||
/**
|
||
* @license RequireJS text 2.0.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
|
||
* Available via the MIT or new BSD license.
|
||
* see: http://github.com/requirejs/text for details
|
||
*/
|
||
|
||
// Underscore.js 1.8.2
|
||
// http://underscorejs.org
|
||
// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||
// Underscore may be freely distributed under the MIT license.
|
||
|
||
// RequireJS UnderscoreJS template plugin
|
||
// http://github.com/jfparadis/requirejs-tpl
|
||
//
|
||
// An alternative to http://github.com/ZeeAgency/requirejs-tpl
|
||
//
|
||
// Using UnderscoreJS micro-templates at http://underscorejs.org/#template
|
||
// Using and RequireJS text.js at http://requirejs.org/docs/api.html#text
|
||
// @author JF Paradis
|
||
// @version 0.0.2
|
||
//
|
||
// Released under the MIT license
|
||
//
|
||
// Usage:
|
||
// require(['backbone', 'tpl!mytemplate'], function (Backbone, mytemplate) {
|
||
// return Backbone.View.extend({
|
||
// initialize: function(){
|
||
// this.render();
|
||
// },
|
||
// render: function(){
|
||
// this.$el.html(mytemplate({message: 'hello'}));
|
||
// });
|
||
// });
|
||
//
|
||
// Configuration: (optional)
|
||
// require.config({
|
||
// tpl: {
|
||
// extension: '.tpl' // default = '.html'
|
||
// }
|
||
// });
|
||
|
||
/*
|
||
jed.js
|
||
v0.5.0beta
|
||
|
||
https://github.com/SlexAxton/Jed
|
||
-----------
|
||
A gettext compatible i18n library for modern JavaScript Applications
|
||
|
||
by Alex Sexton - AlexSexton [at] gmail - @SlexAxton
|
||
WTFPL license for use
|
||
Dojo CLA for contributions
|
||
|
||
Jed offers the entire applicable GNU gettext spec'd set of
|
||
functions, but also offers some nicer wrappers around them.
|
||
The api for gettext was written for a language with no function
|
||
overloading, so Jed allows a little more of that.
|
||
|
||
Many thanks to Joshua I. Miller - unrtst@cpan.org - who wrote
|
||
gettext.js back in 2008. I was able to vet a lot of my ideas
|
||
against his. I also made sure Jed passed against his tests
|
||
in order to offer easy upgrades -- jsgettext.berlios.de
|
||
*/
|
||
|
||
// Underscore 1.3.0 was used to port and is licensed
|
||
|
||
/**
|
||
sprintf() for JavaScript 0.7-beta1
|
||
http://www.diveintojavascript.com/projects/javascript-sprintf
|
||
|
||
Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
|
||
All rights reserved.
|
||
|
||
Redistribution and use in source and binary forms, with or without
|
||
modification, are permitted provided that the following conditions are met:
|
||
* Redistributions of source code must retain the above copyright
|
||
notice, this list of conditions and the following disclaimer.
|
||
* Redistributions in binary form must reproduce the above copyright
|
||
notice, this list of conditions and the following disclaimer in the
|
||
documentation and/or other materials provided with the distribution.
|
||
* Neither the name of sprintf() for JavaScript nor the
|
||
names of its contributors may be used to endorse or promote products
|
||
derived from this software without specific prior written permission.
|
||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
|
||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*/
|
||
|
||
//! moment.js
|
||
//! version : 2.6.0
|
||
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
||
//! license : MIT
|
||
//! momentjs.com
|
||
|
||
/*
|
||
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
|
||
* in FIPS PUB 180-1
|
||
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
|
||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||
* Distributed under the BSD License
|
||
* See http://pajhome.org.uk/crypt/md5 for details.
|
||
*/
|
||
|
||
/*
|
||
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||
* Digest Algorithm, as defined in RFC 1321.
|
||
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
|
||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||
* Distributed under the BSD License
|
||
* See http://pajhome.org.uk/crypt/md5 for more info.
|
||
*/
|
||
|
||
/*
|
||
This program is distributed under the terms of the MIT license.
|
||
Please see the LICENSE file for details.
|
||
|
||
Copyright 2006-2008, OGG, LLC
|
||
*/
|
||
|
||
/*
|
||
Copyright 2010, François de Metz <francois@2metz.fr>
|
||
*/
|
||
|
||
// (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||
// Backbone may be freely distributed under the MIT license.
|
||
// For all details and documentation:
|
||
// http://backbonejs.org
|
||
|
||
/*!
|
||
* Backbone.Overview
|
||
*
|
||
* Copyright (c) 2014, JC Brand <jc@opkode.com>
|
||
* Licensed under the Mozilla Public License (MPL)
|
||
*/
|
||
|
||
/*!
|
||
* jQuery Browser Plugin 0.0.7
|
||
* https://github.com/gabceb/jquery-browser-plugin
|
||
*
|
||
* Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
|
||
* http://jquery.org/license
|
||
*
|
||
* Modifications Copyright 2014 Gabriel Cebrian
|
||
* https://github.com/gabceb
|
||
*
|
||
* Released under the MIT license
|
||
*
|
||
* Date: 12-12-2014
|
||
*/
|
||
|
||
/*!
|
||
* typeahead.js 0.10.5
|
||
* https://github.com/twitter/typeahead.js
|
||
* Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT
|
||
*/
|
||
|
||
/*!
|
||
* Converse.js (Web-based XMPP instant messaging client)
|
||
* http://conversejs.org
|
||
*
|
||
* Copyright (c) 2012, Jan-Carel Brand <jc@opkode.com>
|
||
* Licensed under the Mozilla Public License (MPL)
|
||
*/
|
||
|
||
var requirejs,require,define;(function(e){function h(e,t){return f.call(e,t)}function p(e,t){var n,r,i,s,o,a,f,l,h,p,d,v=t&&t.split("/"),m=u.map,g=m&&m["*"]||{};if(e&&e.charAt(0)===".")if(t){e=e.split("/"),o=e.length-1,u.nodeIdCompat&&c.test(e[o])&&(e[o]=e[o].replace(c,"")),e=v.slice(0,v.length-1).concat(e);for(h=0;h<e.length;h+=1){d=e[h];if(d===".")e.splice(h,1),h-=1;else if(d===".."){if(h===1&&(e[2]===".."||e[0]===".."))break;h>0&&(e.splice(h-1,2),h-=2)}}e=e.join("/")}else e.indexOf("./")===0&&(e=e.substring(2));if((v||g)&&m){n=e.split("/");for(h=n.length;h>0;h-=1){r=n.slice(0,h).join("/");if(v)for(p=v.length;p>0;p-=1){i=m[v.slice(0,p).join("/")];if(i){i=i[r];if(i){s=i,a=h;break}}}if(s)break;!f&&g&&g[r]&&(f=g[r],l=h)}!s&&f&&(s=f,a=l),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function d(t,r){return function(){var i=l.call(arguments,0);return typeof i[0]!="string"&&i.length===1&&i.push(null),n.apply(e,i.concat([t,r]))}}function v(e){return function(t){return p(t,e)}}function m(e){return function(t){s[e]=t}}function g(n){if(h(o,n)){var r=o[n];delete o[n],a[n]=!0,t.apply(e,r)}if(!h(s,n)&&!h(a,n))throw new Error("No "+n);return s[n]}function y(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function b(e){return function(){return u&&u.config&&u.config[e]||{}}}var t,n,r,i,s={},o={},u={},a={},f=Object.prototype.hasOwnProperty,l=[].slice,c=/\.js$/;r=function(e,t){var n,r=y(e),i=r[0];return e=r[1],i&&(i=p(i,t),n=g(i)),i?n&&n.normalize?e=n.normalize(e,v(t)):e=p(e,t):(e=p(e,t),r=y(e),i=r[0],e=r[1],i&&(n=g(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},i={require:function(e){return d(e)},exports:function(e){var t=s[e];return typeof t!="undefined"?t:s[e]={}},module:function(e){return{id:e,uri:"",exports:s[e],config:b(e)}}},t=function(t,n,u,f){var l,c,p,v,y,b=[],w=typeof u,E;f=f||t;if(w==="undefined"||w==="function"){n=!n.length&&u.length?["require","exports","module"]:n;for(y=0;y<n.length;y+=1){v=r(n[y],f),c=v.f;if(c==="require")b[y]=i.require(t);else if(c==="exports")b[y]=i.exports(t),E=!0;else if(c==="module")l=b[y]=i.module(t);else if(h(s,c)||h(o,c)||h(a,c))b[y]=g(c);else{if(!v.p)throw new Error(t+" missing "+c);v.p.load(v.n,d(f,!0),m(c),{}),b[y]=s[c]}}p=u?u.apply(s[t],b):undefined;if(t)if(l&&l.exports!==e&&l.exports!==s[t])s[t]=l.exports;else if(p!==e||!E)s[t]=p}else t&&(s[t]=u)},requirejs=require=n=function(s,o,a,f,l){if(typeof s=="string")return i[s]?i[s](o):g(r(s,o).f);if(!s.splice){u=s,u.deps&&n(u.deps,u.callback);if(!o)return;o.splice?(s=o,o=a,a=null):s=e}return o=o||function(){},typeof a=="function"&&(a=f,f=l),f?t(e,s,o,a):setTimeout(function(){t(e,s,o,a)},4),n},n.config=function(e){return n(e)},requirejs._defined=s,define=function(e,t,n){if(typeof e!="string")throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),!h(s,e)&&!h(o,e)&&(o[e]=[e,t,n])},define.amd={jQuery:!0}})(),define("components/almond/almond.js",function(){}),function(e,t){typeof module=="object"&&typeof module.exports=="object"?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}(typeof window!="undefined"?window:this,function(e,t){function y(e){var t=e.length,n=p.type(e);return n==="function"||p.isWindow(e)?!1:e.nodeType===1&&t?!0:n==="array"||t===0||typeof t=="number"&&t>0&&t-1 in e}function x(e,t,n){if(p.isFunction(t))return p.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return p.grep(e,function(e){return e===t!==n});if(typeof t=="string"){if(S.test(t))return p.filter(t,e,n);t=p.filter(t,e)}return p.grep(e,function(e){return p.inArray(e,t)>=0!==n})}function O(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function D(e){var t=_[e]={};return p.each(e.match(M)||[],function(e,n){t[n]=!0}),t}function H(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",B,!1),e.removeEventListener("load",B,!1)):(N.detachEvent("onreadystatechange",B),e.detachEvent("onload",B))}function B(){if(N.addEventListener||event.type==="load"||N.readyState==="complete")H(),p.ready()}function R(e,t,n){if(n===undefined&&e.nodeType===1){var r="data-"+t.replace(q,"-$1").toLowerCase();n=e.getAttribute(r);if(typeof n=="string"){try{n=n==="true"?!0:n==="false"?!1:n==="null"?null:+n+""===n?+n:I.test(n)?p.parseJSON(n):n}catch(i){}p.data(e,t,n)}else n=undefined}return n}function U(e){var t;for(t in e){if(t==="data"&&p.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function z(e,t,r,i){if(!p.acceptData(e))return;var s,o,u=p.expando,a=e.nodeType,f=a?p.cache:e,l=a?e[u]:e[u]&&u;if((!l||!f[l]||!i&&!f[l].data)&&r===undefined&&typeof t=="string")return;l||(a?l=e[u]=n.pop()||p.guid++:l=u),f[l]||(f[l]=a?{}:{toJSON:p.noop});if(typeof t=="object"||typeof t=="function")i?f[l]=p.extend(f[l],t):f[l].data=p.extend(f[l].data,t);return o=f[l],i||(o.data||(o.data={}),o=o.data),r!==undefined&&(o[p.camelCase(t)]=r),typeof t=="string"?(s=o[t],s==null&&(s=o[p.camelCase(t)])):s=o,s}function W(e,t,n){if(!p.acceptData(e))return;var r,i,s=e.nodeType,o=s?p.cache:e,u=s?e[p.expando]:p.expando;if(!o[u])return;if(t){r=n?o[u]:o[u].data;if(r){p.isArray(t)?t=t.concat(p.map(t,p.camelCase)):t in r?t=[t]:(t=p.camelCase(t),t in r?t=[t]:t=t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!U(r):!p.isEmptyObject(r))return}}if(!n){delete o[u].data;if(!U(o[u]))return}s?p.cleanData([e],!0):c.deleteExpando||o!=o.window?delete o[u]:o[u]=null}function tt(){return!0}function nt(){return!1}function rt(){try{return N.activeElement}catch(e){}}function it(e){var t=st.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Et(e,t){var n,r,i=0,s=typeof e.getElementsByTagName!==j?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==j?e.querySelectorAll(t||"*"):undefined;if(!s)for(s=[],n=e.childNodes||e;(r=n[i])!=null;i++)!t||p.nodeName(r,t)?s.push(r):p.merge(s,Et(r,t));return t===undefined||t&&p.nodeName(e,t)?p.merge([e],s):s}function St(e){K.test(e.type)&&(e.defaultChecked=e.checked)}function xt(e,t){return p.nodeName(e,"table")&&p.nodeName(t.nodeType!==11?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Tt(e){return e.type=(p.find.attr(e,"type")!==null)+"/"+e.type,e}function Nt(e){var t=mt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ct(e,t){var n,r=0;for(;(n=e[r])!=null;r++)p._data(n,"globalEval",!t||p._data(t[r],"globalEval"))}function kt(e,t){if(t.nodeType!==1||!p.hasData(e))return;var n,r,i,s=p._data(e),o=p._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)p.event.add(t,n,u[n][r])}o.data&&(o.data=p.extend({},o.data))}function Lt(e,t){var n,r,i;if(t.nodeType!==1)return;n=t.nodeName.toLowerCase();if(!c.noCloneEvent&&t[p.expando]){i=p._data(t);for(r in i.events)p.removeEvent(t,r,i.handle);t.removeAttribute(p.expando)}if(n==="script"&&t.text!==e.text)Tt(t).text=e.text,Nt(t);else if(n==="object")t.parentNode&&(t.outerHTML=e.outerHTML),c.html5Clone&&e.innerHTML&&!p.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML);else if(n==="input"&&K.test(e.type))t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value);else if(n==="option")t.defaultSelected=t.selected=e.defaultSelected;else if(n==="input"||n==="textarea")t.defaultValue=e.defaultValue}function Mt(t,n){var r=p(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle?e.getDefaultComputedStyle(r[0]).display:p.css(r[0],"display");return r.detach(),i}function _t(e){var t=N,n=Ot[e];if(!n){n=Mt(e,t);if(n==="none"||!n)At=(At||p("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(At[0].contentWindow||At[0].contentDocument).document,t.write(),t.close(),n=Mt(e,t),At.detach();Ot[e]=n}return n}function Ft(e,t){return{get:function(){var n=e();if(n==null)return;if(n){delete this.get;return}return(this.get=t).apply(this,arguments)}}}function $t(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Vt.length;while(i--){t=Vt[i]+n;if(t in e)return t}return r}function Jt(e,t){var n,r,i,s=[],o=0,u=e.length;for(;o<u;o++){r=e[o];if(!r.style)continue;s[o]=p._data(r,"olddisplay"),n=r.style.display,t?(!s[o]&&n==="none"&&(r.style.display=""),r.style.display===""&&$(r)&&(s[o]=p._data(r,"olddisplay",_t(r.nodeName)))):s[o]||(i=$(r),(n&&n!=="none"||!i)&&p._data(r,"olddisplay",i?n:p.css(r,"display")))}for(o=0;o<u;o++){r=e[o];if(!r.style)continue;if(!t||r.style.display==="none"||r.style.display==="")r.style.display=t?s[o]||"":"none"}return e}function Kt(e,t,n){var r=Ut.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Qt(e,t,n,r,i){var s=n===(r?"border":"content")?4:t==="width"?1:0,o=0;for(;s<4;s+=2)n==="margin"&&(o+=p.css(e,n+V[s],!0,i)),r?(n==="content"&&(o-=p.css(e,"padding"+V[s],!0,i)),n!=="margin"&&(o-=p.css(e,"border"+V[s]+"Width",!0,i))):(o+=p.css(e,"padding"+V[s],!0,i),n!=="padding"&&(o+=p.css(e,"border"+V[s]+"Width",!0,i)));return o}function Gt(e,t,n){var r=!0,i=t==="width"?e.offsetWidth:e.offsetHeight,s=Ht(e),o=c.boxSizing()&&p.css(e,"boxSizing",!1,s)==="border-box";if(i<=0||i==null){i=Bt(e,t,s);if(i<0||i==null)i=e.style[t];if(Pt.test(i))return i;r=o&&(c.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Qt(e,t,n||(o?"border":"content"),r,s)+"px"}function Yt(e,t,n,r,i){return new Yt.prototype.init(e,t,n,r,i)}function un(){return setTimeout(function(){Zt=undefined}),Zt=p.now()}function an(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=V[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function fn(e,t,n){var r,i=(on[t]||[]).concat(on["*"]),s=0,o=i.length;for(;s<o;s++)if(r=i[s].call(n,t,e))return r}function ln(e,t,n){var r,i,s,o,u,a,f,l,h=this,d={},v=e.style,m=e.nodeType&&$(e),g=p._data(e,"fxshow");n.queue||(u=p._queueHooks(e,"fx"),u.unqueued==null&&(u.unqueued=0,a=u.empty.fire,u.empty.fire=function(){u.unqueued||a()}),u.unqueued++,h.always(function(){h.always(function(){u.unqueued--,p.queue(e,"fx").length||u.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[v.overflow,v.overflowX,v.overflowY],f=p.css(e,"display"),l=_t(e.nodeName),f==="none"&&(f=l),f==="inline"&&p.css(e,"float")==="none"&&(!c.inlineBlockNeedsLayout||l==="inline"?v.display="inline-block":v.zoom=1)),n.overflow&&(v.overflow="hidden",c.shrinkWrapBlocks()||h.always(function(){v.overflow=n.overflow[0],v.overflowX=n.overflow[1],v.overflowY=n.overflow[2]}));for(r in t){i=t[r];if(tn.exec(i)){delete t[r],s=s||i==="toggle";if(i===(m?"hide":"show")){if(i!=="show"||!g||g[r]===undefined)continue;m=!0}d[r]=g&&g[r]||p.style(e,r)}}if(!p.isEmptyObject(d)){g?"hidden"in g&&(m=g.hidden):g=p._data(e,"fxshow",{}),s&&(g.hidden=!m),m?p(e).show():h.done(function(){p(e).hide()}),h.done(function(){var t;p._removeData(e,"fxshow");for(t in d)p.style(e,t,d[t])});for(r in d)o=fn(m?g[r]:0,r,h),r in g||(g[r]=o.start,m&&(o.end=o.start,o.start=r==="width"||r==="height"?1:0))}}function cn(e,t){var n,r,i,s,o;for(n in e){r=p.camelCase(n),i=t[r],s=e[n],p.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=p.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function hn(e,t,n){var r,i,s=0,o=sn.length,u=p.Deferred().always(function(){delete a.elem}),a=function(){if(i)return!1;var t=Zt||un(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,s=1-r,o=0,a=f.tweens.length;for(;o<a;o++)f.tweens[o].run(s);return u.notifyWith(e,[f,s,n]),s<1&&a?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:p.extend({},t),opts:p.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Zt||un(),duration:n.duration,tweens:[],createTween:function(t,n){var r=p.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(r),r},stop:function(t){var n=0,r=t?f.tweens.length:0;if(i)return this;i=!0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;cn(l,f.opts.specialEasing);for(;s<o;s++){r=sn[s].call(f,e,l,f.opts);if(r)return r}return p.map(l,fn,f),p.isFunction(f.opts.start)&&f.opts.start.call(e,f),p.fx.timer(p.extend(a,{elem:e,anim:f,queue:f.opts.queue})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function In(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i=0,s=t.toLowerCase().match(M)||[];if(p.isFunction(n))while(r=s[i++])r.charAt(0)==="+"?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,t,n,r){function o(u){var a;return i[u]=!0,p.each(e[u]||[],function(e,u){var f=u(t,n,r);if(typeof f=="string"&&!s&&!i[f])return t.dataTypes.unshift(f),o(f),!1;if(s)return!(a=f)}),a}var i={},s=e===Bn;return o(t.dataTypes[0])||!i["*"]&&o("*")}function Rn(e,t){var n,r,i=p.ajaxSettings.flatOptions||{};for(r in t)t[r]!==undefined&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&p.extend(!0,e,n),e}function Un(e,t,n){var r,i,s,o,u=e.contents,a=e.dataTypes;while(a[0]==="*")a.shift(),i===undefined&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){a.unshift(o);break}if(a[0]in n)s=a[0];else{for(o in n){if(!a[0]||e.converters[o+" "+a[0]]){s=o;break}r||(r=o)}s=s||r}if(s)return s!==a[0]&&a.unshift(s),n[s]}function zn(e,t,n,r){var i,s,o,u,a,f={},l=e.dataTypes.slice();if(l[1])for(o in e.converters)f[o.toLowerCase()]=e.converters[o];s=l.shift();while(s){e.responseFields[s]&&(n[e.responseFields[s]]=t),!a&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a=s,s=l.shift();if(s)if(s==="*")s=a;else if(a!=="*"&&a!==s){o=f[a+" "+s]||f["* "+s];if(!o)for(i in f){u=i.split(" ");if(u[1]===s){o=f[a+" "+u[0]]||f["* "+u[0]];if(o){o===!0?o=f[i]:f[i]!==!0&&(s=u[0],l.unshift(u[1]));break}}}if(o!==!0)if(o&&e["throws"])t=o(t);else try{t=o(t)}catch(c){return{state:"parsererror",error:o?c:"No conversion from "+a+" to "+s}}}}return{state:"success",data:t}}function Kn(e,t,n,r){var i;if(p.isArray(t))p.each(t,function(t,i){n||Xn.test(e)?r(e,i):Kn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&p.type(t)==="object")for(i in t)Kn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Zn(){try{return new e.XMLHttpRequest}catch(t){}}function er(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function sr(e){return p.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n=[],r=n.slice,i=n.concat,s=n.push,o=n.indexOf,u={},a=u.toString,f=u.hasOwnProperty,l="".trim,c={},h="1.11.0",p=function(e,t){return new p.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,v=/^-ms-/,m=/-([\da-z])/gi,g=function(e,t){return t.toUpperCase()};p.fn=p.prototype={jquery:h,constructor:p,selector:"",length:0,toArray:function(){return r.call(this)},get:function(e){return e!=null?e<0?this[e+this.length]:this[e]:r.call(this)},pushStack:function(e){var t=p.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return p.each(this,e,t)},map:function(e){return this.pushStack(p.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(r.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:s,sort:n.sort,splice:n.splice},p.extend=p.fn.extend=function(){var e,t,n,r,i,s,o=arguments[0]||{},u=1,a=arguments.length,f=!1;typeof o=="boolean"&&(f=o,o=arguments[u]||{},u++),typeof o!="object"&&!p.isFunction(o)&&(o={}),u===a&&(o=this,u--);for(;u<a;u++)if((i=arguments[u])!=null)for(r in i){e=o[r],n=i[r];if(o===n)continue;f&&n&&(p.isPlainObject(n)||(t=p.isArray(n)))?(t?(t=!1,s=e&&p.isArray(e)?e:[]):s=e&&p.isPlainObject(e)?e:{},o[r]=p.extend(f,s,n)):n!==undefined&&(o[r]=n)}return o},p.extend({expando:"jQuery"+(h+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return p.type(e)==="function"},isArray:Array.isArray||function(e){return p.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||p.type(e)!=="object"||e.nodeType||p.isWindow(e))return!1;try{if(e.constructor&&!f.call(e,"constructor")&&!f.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(c.ownLast)for(t in e)return f.call(e,t);for(t in e);return t===undefined||f.call(e,t)},type:function(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?u[a.call(e)]||"object":typeof e},globalEval:function(t){t&&p.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(v,"ms-").replace(m,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,s=e.length,o=y(e);if(n)if(o)for(;i<s;i++){r=t.apply(e[i],n);if(r===!1)break}else for(i in e){r=t.apply(e[i],n);if(r===!1)break}else if(o)for(;i<s;i++){r=t.call(e[i],i,e[i]);if(r===!1)break}else for(i in e){r=t.call(e[i],i,e[i]);if(r===!1)break}return e},trim:l&&!l.call(" ")?function(e){return e==null?"":l.call(e)}:function(e){return e==null?"":(e+"").replace(d,"")},makeArray:function(e,t){var n=t||[];return e!=null&&(y(Object(e))?p.merge(n,typeof e=="string"?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(o)return o.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){var n=+t.length,r=0,i=e.length;while(r<n)e[i++]=t[r++];if(n!==n)while(t[r]!==undefined)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length,u=!n;for(;s<o;s++)r=!t(e[s],s),r!==u&&i.push(e[s]);return i},map:function(e,t,n){var r,s=0,o=e.length,u=y(e),a=[];if(u)for(;s<o;s++)r=t(e[s],s,n),r!=null&&a.push(r);else for(s in e)r=t(e[s],s,n),r!=null&&a.push(r);return i.apply([],a)},guid:1,proxy:function(e,t){var n,i,s;return typeof t=="string"&&(s=e[t],t=e,e=s),p.isFunction(e)?(n=r.call(arguments,2),i=function(){return e.apply(t||this,n.concat(r.call(arguments)))},i.guid=e.guid=e.guid||p.guid++,i):undefined},now:function(){return+(new Date)},support:c}),p.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){u["[object "+t+"]"]=t.toLowerCase()});var b=function(e){function rt(e,t,r,i){var s,o,u,a,f,h,v,m,w,E;(t?t.ownerDocument||t:b)!==c&&l(t),t=t||c,r=r||[];if(!e||typeof e!="string")return r;if((a=t.nodeType)!==1&&a!==9)return[];if(p&&!i){if(s=G.exec(e))if(u=s[1]){if(a===9){o=t.getElementById(u);if(!o||!o.parentNode)return r;if(o.id===u)return r.push(o),r}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(u))&&g(t,o)&&o.id===u)return r.push(o),r}else{if(s[2])return _.apply(r,t.getElementsByTagName(e)),r;if((u=s[3])&&n.getElementsByClassName&&t.getElementsByClassName)return _.apply(r,t.getElementsByClassName(u)),r}if(n.qsa&&(!d||!d.test(e))){m=v=y,w=t,E=a===9&&e;if(a===1&&t.nodeName.toLowerCase()!=="object"){h=dt(e),(v=t.getAttribute("id"))?m=v.replace(Z,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",f=h.length;while(f--)h[f]=m+vt(h[f]);w=Y.test(e)&&ht(t.parentNode)||t,E=h.join(",")}if(E)try{return _.apply(r,w.querySelectorAll(E)),r}catch(S){}finally{v||t.removeAttribute("id")}}}return xt(e.replace(R,"$1"),t,r,i)}function it(){function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function st(e){return e[y]=!0,e}function ot(e){var t=c.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ut(e,t){var n=e.split("|"),i=e.length;while(i--)r.attrHandle[n[i]]=t}function at(e,t){var n=t&&e,r=n&&e.nodeType===1&&t.nodeType===1&&(~t.sourceIndex||k)-(~e.sourceIndex||k);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function ct(e){return st(function(t){return t=+t,st(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ht(e){return e&&typeof e.getElementsByTagName!==C&&e}function pt(){}function dt(e,t){var n,i,s,o,u,a,f,l=x[e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=r.preFilter;while(u){if(!n||(i=U.exec(u)))i&&(u=u.slice(i[0].length)||u),a.push(s=[]);n=!1;if(i=z.exec(u))n=i.shift(),s.push({value:n,type:i[0].replace(R," ")}),u=u.slice(n.length);for(o in r.filter)(i=$[o].exec(u))&&(!f[o]||(i=f[o](i)))&&(n=i.shift(),s.push({value:n,type:o,matches:i}),u=u.slice(n.length));if(!n)break}return t?u.length:u?rt.error(e):x(e,a).slice(0)}function vt(e){var t=0,n=e.length,r="";for(;t<n;t++)r+=e[t].value;return r}function mt(e,t,n){var r=t.dir,i=n&&r==="parentNode",s=E++;return t.first?function(t,n,s){while(t=t[r])if(t.nodeType===1||i)return e(t,n,s)}:function(t,n,o){var u,a,f=[w,s];if(o){while(t=t[r])if(t.nodeType===1||i)if(e(t,n,o))return!0}else while(t=t[r])if(t.nodeType===1||i){a=t[y]||(t[y]={});if((u=a[r])&&u[0]===w&&u[1]===s)return f[2]=u[2];a[r]=f;if(f[2]=e(t,n,o))return!0}}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function yt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function bt(e,t,n,r,i,s){return r&&!r[y]&&(r=bt(r)),i&&!i[y]&&(i=bt(i,s)),st(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||St(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?yt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=yt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?P.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=yt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):_.apply(o,g)})}function wt(e){var t,n,i,s=e.length,o=r.relative[e[0].type],a=o||r.relative[" "],f=o?1:0,l=mt(function(e){return e===t},a,!0),c=mt(function(e){return P.call(t,e)>-1},a,!0),h=[function(e,n,r){return!o&&(r||n!==u)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];for(;f<s;f++)if(n=r.relative[e[f].type])h=[mt(gt(h),n)];else{n=r.filter[e[f].type].apply(null,e[f].matches);if(n[y]){i=++f;for(;i<s;i++)if(r.relative[e[i].type])break;return bt(f>1&>(h),f>1&&vt(e.slice(0,f-1).concat({value:e[f-2].type===" "?"*":""})).replace(R,"$1"),n,f<i&&wt(e.slice(f,i)),i<s&&wt(e=e.slice(i)),i<s&&vt(e))}h.push(n)}return gt(h)}function Et(e,t){var n=t.length>0,i=e.length>0,s=function(s,o,a,f,l){var h,p,d,v=0,m="0",g=s&&[],y=[],b=u,E=s||i&&r.find.TAG("*",l),S=w+=b==null?1:Math.random()||.1,x=E.length;l&&(u=o!==c&&o);for(;m!==x&&(h=E[m])!=null;m++){if(i&&h){p=0;while(d=e[p++])if(d(h,o,a)){f.push(h);break}l&&(w=S)}n&&((h=!d&&h)&&v--,s&&g.push(h))}v+=m;if(n&&m!==v){p=0;while(d=t[p++])d(g,y,o,a);if(s){if(v>0)while(m--)!g[m]&&!y[m]&&(y[m]=O.call(f));y=yt(y)}_.apply(f,y),l&&!s&&y.length>0&&v+t.length>1&&rt.uniqueSort(f)}return l&&(w=S,u=b),g};return n?st(s):s}function St(e,t,n){var r=0,i=t.length;for(;r<i;r++)rt(e,t[r],n);return n}function xt(e,t,i,s){var u,a,f,l,c,h=dt(e);if(!s&&h.length===1){a=h[0]=h[0].slice(0);if(a.length>2&&(f=a[0]).type==="ID"&&n.getById&&t.nodeType===9&&p&&r.relative[a[1].type]){t=(r.find.ID(f.matches[0].replace(et,tt),t)||[])[0];if(!t)return i;e=e.slice(a.shift().value.length)}u=$.needsContext.test(e)?0:a.length;while(u--){f=a[u];if(r.relative[l=f.type])break;if(c=r.find[l])if(s=c(f.matches[0].replace(et,tt),Y.test(a[0].type)&&ht(t.parentNode)||t)){a.splice(u,1),e=s.length&&vt(a);if(!e)return _.apply(i,s),i;break}}}return o(e,h)(s,t,!p,i,Y.test(e)&&ht(t.parentNode)||t),i}var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y="sizzle"+ -(new Date),b=e.document,w=0,E=0,S=it(),x=it(),T=it(),N=function(e,t){return e===t&&(f=!0),0},C=typeof undefined,k=1<<31,L={}.hasOwnProperty,A=[],O=A.pop,M=A.push,_=A.push,D=A.slice,P=A.indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},H="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",B="[\\x20\\t\\r\\n\\f]",j="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",F=j.replace("w","w#"),I="\\["+B+"*("+j+")"+B+"*(?:([*^$|!~]?=)"+B+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+F+")|)|)"+B+"*\\]",q=":("+j+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+I.replace(3,8)+")*)|.*)\\)|)",R=new RegExp("^"+B+"+|((?:^|[^\\\\])(?:\\\\.)*)"+B+"+$","g"),U=new RegExp("^"+B+"*,"+B+"*"),z=new RegExp("^"+B+"*([>+~]|"+B+")"+B+"*"),W=new RegExp("="+B+"*([^\\]'\"]*?)"+B+"*\\]","g"),X=new RegExp(q),V=new RegExp("^"+F+"$"),$={ID:new RegExp("^#("+j+")"),CLASS:new RegExp("^\\.("+j+")"),TAG:new RegExp("^("+j.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+B+"*(even|odd|(([+-]|)(\\d*)n|)"+B+"*(?:([+-]|)"+B+"*(\\d+)|))"+B+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+B+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+B+"*((?:-\\d)?\\d*)"+B+"*\\)|)(?=[^-]|$)","i")},J=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Y=/[+~]/,Z=/'|\\/g,et=new RegExp("\\\\([\\da-f]{1,6}"+B+"?|("+B+")|.)","ig"),tt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)};try{_.apply(A=D.call(b.childNodes),b.childNodes),A[b.childNodes.length].nodeType}catch(nt){_={apply:A.length?function(e,t){M.apply(e,D.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}n=rt.support={},s=rt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},l=rt.setDocument=function(e){var t,i=e?e.ownerDocument||e:b,o=i.defaultView;if(i===c||i.nodeType!==9||!i.documentElement)return c;c=i,h=i.documentElement,p=!s(i),o&&o!==o.top&&(o.addEventListener?o.addEventListener("unload",function(){l()},!1):o.attachEvent&&o.attachEvent("onunload",function(){l()})),n.attributes=ot(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ot(function(e){return e.appendChild(i.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(i.getElementsByClassName)&&ot(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",e.getElementsByClassName("i").length===2}),n.getById=ot(function(e){return h.appendChild(e).id=y,!i.getElementsByName||!i.getElementsByName(y).length}),n.getById?(r.find.ID=function(e,t){if(typeof t.getElementById!==C&&p){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==C&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==C)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,s=t.getElementsByTagName(e);if(e==="*"){while(n=s[i++])n.nodeType===1&&r.push(n);return r}return s},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(typeof t.getElementsByClassName!==C&&p)return t.getElementsByClassName(e)},v=[],d=[];if(n.qsa=Q.test(i.querySelectorAll))ot(function(e){e.innerHTML="<select t=''><option selected=''></option></select>",e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+B+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||d.push("\\["+B+"*(?:value|"+H+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ot(function(e){var t=i.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&d.push("name"+B+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")});return(n.matchesSelector=Q.test(m=h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ot(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),v.push("!=",q)}),d=d.length&&new RegExp(d.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),g=t||Q.test(h.contains)?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!r&&r.nodeType===1&&!!(n.contains?n.contains(r):e.compareDocumentPosition&&e.compareDocumentPosition(r)&16)}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,r&1||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===i||e.ownerDocument===b&&g(b,e)?-1:t===i||t.ownerDocument===b&&g(b,t)?1:a?P.call(a,e)-P.call(a,t):0:r&4?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,s=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!s||!o)return e===i?-1:t===i?1:s?-1:o?1:a?P.call(a,e)-P.call(a,t):0;if(s===o)return at(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?at(u[r],l[r]):u[r]===b?-1:l[r]===b?1:0},i},rt.matches=function(e,t){return rt(e,null,null,t)},rt.matchesSelector=function(e,t){(e.ownerDocument||e)!==c&&l(e),t=t.replace(W,"='$1']");if(n.matchesSelector&&p&&(!v||!v.test(t))&&(!d||!d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&e.document.nodeType!==11)return r}catch(i){}return rt(t,c,null,[e]).length>0},rt.contains=function(e,t){return(e.ownerDocument||e)!==c&&l(e),g(e,t)},rt.attr=function(e,t){(e.ownerDocument||e)!==c&&l(e);var i=r.attrHandle[t.toLowerCase()],s=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!p):undefined;return s!==undefined?s:n.attributes||!p?e.getAttribute(t):(s=e.getAttributeNode(t))&&s.specified?s.value:null},rt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},rt.uniqueSort=function(e){var t,r=[],i=0,s=0;f=!n.detectDuplicates,a=!n.sortStable&&e.slice(0),e.sort(N);if(f){while(t=e[s++])t===e[s]&&(i=r.push(s));while(i--)e.splice(r[i],1)}return a=null,e},i=rt.getText=function(e){var t,n="",r=0,s=e.nodeType;if(!s)while(t=e[r++])n+=i(t);else if(s===1||s===9||s===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(s===3||s===4)return e.nodeValue;return n},r=rt.selectors={cacheLength:50,createPseudo:st,match:$,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1].slice(0,3)==="nth"?(e[3]||rt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd")),e[5]=+(e[7]+e[8]||e[3]==="odd")):e[3]&&rt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return $.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&X.test(n)&&(t=dt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(et,tt).toLowerCase();return e==="*"?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=S[e+" "];return t||(t=new RegExp("(^|"+B+")"+e+"("+B+"|$)"))&&S(e,function(e){return t.test(typeof e.className=="string"&&e.className||typeof e.getAttribute!==C&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=rt.attr(r,e);return i==null?t==="!=":t?(i+="",t==="="?i===n:t==="!="?i!==n:t==="^="?n&&i.indexOf(n)===0:t==="*="?n&&i.indexOf(n)>-1:t==="$="?n&&i.slice(-n.length)===n:t==="~="?(" "+i+" ").indexOf(n)>-1:t==="|="?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var s=e.slice(0,3)!=="nth",o=e.slice(-4)!=="last",u=t==="of-type";return r===1&&i===0?function(e){return!!e.parentNode}:function(t,n,a){var f,l,c,h,p,d,v=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=u&&t.nodeName.toLowerCase(),b=!a&&!u;if(m){if(s){while(v){c=t;while(c=c[v])if(u?c.nodeName.toLowerCase()===g:c.nodeType===1)return!1;d=v=e==="only"&&!d&&"nextSibling"}return!0}d=[o?m.firstChild:m.lastChild];if(o&&b){l=m[y]||(m[y]={}),f=l[e]||[],p=f[0]===w&&f[1],h=f[0]===w&&f[2],c=p&&m.childNodes[p];while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if(c.nodeType===1&&++h&&c===t){l[e]=[w,p,h];break}}else if(b&&(f=(t[y]||(t[y]={}))[e])&&f[0]===w)h=f[1];else while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if((u?c.nodeName.toLowerCase()===g:c.nodeType===1)&&++h){b&&((c[y]||(c[y]={}))[e]=[w,h]);if(c===t)break}return h-=i,h===r||h%r===0&&h/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||rt.error("unsupported pseudo: "+e);return i[y]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?st(function(e,n){var r,s=i(e,t),o=s.length;while(o--)r=P.call(e,s[o]),e[r]=!(n[r]=s[o])}):function(e){return i(e,0,n)}):i}},pseudos:{not:st(function(e){var t=[],n=[],r=o(e.replace(R,"$1"));return r[y]?st(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:st(function(e){return function(t){return rt(e,t).length>0}}),contains:st(function(e){return function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:st(function(e){return V.test(e||"")||rt.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=p?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||n.indexOf(e+"-")===0;while((t=t.parentNode)&&t.nodeType===1);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===c.activeElement&&(!c.hasFocus||c.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},text:function(e){var t;return e.nodeName.toLowerCase()==="input"&&e.type==="text"&&((t=e.getAttribute("type"))==null||t.toLowerCase()==="text")},first:ct(function(){return[0]}),last:ct(function(e,t){return[t-1]}),eq:ct(function(e,t,n){return[n<0?n+t:n]}),even:ct(function(e,t){var n=0;for(;n<t;n+=2)e.push(n);return e}),odd:ct(function(e,t){var n=1;for(;n<t;n+=2)e.push(n);return e}),lt:ct(function(e,t,n){var r=n<0?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ct(function(e,t,n){var r=n<0?n+t:n;for(;++r<t;)e.push(r);return e})}},r.pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=ft(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=lt(t);return pt.prototype=r.filters=r.pseudos,r.setFilters=new pt,o=rt.compile=function(e,t){var n,r=[],i=[],s=T[e+" "];if(!s){t||(t=dt(e)),n=t.length;while(n--)s=wt(t[n]),s[y]?r.push(s):i.push(s);s=T(e,Et(i,r))}return s},n.sortStable=y.split("").sort(N).join("")===y,n.detectDuplicates=!!f,l(),n.sortDetached=ot(function(e){return e.compareDocumentPosition(c.createElement("div"))&1}),ot(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild.getAttribute("href")==="#"})||ut("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,t.toLowerCase()==="type"?1:2)}),(!n.attributes||!ot(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),e.firstChild.getAttribute("value")===""}))&&ut("value",function(e,t,n){if(!n&&e.nodeName.toLowerCase()==="input")return e.defaultValue}),ot(function(e){return e.getAttribute("disabled")==null})||ut(H,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),rt}(e);p.find=b,p.expr=b.selectors,p.expr[":"]=p.expr.pseudos,p.unique=b.uniqueSort,p.text=b.getText,p.isXMLDoc=b.isXML,p.contains=b.contains;var w=p.expr.match.needsContext,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^.[^:#\[\.,]*$/;p.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),t.length===1&&r.nodeType===1?p.find.matchesSelector(r,e)?[r]:[]:p.find.matches(e,p.grep(t,function(e){return e.nodeType===1}))},p.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if(typeof e!="string")return this.pushStack(p(e).filter(function(){for(t=0;t<i;t++)if(p.contains(r[t],this))return!0}));for(t=0;t<i;t++)p.find(e,r[t],n);return n=this.pushStack(i>1?p.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(x(this,e||[],!1))},not:function(e){return this.pushStack(x(this,e||[],!0))},is:function(e){return!!x(this,typeof e=="string"&&w.test(e)?p(e):e||[],!1).length}});var T,N=e.document,C=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=p.fn.init=function(e,t){var n,r;if(!e)return this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?n=[null,e,null]:n=C.exec(e);if(n&&(n[1]||!t)){if(n[1]){t=t instanceof p?t[0]:t,p.merge(this,p.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:N,!0));if(E.test(n[1])&&p.isPlainObject(t))for(n in t)p.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}r=N.getElementById(n[2]);if(r&&r.parentNode){if(r.id!==n[2])return T.find(e);this.length=1,this[0]=r}return this.context=N,this.selector=e,this}return!t||t.jquery?(t||T).find(e):this.constructor(t).find(e)}return e.nodeType?(this.context=this[0]=e,this.length=1,this):p.isFunction(e)?typeof T.ready!="undefined"?T.ready(e):e(p):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),p.makeArray(e,this))};k.prototype=p.fn,T=p(N);var L=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};p.extend({dir:function(e,t,n){var r=[],i=e[t];while(i&&i.nodeType!==9&&(n===undefined||i.nodeType!==1||!p(i).is(n)))i.nodeType===1&&r.push(i),i=i[t];return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}}),p.fn.extend({has:function(e){var t,n=p(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(p.contains(this,n[t]))return!0})},closest:function(e,t){var n,r=0,i=this.length,s=[],o=w.test(e)||typeof e!="string"?p(e,t||this.context):0;for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:n.nodeType===1&&p.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?p.unique(s):s)},index:function(e){return e?typeof e=="string"?p.inArray(this[0],p(e)):p.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(p.unique(p.merge(this.get(),p(e,t))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),p.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return p.dir(e,"parentNode")},parentsUntil:function(e,t,n){return p.dir(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return p.dir(e,"nextSibling")},prevAll:function(e){return p.dir(e,"previousSibling")},nextUntil:function(e,t,n){return p.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return p.dir(e,"previousSibling",n)},siblings:function(e){return p.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return p.sibling(e.firstChild)},contents:function(e){return p.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:p.merge([],e.childNodes)}},function(e,t){p.fn[e]=function(n,r){var i=p.map(this,t,n);return e.slice(-5)!=="Until"&&(r=n),r&&typeof r=="string"&&(i=p.filter(r,i)),this.length>1&&(A[e]||(i=p.unique(i)),L.test(e)&&(i=i.reverse())),this.pushStack(i)}});var M=/\S+/g,_={};p.Callbacks=function(e){e=typeof e=="string"?_[e]||D(e):p.extend({},e);var t,n,r,i,s,o,u=[],a=!e.once&&[],f=function(c){n=e.memory&&c,r=!0,s=o||0,o=0,i=u.length,t=!0;for(;u&&s<i;s++)if(u[s].apply(c[0],c[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,u&&(a?a.length&&f(a.shift()):n?u=[]:l.disable())},l={add:function(){if(u){var r=u.length;(function s(t){p.each(t,function(t,n){var r=p.type(n);r==="function"?(!e.unique||!l.has(n))&&u.push(n):n&&n.length&&r!=="string"&&s(n)})})(arguments),t?i=u.length:n&&(o=r,f(n))}return this},remove:function(){return u&&p.each(arguments,function(e,n){var r;while((r=p.inArray(n,u,r))>-1)u.splice(r,1),t&&(r<=i&&i--,r<=s&&s--)}),this},has:function(e){return e?p.inArray(e,u)>-1:!!u&&!!u.length},empty:function(){return u=[],i=0,this},disable:function(){return u=a=n=undefined,this},disabled:function(){return!u},lock:function(){return a=undefined,n||l.disable(),this},locked:function(){return!a},fireWith:function(e,n){return u&&(!r||a)&&(n=n||[],n=[e,n.slice?n.slice():n],t?a.push(n):f(n)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},p.extend({Deferred:function(e){var t=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return p.Deferred(function(n){p.each(t,function(t,s){var o=p.isFunction(e[t])&&e[t];i[s[1]](function(){var e=o&&o.apply(this,arguments);e&&p.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s[0]+"With"](this===r?n.promise():this,o?[e]:arguments)})}),e=null}).promise()},promise:function(e){return e!=null?p.extend(e,r):r}},i={};return r.pipe=r.then,p.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=function(){return i[s[0]+"With"](this===i?r:this,arguments),this},i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=r.call(arguments),i=n.length,s=i!==1||e&&p.isFunction(e.promise)?i:0,o=s===1?e:p.Deferred(),u=function(e,t,n){return function(i){t[e]=this,n[e]=arguments.length>1?r.call(arguments):i,n===a?o.notifyWith(t,n):--s||o.resolveWith(t,n)}},a,f,l;if(i>1){a=new Array(i),f=new Array(i),l=new Array(i);for(;t<i;t++)n[t]&&p.isFunction(n[t].promise)?n[t].promise().done(u(t,l,n)).fail(o.reject).progress(u(t,f,a)):--s}return s||o.resolveWith(l,n),o.promise()}});var P;p.fn.ready=function(e){return p.ready.promise().done(e),this},p.extend({isReady:!1,readyWait:1,holdReady:function(e){e?p.readyWait++:p.ready(!0)},ready:function(e){if(e===!0?--p.readyWait:p.isReady)return;if(!N.body)return setTimeout(p.ready);p.isReady=!0;if(e!==!0&&--p.readyWait>0)return;P.resolveWith(N,[p]),p.fn.trigger&&p(N).trigger("ready").off("ready")}}),p.ready.promise=function(t){if(!P){P=p.Deferred();if(N.readyState==="complete")setTimeout(p.ready);else if(N.addEventListener)N.addEventListener("DOMContentLoaded",B,!1),e.addEventListener("load",B,!1);else{N.attachEvent("onreadystatechange",B),e.attachEvent("onload",B);var n=!1;try{n=e.frameElement==null&&N.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!p.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}H(),p.ready()}}()}}return P.promise(t)};var j=typeof undefined,F;for(F in p(c))break;c.ownLast=F!=="0",c.inlineBlockNeedsLayout=!1,p(function(){var e,t,n=N.getElementsByTagName("body")[0];if(!n)return;e=N.createElement("div"),e.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",t=N.createElement("div"),n.appendChild(e).appendChild(t);if(typeof t.style.zoom!==j){t.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1";if(c.inlineBlockNeedsLayout=t.offsetWidth===3)n.style.zoom=1}n.removeChild(e),e=t=null}),function(){var e=N.createElement("div");if(c.deleteExpando==null){c.deleteExpando=!0;try{delete e.test}catch(t){c.deleteExpando=!1}}e=null}(),p.acceptData=function(e){var t=p.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return n!==1&&n!==9?!1:!t||t!==!0&&e.getAttribute("classid")===t};var I=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,q=/([A-Z])/g;p.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?p.cache[e[p.expando]]:e[p.expando],!!e&&!U(e)},data:function(e,t,n){return z(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return z(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)}}),p.fn.extend({data:function(e,t){var n,r,i,s=this[0],o=s&&s.attributes;if(e===undefined){if(this.length){i=p.data(s);if(s.nodeType===1&&!p._data(s,"parsedAttrs")){n=o.length;while(n--)r=o[n].name,r.indexOf("data-")===0&&(r=p.camelCase(r.slice(5)),R(s,r,i[r]));p._data(s,"parsedAttrs",!0)}}return i}return typeof e=="object"?this.each(function(){p.data(this,e)}):arguments.length>1?this.each(function(){p.data(this,e,t)}):s?R(s,e,p.data(s,e)):undefined},removeData:function(e){return this.each(function(){p.removeData(this,e)})}}),p.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=p._data(e,t),n&&(!r||p.isArray(n)?r=p._data(e,t,p.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=p.queue(e,t),r=n.length,i=n.shift(),s=p._queueHooks(e,t),o=function(){p.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return p._data(e,n)||p._data(e,n,{empty:p.Callbacks("once memory").add(function(){p._removeData(e,t+"queue"),p._removeData(e,n)})})}}),p.fn.extend({queue:function(e,t){var n=2;return typeof e!="string"&&(t=e,e="fx",n--),arguments.length<n?p.queue(this[0],e):t===undefined?this:this.each(function(){var n=p.queue(this,e,t);p._queueHooks(this,e),e==="fx"&&n[0]!=="inprogress"&&p.dequeue(this,e)})},dequeue:function(e){return this.each(function(){p.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=p.Deferred(),s=this,o=this.length,u=function(){--r||i.resolveWith(s,[s])};typeof e!="string"&&(t=e,e=undefined),e=e||"fx";while(o--)n=p._data(s[o],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(u));return u(),i.promise(t)}});var X=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,V=["Top","Right","Bottom","Left"],$=function(e,t){return e=t||e,p.css(e,"display")==="none"||!p.contains(e.ownerDocument,e)},J=p.access=function(e,t,n,r,i,s,o){var u=0,a=e.length,f=n==null;if(p.type(n)==="object"){i=!0;for(u in n)p.access(e,t,u,n[u],!0,s,o)}else if(r!==undefined){i=!0,p.isFunction(r)||(o=!0),f&&(o?(t.call(e,r),t=null):(f=t,t=function(e,t,n){return f.call(p(e),n)}));if(t)for(;u<a;u++)t(e[u],n,o?r:r.call(e[u],u,t(e[u],n)))}return i?e:f?t.call(e):a?t(e[0],n):s},K=/^(?:checkbox|radio)$/i;(function(){var e=N.createDocumentFragment(),t=N.createElement("div"),n=N.createElement("input");t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a>",c.leadingWhitespace=t.firstChild.nodeType===3,c.tbody=!t.getElementsByTagName("tbody").length,c.htmlSerialize=!!t.getElementsByTagName("link").length,c.html5Clone=N.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",n.type="checkbox",n.checked=!0,e.appendChild(n),c.appendChecked=n.checked,t.innerHTML="<textarea>x</textarea>",c.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,e.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",c.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,c.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){c.noCloneEvent=!1}),t.cloneNode(!0).click());if(c.deleteExpando==null){c.deleteExpando=!0;try{delete t.test}catch(r){c.deleteExpando=!1}}e=t=n=null})(),function(){var t,n,r=N.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(c[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),c[t+"Bubbles"]=r.attributes[n].expando===!1);r=null}();var Q=/^(?:input|select|textarea)$/i,G=/^key/,Y=/^(?:mouse|contextmenu)|click/,Z=/^(?:focusinfocus|focusoutblur)$/,et=/^([^.]*)(?:\.(.+)|)$/;p.event={global:{},add:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p._data(e);if(!g)return;n.handler&&(a=n,n=a.handler,i=a.selector),n.guid||(n.guid=p.guid++),(o=g.events)||(o=g.events={}),(l=g.handle)||(l=g.handle=function(e){return typeof p===j||!!e&&p.event.triggered===e.type?undefined:p.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(M)||[""],u=t.length;while(u--){s=et.exec(t[u])||[],d=m=s[1],v=(s[2]||"").split(".").sort();if(!d)continue;f=p.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=p.event.special[d]||{},c=p.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&p.expr.match.needsContext.test(i),namespace:v.join(".")},a);if(!(h=o[d])){h=o[d]=[],h.delegateCount=0;if(!f.setup||f.setup.call(e,r,v,l)===!1)e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l)}f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,c):h.push(c),p.event.global[d]=!0}e=null},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p.hasData(e)&&p._data(e);if(!g||!(l=g.events))return;t=(t||"").match(M)||[""],f=t.length;while(f--){u=et.exec(t[f])||[],d=m=u[1],v=(u[2]||"").split(".").sort();if(!d){for(d in l)p.event.remove(e,d+t[f],n,r,!0);continue}c=p.event.special[d]||{},d=(r?c.delegateType:c.bindType)||d,h=l[d]||[],u=u[2]&&new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=h.length;while(s--)o=h[s],(i||m===o.origType)&&(!n||n.guid===o.guid)&&(!u||u.test(o.namespace))&&(!r||r===o.selector||r==="**"&&o.selector)&&(h.splice(s,1),o.selector&&h.delegateCount--,c.remove&&c.remove.call(e,o));a&&!h.length&&((!c.teardown||c.teardown.call(e,v,g.handle)===!1)&&p.removeEvent(e,d,g.handle),delete l[d])}p.isEmptyObject(l)&&(delete g.handle,p._removeData(e,"events"))},trigger:function(t,n,r,i){var s,o,u,a,l,c,h,d=[r||N],v=f.call(t,"type")?t.type:t,m=f.call(t,"namespace")?t.namespace.split("."):[];u=c=r=r||N;if(r.nodeType===3||r.nodeType===8)return;if(Z.test(v+p.event.triggered))return;v.indexOf(".")>=0&&(m=v.split("."),v=m.shift(),m.sort()),o=v.indexOf(":")<0&&"on"+v,t=t[p.expando]?t:new p.Event(v,typeof t=="object"&&t),t.isTrigger=i?2:3,t.namespace=m.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=n==null?[t]:p.makeArray(n,[t]),l=p.event.special[v]||{};if(!i&&l.trigger&&l.trigger.apply(r,n)===!1)return;if(!i&&!l.noBubble&&!p.isWindow(r)){a=l.delegateType||v,Z.test(a+v)||(u=u.parentNode);for(;u;u=u.parentNode)d.push(u),c=u;c===(r.ownerDocument||N)&&d.push(c.defaultView||c.parentWindow||e)}h=0;while((u=d[h++])&&!t.isPropagationStopped())t.type=h>1?a:l.bindType||v,s=(p._data(u,"events")||{})[t.type]&&p._data(u,"handle"),s&&s.apply(u,n),s=o&&u[o],s&&s.apply&&p.acceptData(u)&&(t.result=s.apply(u,n),t.result===!1&&t.preventDefault());t.type=v;if(!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&p.acceptData(r)&&o&&r[v]&&!p.isWindow(r)){c=r[o],c&&(r[o]=null),p.event.triggered=v;try{r[v]()}catch(g){}p.event.triggered=undefined,c&&(r[o]=c)}return t.result},dispatch:function(e){e=p.event.fix(e);var t,n,i,s,o,u=[],a=r.call(arguments),f=(p._data(this,"events")||{})[e.type]||[],l=p.event.special[e.type]||{};a[0]=e,e.delegateTarget=this;if(l.preDispatch&&l.preDispatch.call(this,e)===!1)return;u=p.event.handlers.call(this,e,f),t=0;while((s=u[t++])&&!e.isPropagationStopped()){e.currentTarget=s.elem,o=0;while((i=s.handlers[o++])&&!e.isImmediatePropagationStopped())if(!e.namespace_re||e.namespace_re.test(i.namespace))e.handleObj=i,e.data=i.data,n=((p.event.special[i.origType]||{}).handle||i.handler).apply(s.elem,a),n!==undefined&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation())}return l.postDispatch&&l.postDispatch.call(this,e),e.result},handlers:function(e,t){var n,r,i,s,o=[],u=t.delegateCount,a=e.target;if(u&&a.nodeType&&(!e.button||e.type!=="click"))for(;a!=this;a=a.parentNode||this)if(a.nodeType===1&&(a.disabled!==!0||e.type!=="click")){i=[];for(s=0;s<u;s++)r=t[s],n=r.selector+" ",i[n]===undefined&&(i[n]=r.needsContext?p(n,this).index(a)>=0:p.find(n,this,null,[a]).length),i[n]&&i.push(r);i.length&&o.push({elem:a,handlers:i})}return u<t.length&&o.push({elem:this,handlers:t.slice(u)}),o},fix:function(e){if(e[p.expando])return e;var t,n,r,i=e.type,s=e,o=this.fixHooks[i];o||(this.fixHooks[i]=o=Y.test(i)?this.mouseHooks:G.test(i)?this.keyHooks:{}),r=o.props?this.props.concat(o.props):this.props,e=new p.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=s.srcElement||N),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,o.filter?o.filter(e,s):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button,o=t.fromElement;return e.pageX==null&&t.clientX!=null&&(r=e.target.ownerDocument||N,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&o&&(e.relatedTarget=o===e.target?t.toElement:o),!e.which&&s!==undefined&&(e.which=s&1?1:s&2?3:s&4?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==rt()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===rt()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(p.nodeName(this,"input")&&this.type==="checkbox"&&this.click)return this.click(),!1},_default:function(e){return p.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=p.extend(new p.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?p.event.trigger(i,null,t):p.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},p.removeEvent=N.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===j&&(e[r]=null),e.detachEvent(r,n))},p.Event=function(e,t){if(!(this instanceof p.Event))return new p.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.defaultPrevented===undefined&&(e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault())?tt:nt):this.type=e,t&&p.extend(this,t),this.timeStamp=e&&e.timeStamp||p.now(),this[p.expando]=!0},p.Event.prototype={isDefaultPrevented:nt,isPropagationStopped:nt,isImmediatePropagationStopped:nt,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=tt;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=tt;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()}},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){p.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj;if(!i||i!==r&&!p.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),c.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=p.nodeName(t,"input")||p.nodeName(t,"button")?t.form:undefined;n&&!p._data(n,"submitBubbles")&&(p.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),p._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&p.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),c.changeBubbles||(p.event.special.change={setup:function(){if(Q.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,e,!0)});return!1}p.event.add(this,"beforeactivate._change",function(e){var t=e.target;Q.test(t.nodeName)&&!p._data(t,"changeBubbles")&&(p.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&p.event.simulate("change",this.parentNode,e,!0)}),p._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!Q.test(this.nodeName)}}),c.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){p.event.simulate(t,e.target,p.event.fix(e),!0)};p.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=p._data(r,t);i||r.addEventListener(e,n,!0),p._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=p._data(r,t)-1;i?p._data(r,t,i):(r.removeEventListener(e,n,!0),p._removeData(r,t))}}}),p.fn.extend({on:function(e,t,n,r,i){var s,o;if(typeof e=="object"){typeof t!="string"&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}n==null&&r==null?(r=t,n=t=undefined):r==null&&(typeof t=="string"?(r=n,n=undefined):(r=n,n=t,t=undefined));if(r===!1)r=nt;else if(!r)return this;return i===1&&(o=r,r=function(e){return p().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=p.guid++)),this.each(function(){p.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,p(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if(typeof e=="object"){for(i in e)this.off(i,t,e[i]);return this}if(t===!1||typeof t=="function")n=t,t=undefined;return n===!1&&(n=nt),this.each(function(){p.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){p.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return p.event.trigger(e,t,n,!0)}});var st="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ot=/ jQuery\d+="(?:null|\d+)"/g,ut=new RegExp("<(?:"+st+")[\\s/>]","i"),at=/^\s+/,ft=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,lt=/<([\w:]+)/,ct=/<tbody/i,ht=/<|&#?\w+;/,pt=/<(?:script|style|link)/i,dt=/checked\s*(?:[^=]|=\s*.checked.)/i,vt=/^$|\/(?:java|ecma)script/i,mt=/^true\/(.*)/,gt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,yt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:c.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},bt=it(N),wt=bt.appendChild(N.createElement("div"));yt.optgroup=yt.option,yt.tbody=yt.tfoot=yt.colgroup=yt.caption=yt.thead,yt.th=yt.td,p.extend({clone:function(e,t,n){var r,i,s,o,u,a=p.contains(e.ownerDocument,e);c.html5Clone||p.isXMLDoc(e)||!ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(wt.innerHTML=e.outerHTML,wt.removeChild(s=wt.firstChild));if((!c.noCloneEvent||!c.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!p.isXMLDoc(e)){r=Et(s),u=Et(e);for(o=0;(i=u[o])!=null;++o)r[o]&&Lt(i,r[o])}if(t)if(n){u=u||Et(e),r=r||Et(s);for(o=0;(i=u[o])!=null;o++)kt(i,r[o])}else kt(e,s);return r=Et(s,"script"),r.length>0&&Ct(r,!a&&Et(e,"script")),r=u=i=null,s},buildFragment:function(e,t,n,r){var i,s,o,u,a,f,l,h=e.length,d=it(t),v=[],m=0;for(;m<h;m++){s=e[m];if(s||s===0)if(p.type(s)==="object")p.merge(v,s.nodeType?[s]:s);else if(!ht.test(s))v.push(t.createTextNode(s));else{u=u||d.appendChild(t.createElement("div")),a=(lt.exec(s)||["",""])[1].toLowerCase(),l=yt[a]||yt._default,u.innerHTML=l[1]+s.replace(ft,"<$1></$2>")+l[2],i=l[0];while(i--)u=u.lastChild;!c.leadingWhitespace&&at.test(s)&&v.push(t.createTextNode(at.exec(s)[0]));if(!c.tbody){s=a==="table"&&!ct.test(s)?u.firstChild:l[1]==="<table>"&&!ct.test(s)?u:0,i=s&&s.childNodes.length;while(i--)p.nodeName(f=s.childNodes[i],"tbody")&&!f.childNodes.length&&s.removeChild(f)}p.merge(v,u.childNodes),u.textContent="";while(u.firstChild)u.removeChild(u.firstChild);u=d.lastChild}}u&&d.removeChild(u),c.appendChecked||p.grep(Et(v,"input"),St),m=0;while(s=v[m++]){if(r&&p.inArray(s,r)!==-1)continue;o=p.contains(s.ownerDocument,s),u=Et(d.appendChild(s),"script"),o&&Ct(u);if(n){i=0;while(s=u[i++])vt.test(s.type||"")&&n.push(s)}}return u=null,d},cleanData:function(e,t){var r,i,s,o,u=0,a=p.expando,f=p.cache,l=c.deleteExpando,h=p.event.special;for(;(r=e[u])!=null;u++)if(t||p.acceptData(r)){s=r[a],o=s&&f[s];if(o){if(o.events)for(i in o.events)h[i]?p.event.remove(r,i):p.removeEvent(r,i,o.handle);f[s]&&(delete f[s],l?delete r[a]:typeof r.removeAttribute!==j?r.removeAttribute(a):r[a]=null,n.push(s))}}}}),p.fn.extend({text:function(e){return J(this,function(e){return e===undefined?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||N).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?p.filter(e,this):this,i=0;for(;(n=r[i])!=null;i++)!t&&n.nodeType===1&&p.cleanData(Et(n)),n.parentNode&&(t&&p.contains(n.ownerDocument,n)&&Ct(Et(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&p.cleanData(Et(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&p.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return p.clone(this,e,t)})},html:function(e){return J(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return t.nodeType===1?t.innerHTML.replace(ot,""):undefined;if(typeof e=="string"&&!pt.test(e)&&(c.htmlSerialize||!ut.test(e))&&(c.leadingWhitespace||!at.test(e))&&!yt[(lt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(ft,"<$1></$2>");try{for(;n<r;n++)t=this[n]||{},t.nodeType===1&&(p.cleanData(Et(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,p.cleanData(Et(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=i.apply([],e);var n,r,s,o,u,a,f=0,l=this.length,h=this,d=l-1,v=e[0],m=p.isFunction(v);if(m||l>1&&typeof v=="string"&&!c.checkClone&&dt.test(v))return this.each(function(n){var r=h.eq(n);m&&(e[0]=v.call(this,n,r.html())),r.domManip(e,t)});if(l){a=p.buildFragment(e,this[0].ownerDocument,!1,this),n=a.firstChild,a.childNodes.length===1&&(a=n);if(n){o=p.map(Et(a,"script"),Tt),s=o.length;for(;f<l;f++)r=a,f!==d&&(r=p.clone(r,!0,!0),s&&p.merge(o,Et(r,"script"))),t.call(this[f],r,f);if(s){u=o[o.length-1].ownerDocument,p.map(o,Nt);for(f=0;f<s;f++)r=o[f],vt.test(r.type||"")&&!p._data(r,"globalEval")&&p.contains(u,r)&&(r.src?p._evalUrl&&p._evalUrl(r.src):p.globalEval((r.text||r.textContent||r.innerHTML||"").replace(gt,"")))}a=n=null}}return this}}),p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){p.fn[e]=function(e){var n,r=0,i=[],o=p(e),u=o.length-1;for(;r<=u;r++)n=r===u?this:this.clone(!0),p(o[r])[t](n),s.apply(i,n.get());return this.pushStack(i)}});var At,Ot={};(function(){var e,t,n=N.createElement("div"),r="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],e.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(e.style.opacity),c.cssFloat=!!e.style.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=n.style.backgroundClip==="content-box",e=n=null,c.shrinkWrapBlocks=function(){var e,n,i,s;if(t==null){e=N.getElementsByTagName("body")[0];if(!e)return;s="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",n=N.createElement("div"),i=N.createElement("div"),e.appendChild(n).appendChild(i),t=!1,typeof i.style.zoom!==j&&(i.style.cssText=r+";width:1px;padding:1px;zoom:1",i.innerHTML="<div></div>",i.firstChild.style.width="5px",t=i.offsetWidth!==3),e.removeChild(n),e=n=i=null}return t}})();var Dt=/^margin/,Pt=new RegExp("^("+X+")(?!px)[a-z%]+$","i"),Ht,Bt,jt=/^(top|right|bottom|left)$/;e.getComputedStyle?(Ht=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n.getPropertyValue(t)||n[t]:undefined,n&&(o===""&&!p.contains(e.ownerDocument,e)&&(o=p.style(e,t)),Pt.test(o)&&Dt.test(t)&&(r=u.width,i=u.minWidth,s=u.maxWidth,u.minWidth=u.maxWidth=u.width=o,o=n.width,u.width=r,u.minWidth=i,u.maxWidth=s)),o===undefined?o:o+""}):N.documentElement.currentStyle&&(Ht=function(e){return e.currentStyle},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n[t]:undefined,o==null&&u&&u[t]&&(o=u[t]),Pt.test(o)&&!jt.test(t)&&(r=u.left,i=e.runtimeStyle,s=i&&i.left,s&&(i.left=e.currentStyle.left),u.left=t==="fontSize"?"1em":o,o=u.pixelLeft+"px",u.left=r,s&&(i.left=s)),o===undefined?o:o+""||"auto"}),function(){function l(){var t,n,u=N.getElementsByTagName("body")[0];if(!u)return;t=N.createElement("div"),n=N.createElement("div"),t.style.cssText=a,u.appendChild(t).appendChild(n),n.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",p.swap(u,u.style.zoom!=null?{zoom:1}:{},function(){r=n.offsetWidth===4}),i=!0,s=!1,o=!0,e.getComputedStyle&&(s=(e.getComputedStyle(n,null)||{}).top!=="1%",i=(e.getComputedStyle(n,null)||{width:"4px"}).width==="4px"),u.removeChild(t),n=u=null}var t,n,r,i,s,o,u=N.createElement("div"),a="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",f="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";u.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",t=u.getElementsByTagName("a")[0],t.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(t.style.opacity),c.cssFloat=!!t.style.cssFloat,u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=u.style.backgroundClip==="content-box",t=u=null,p.extend(c,{reliableHiddenOffsets:function(){if(n!=null)return n;var e,t,r,i=N.createElement("div"),s=N.getElementsByTagName("body")[0];if(!s)return;return i.setAttribute("className","t"),i.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=N.createElement("div"),e.style.cssText=a,s.appendChild(e).appendChild(i),i.innerHTML="<table><tr><td></td><td>t</td></tr></table>",t=i.getElementsByTagName("td"),t[0].style.cssText="padding:0;margin:0;border:0;display:none",r=t[0].offsetHeight===0,t[0].style.display="",t[1].style.display="none",n=r&&t[0].offsetHeight===0,s.removeChild(e),i=s=null,n},boxSizing:function(){return r==null&&l(),r},boxSizingReliable:function(){return i==null&&l(),i},pixelPosition:function(){return s==null&&l(),s},reliableMarginRight:function(){var t,n,r,i;if(o==null&&e.getComputedStyle){t=N.getElementsByTagName("body")[0];if(!t)return;n=N.createElement("div"),r=N.createElement("div"),n.style.cssText=a,t.appendChild(n).appendChild(r),i=r.appendChild(N.createElement("div")),i.style.cssText=r.style.cssText=f,i.style.marginRight=i.style.width="0",r.style.width="1px",o=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight),t.removeChild(n)}return o}})}(),p.swap=function(e,t,n,r){var i,s,o={};for(s in t)o[s]=e.style[s],e.style[s]=t[s];i=n.apply(e,r||[]);for(s in t)e.style[s]=o[s];return i};var It=/alpha\([^)]*\)/i,qt=/opacity\s*=\s*([^)]*)/,Rt=/^(none|table(?!-c[ea]).+)/,Ut=new RegExp("^("+X+")(.*)$","i"),zt=new RegExp("^([+-])=("+X+")","i"),Wt={position:"absolute",visibility:"hidden",display:"block"},Xt={letterSpacing:0,fontWeight:400},Vt=["Webkit","O","Moz","ms"];p.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Bt(e,"opacity");return n===""?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":c.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var i,s,o,u=p.camelCase(t),a=e.style;t=p.cssProps[u]||(p.cssProps[u]=$t(a,u)),o=p.cssHooks[t]||p.cssHooks[u];if(n===undefined)return o&&"get"in o&&(i=o.get(e,!1,r))!==undefined?i:a[t];s=typeof n,s==="string"&&(i=zt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(p.css(e,t)),s="number");if(n==null||n!==n)return;s==="number"&&!p.cssNumber[u]&&(n+="px"),!c.clearCloneStyle&&n===""&&t.indexOf("background")===0&&(a[t]="inherit");if(!o||!("set"in o)||(n=o.set(e,n,r))!==undefined)try{a[t]="",a[t]=n}catch(f){}},css:function(e,t,n,r){var i,s,o,u=p.camelCase(t);return t=p.cssProps[u]||(p.cssProps[u]=$t(e.style,u)),o=p.cssHooks[t]||p.cssHooks[u],o&&"get"in o&&(s=o.get(e,!0,n)),s===undefined&&(s=Bt(e,t,r)),s==="normal"&&t in Xt&&(s=Xt[t]),n===""||n?(i=parseFloat(s),n===!0||p.isNumeric(i)?i||0:s):s}}),p.each(["height","width"],function(e,t){p.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&Rt.test(p.css(e,"display"))?p.swap(e,Wt,function(){return Gt(e,t,r)}):Gt(e,t,r)},set:function(e,n,r){var i=r&&Ht(e);return Kt(e,n,r?Qt(e,t,r,c.boxSizing()&&p.css(e,"boxSizing",!1,i)==="border-box",i):0)}}}),c.opacity||(p.cssHooks.opacity={get:function(e,t){return qt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=p.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if((t>=1||t==="")&&p.trim(s.replace(It,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(t===""||r&&!r.filter)return}n.filter=It.test(s)?s.replace(It,i):s+" "+i}}),p.cssHooks.marginRight=Ft(c.reliableMarginRight,function(e,t){if(t)return p.swap(e,{display:"inline-block"},Bt,[e,"marginRight"])}),p.each({margin:"",padding:"",border:"Width"},function(e,t){p.cssHooks[e+t]={expand:function(n){var r=0,i={},s=typeof n=="string"?n.split(" "):[n];for(;r<4;r++)i[e+V[r]+t]=s[r]||s[r-2]||s[0];return i}},Dt.test(e)||(p.cssHooks[e+t].set=Kt)}),p.fn.extend({css:function(e,t){return J(this,function(e,t,n){var r,i,s={},o=0;if(p.isArray(t)){r=Ht(e),i=t.length;for(;o<i;o++)s[t[o]]=p.css(e,t[o],!1,r);return s}return n!==undefined?p.style(e,t,n):p.css(e,t)},e,t,arguments.length>1)},show:function(){return Jt(this,!0)},hide:function(){return Jt(this)},toggle:function(e){return typeof e=="boolean"?e?this.show():this.hide():this.each(function(){$(this)?p(this).show():p(this).hide()})}}),p.Tween=Yt,Yt.prototype={constructor:Yt,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(p.cssNumber[n]?"":"px")},cur:function(){var e=Yt.propHooks[this.prop];return e&&e.get?e.get(this):Yt.propHooks._default.get(this)},run:function(e){var t,n=Yt.propHooks[this.prop];return this.options.duration?this.pos=t=p.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yt.propHooks._default.set(this),this}},Yt.prototype.init.prototype=Yt.prototype,Yt.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=p.css(e.elem,e.prop,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){p.fx.step[e.prop]?p.fx.step[e.prop](e):e.elem.style&&(e.elem.style[p.cssProps[e.prop]]!=null||p.cssHooks[e.prop])?p.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yt.propHooks.scrollTop=Yt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},p.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},p.fx=Yt.prototype.init,p.fx.step={};var Zt,en,tn=/^(?:toggle|show|hide)$/,nn=new RegExp("^(?:([+-])=|)("+X+")([a-z%]*)$","i"),rn=/queueHooks$/,sn=[ln],on={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=nn.exec(t),s=i&&i[3]||(p.cssNumber[e]?"":"px"),o=(p.cssNumber[e]||s!=="px"&&+r)&&nn.exec(p.css(n.elem,e)),u=1,a=20;if(o&&o[3]!==s){s=s||o[3],i=i||[],o=+r||1;do u=u||".5",o/=u,p.style(n.elem,e,o+s);while(u!==(u=n.cur()/r)&&u!==1&&--a)}return i&&(o=n.start=+o||+r||0,n.unit=s,n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]),n}]};p.Animation=p.extend(hn,{tweener:function(e,t){p.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],on[n]=on[n]||[],on[n].unshift(t)},prefilter:function(e,t){t?sn.unshift(e):sn.push(e)}}),p.speed=function(e,t,n){var r=e&&typeof e=="object"?p.extend({},e):{complete:n||!n&&t||p.isFunction(e)&&e,duration:e,easing:n&&t||t&&!p.isFunction(t)&&t};r.duration=p.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in p.fx.speeds?p.fx.speeds[r.duration]:p.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){p.isFunction(r.old)&&r.old.call(this),r.queue&&p.dequeue(this,r.queue)},r},p.fn.extend({fadeTo:function(e,t,n,r){return this.filter($).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=p.isEmptyObject(e),s=p.speed(t,n,r),o=function(){var t=hn(this,p.extend({},e),s);(i||p._data(this,"finish"))&&t.stop(!0)};return o.finish=o,i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return typeof e!="string"&&(n=t,t=e,e=undefined),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=e!=null&&e+"queueHooks",s=p.timers,o=p._data(this);if(i)o[i]&&o[i].stop&&r(o[i]);else for(i in o)o[i]&&o[i].stop&&rn.test(i)&&r(o[i]);for(i=s.length;i--;)s[i].elem===this&&(e==null||s[i].queue===e)&&(s[i].anim.stop(n),t=!1,s.splice(i,1));(t||!n)&&p.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=p._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],s=p.timers,o=r?r.length:0;n.finish=!0,p.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0);for(t=s.length;t--;)s[t].elem===this&&s[t].queue===e&&(s[t].anim.stop(!0),s.splice(t,1));for(t=0;t<o;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),p.each(["toggle","show","hide"],function(e,t){var n=p.fn[t];p.fn[t]=function(e,r,i){return e==null||typeof e=="boolean"?n.apply(this,arguments):this.animate(an(t,!0),e,r,i)}}),p.each({slideDown:an("show"),slideUp:an("hide"),slideToggle:an("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){p.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),p.timers=[],p.fx.tick=function(){var e,t=p.timers,n=0;Zt=p.now();for(;n<t.length;n++)e=t[n],!e()&&t[n]===e&&t.splice(n--,1);t.length||p.fx.stop(),Zt=undefined},p.fx.timer=function(e){p.timers.push(e),e()?p.fx.start():p.timers.pop()},p.fx.interval=13,p.fx.start=function(){en||(en=setInterval(p.fx.tick,p.fx.interval))},p.fx.stop=function(){clearInterval(en),en=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fn.delay=function(e,t){return e=p.fx?p.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i=N.createElement("div");i.setAttribute("className","t"),i.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=i.getElementsByTagName("a")[0],n=N.createElement("select"),r=n.appendChild(N.createElement("option")),t=i.getElementsByTagName("input")[0],e.style.cssText="top:1px",c.getSetAttribute=i.className!=="t",c.style=/top/.test(e.getAttribute("style")),c.hrefNormalized=e.getAttribute("href")==="/a",c.checkOn=!!t.value,c.optSelected=r.selected,c.enctype=!!N.createElement("form").enctype,n.disabled=!0,c.optDisabled=!r.disabled,t=N.createElement("input"),t.setAttribute("value",""),c.input=t.getAttribute("value")==="",t.value="t",t.setAttribute("type","radio"),c.radioValue=t.value==="t",e=t=n=r=i=null}();var pn=/\r/g;p.fn.extend({val:function(e){var t,n,r,i=this[0];if(!arguments.length){if(i)return t=p.valHooks[i.type]||p.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,typeof n=="string"?n.replace(pn,""):n==null?"":n);return}return r=p.isFunction(e),this.each(function(n){var i;if(this.nodeType!==1)return;r?i=e.call(this,n,p(this).val()):i=e,i==null?i="":typeof i=="number"?i+="":p.isArray(i)&&(i=p.map(i,function(e){return e==null?"":e+""})),t=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!t||!("set"in t)||t.set(this,i,"value")===undefined)this.value=i})}}),p.extend({valHooks:{option:{get:function(e){var t=p.find.attr(e,"value");return t!=null?t:p.text(e)}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(c.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!p.nodeName(n.parentNode,"optgroup"))){t=p(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n,r,i=e.options,s=p.makeArray(t),o=i.length;while(o--){r=i[o];if(p.inArray(p.valHooks.option.get(r),s)>=0)try{r.selected=n=!0}catch(u){r.scrollHeight}else r.selected=!1}return n||(e.selectedIndex=-1),i}}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(e,t){if(p.isArray(t))return e.checked=p.inArray(p(e).val(),t)>=0}},c.checkOn||(p.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})});var dn,vn,mn=p.expr.attrHandle,gn=/^(?:checked|selected)$/i,yn=c.getSetAttribute,bn=c.input;p.fn.extend({attr:function(e,t){return J(this,p.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){p.removeAttr(this,e)})}}),p.extend({attr:function(e,t,n){var r,i,s=e.nodeType;if(!e||s===3||s===8||s===2)return;if(typeof e.getAttribute===j)return p.prop(e,t,n);if(s!==1||!p.isXMLDoc(e))t=t.toLowerCase(),r=p.attrHooks[t]||(p.expr.match.bool.test(t)?vn:dn);if(n===undefined)return r&&"get"in r&&(i=r.get(e,t))!==null?i:(i=p.find.attr(e,t),i==null?undefined:i);if(n!==null)return r&&"set"in r&&(i=r.set(e,n,t))!==undefined?i:(e.setAttribute(t,n+""),n);p.removeAttr(e,t)},removeAttr:function(e,t){var n,r,i=0,s=t&&t.match(M);if(s&&e.nodeType===1)while(n=s[i++])r=p.propFix[n]||n,p.expr.match.bool.test(n)?bn&&yn||!gn.test(n)?e[r]=!1:e[p.camelCase("default-"+n)]=e[r]=!1:p.attr(e,n,""),e.removeAttribute(yn?n:r)},attrHooks:{type:{set:function(e,t){if(!c.radioValue&&t==="radio"&&p.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),vn={set:function(e,t,n){return t===!1?p.removeAttr(e,n):bn&&yn||!gn.test(n)?e.setAttribute(!yn&&p.propFix[n]||n,n):e[p.camelCase("default-"+n)]=e[n]=!0,n}},p.each(p.expr.match.bool.source.match(/\w+/g),function(e,t){var n=mn[t]||p.find.attr;mn[t]=bn&&yn||!gn.test(t)?function(e,t,r){var i,s;return r||(s=mn[t],mn[t]=i,i=n(e,t,r)!=null?t.toLowerCase():null,mn[t]=s),i}:function(e,t,n){if(!n)return e[p.camelCase("default-"+t)]?t.toLowerCase():null}});if(!bn||!yn)p.attrHooks.value={set:function(e,t,n){if(!p.nodeName(e,"input"))return dn&&dn.set(e,t,n);e.defaultValue=t}};yn||(dn={set:function(e,t,n){var r=e.getAttributeNode(n);r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="";if(n==="value"||t===e.getAttribute(n))return t}},mn.id=mn.name=mn.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&r.value!==""?r.value:null},p.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:dn.set},p.attrHooks.contenteditable={set:function(e,t,n){dn.set(e,t===""?!1:t,n)}},p.each(["width","height"],function(e,t){p.attrHooks[t]={set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}}})),c.style||(p.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,t){return e.style.cssText=t+""}});var wn=/^(?:input|select|textarea|button|object)$/i,En=/^(?:a|area)$/i;p.fn.extend({prop:function(e,t){return J(this,p.prop,e,t,arguments.length>1)},removeProp:function(e){return e=p.propFix[e]||e,this.each(function(){try{this[e]=undefined,delete this[e]}catch(t){}})}}),p.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,s,o=e.nodeType;if(!e||o===3||o===8||o===2)return;return s=o!==1||!p.isXMLDoc(e),s&&(t=p.propFix[t]||t,i=p.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&(r=i.get(e,t))!==null?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=p.find.attr(e,"tabindex");return t?parseInt(t,10):wn.test(e.nodeName)||En.test(e.nodeName)&&e.href?0:-1}}}}),c.hrefNormalized||p.each(["href","src"],function(e,t){p.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),c.optSelected||(p.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),p.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){p.propFix[this.toLowerCase()]=this}),c.enctype||(p.propFix.enctype="encoding");var Sn=/[\t\r\n\f]/g;p.fn.extend({addClass:function(e){var t,n,r,i,s,o,u=0,a=this.length,f=typeof e=="string"&&e;if(p.isFunction(e))return this.each(function(t){p(this).addClass(e.call(this,t,this.className))});if(f){t=(e||"").match(M)||[];for(;u<a;u++){n=this[u],r=n.nodeType===1&&(n.className?(" "+n.className+" ").replace(Sn," "):" ");if(r){s=0;while(i=t[s++])r.indexOf(" "+i+" ")<0&&(r+=i+" ");o=p.trim(r),n.className!==o&&(n.className=o)}}}return this},removeClass:function(e){var t,n,r,i,s,o,u=0,a=this.length,f=arguments.length===0||typeof e=="string"&&e;if(p.isFunction(e))return this.each(function(t){p(this).removeClass(e.call(this,t,this.className))});if(f){t=(e||"").match(M)||[];for(;u<a;u++){n=this[u],r=n.nodeType===1&&(n.className?(" "+n.className+" ").replace(Sn," "):"");if(r){s=0;while(i=t[s++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");o=e?p.trim(r):"",n.className!==o&&(n.className=o)}}}return this},toggleClass:function(e,t){var n=typeof e;return typeof t=="boolean"&&n==="string"?t?this.addClass(e):this.removeClass(e):p.isFunction(e)?this.each(function(n){p(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var t,r=0,i=p(this),s=e.match(M)||[];while(t=s[r++])i.hasClass(t)?i.removeClass(t):i.addClass(t)}else if(n===j||n==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||e===!1?"":p._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(Sn," ").indexOf(t)>=0)return!0;return!1}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){p.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),p.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)}});var xn=p.now(),Tn=/\?/,Nn=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;p.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=p.trim(t+"");return i&&!p.trim(i.replace(Nn,function(e,t,i,s){return n&&t&&(r=0),r===0?e:(n=i||t,r+=!s-!i,"")}))?Function("return "+i)():p.error("Invalid JSON: "+t)},p.parseXML=function(t){var n,r;if(!t||typeof t!="string")return null;try{e.DOMParser?(r=new DOMParser,n=r.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=undefined}return(!n||!n.documentElement||n.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+t),n};var Cn,kn,Ln=/#.*$/,An=/([?&])_=[^&]*/,On=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Mn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,_n=/^(?:GET|HEAD)$/,Dn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hn={},Bn={},jn="*/".concat("*");try{kn=location.href}catch(Fn){kn=N.createElement("a"),kn.href="",kn=kn.href}Cn=Pn.exec(kn.toLowerCase())||[],p.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:kn,type:"GET",isLocal:Mn.test(Cn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":jn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Rn(Rn(e,p.ajaxSettings),t):Rn(p.ajaxSettings,e)},ajaxPrefilter:In(Hn),ajaxTransport:In(Bn),ajax:function(e,t){function x(e,t,n,r){var f,g,y,w,S,x=t;if(b===2)return;b=2,o&&clearTimeout(o),a=undefined,s=r||"",E.readyState=e>0?4:0,f=e>=200&&e<300||e===304,n&&(w=Un(l,E,n)),w=zn(l,w,E,f);if(f)l.ifModified&&(S=E.getResponseHeader("Last-Modified"),S&&(p.lastModified[i]=S),S=E.getResponseHeader("etag"),S&&(p.etag[i]=S)),e===204||l.type==="HEAD"?x="nocontent":e===304?x="notmodified":(x=w.state,g=w.data,y=w.error,f=!y);else{y=x;if(e||!x)x="error",e<0&&(e=0)}E.status=e,E.statusText=(t||x)+"",f?d.resolveWith(c,[g,x,E]):d.rejectWith(c,[E,x,y]),E.statusCode(m),m=undefined,u&&h.trigger(f?"ajaxSuccess":"ajaxError",[E,l,f?g:y]),v.fireWith(c,[E,x]),u&&(h.trigger("ajaxComplete",[E,l]),--p.active||p.event.trigger("ajaxStop"))}typeof e=="object"&&(t=e,e=undefined),t=t||{};var n,r,i,s,o,u,a,f,l=p.ajaxSetup({},t),c=l.context||l,h=l.context&&(c.nodeType||c.jquery)?p(c):p.event,d=p.Deferred(),v=p.Callbacks("once memory"),m=l.statusCode||{},g={},y={},b=0,w="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(b===2){if(!f){f={};while(t=On.exec(s))f[t[1].toLowerCase()]=t[2]}t=f[e.toLowerCase()]}return t==null?null:t},getAllResponseHeaders:function(){return b===2?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(l.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)m[t]=[m[t],e[t]];else E.always(e[E.status]);return this},abort:function(e){var t=e||w;return a&&a.abort(t),x(0,t),this}};d.promise(E).complete=v.add,E.success=E.done,E.error=E.fail,l.url=((e||l.url||kn)+"").replace(Ln,"").replace(Dn,Cn[1]+"//"),l.type=t.method||t.type||l.method||l.type,l.dataTypes=p.trim(l.dataType||"*").toLowerCase().match(M)||[""],l.crossDomain==null&&(n=Pn.exec(l.url.toLowerCase()),l.crossDomain=!(!n||n[1]===Cn[1]&&n[2]===Cn[2]&&(n[3]||(n[1]==="http:"?"80":"443"))===(Cn[3]||(Cn[1]==="http:"?"80":"443")))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),qn(Hn,l,t,E);if(b===2)return E;u=l.global,u&&p.active++===0&&p.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!_n.test(l.type),i=l.url,l.hasContent||(l.data&&(i=l.url+=(Tn.test(i)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=An.test(i)?i.replace(An,"$1_="+xn++):i+(Tn.test(i)?"&":"?")+"_="+xn++)),l.ifModified&&(p.lastModified[i]&&E.setRequestHeader("If-Modified-Since",p.lastModified[i]),p.etag[i]&&E.setRequestHeader("If-None-Match",p.etag[i])),(l.data&&l.hasContent&&l.contentType!==!1||t.contentType)&&E.setRequestHeader("Content-Type",l.contentType),E.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+jn+"; q=0.01":""):l.accepts["*"]);for(r in l.headers)E.setRequestHeader(r,l.headers[r]);if(!l.beforeSend||l.beforeSend.call(c,E,l)!==!1&&b!==2){w="abort";for(r in{success:1,error:1,complete:1})E[r](l[r]);a=qn(Bn,l,t,E);if(!a)x(-1,"No Transport");else{E.readyState=1,u&&h.trigger("ajaxSend",[E,l]),l.async&&l.timeout>0&&(o=setTimeout(function(){E.abort("timeout")},l.timeout));try{b=1,a.send(g,x)}catch(S){if(!(b<2))throw S;x(-1,S)}}return E}return E.abort()},getJSON:function(e,t,n){return p.get(e,t,n,"json")},getScript:function(e,t){return p.get(e,undefined,t,"script")}}),p.each(["get","post"],function(e,t){p[t]=function(e,n,r,i){return p.isFunction(n)&&(i=i||r,r=n,n=undefined),p.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),p.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){p.fn[t]=function(e){return this.on(t,e)}}),p._evalUrl=function(e){return p.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},p.fn.extend({wrapAll:function(e){if(p.isFunction(e))return this.each(function(t){p(this).wrapAll(e.call(this,t))});if(this[0]){var t=p(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return p.isFunction(e)?this.each(function(t){p(this).wrapInner(e.call(this,t))}):this.each(function(){var t=p(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=p.isFunction(e);return this.each(function(n){p(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()}}),p.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!c.reliableHiddenOffsets()&&(e.style&&e.style.display||p.css(e,"display"))==="none"},p.expr.filters.visible=function(e){return!p.expr.filters.hidden(e)};var Wn=/%20/g,Xn=/\[\]$/,Vn=/\r?\n/g,$n=/^(?:submit|button|image|reset|file)$/i,Jn=/^(?:input|select|textarea|keygen)/i;p.param=function(e,t){var n,r=[],i=function(e,t){t=p.isFunction(t)?t():t==null?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};t===undefined&&(t=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(e)||e.jquery&&!p.isPlainObject(e))p.each(e,function(){i(this.name,this.value)});else for(n in e)Kn(n,e[n],t,i);return r.join("&").replace(Wn,"+")},p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=p.prop(this,"elements");return e?p.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!p(this).is(":disabled")&&Jn.test(this.nodeName)&&!$n.test(e)&&(this.checked||!K.test(e))}).map(function(e,t){var n=p(this).val();return n==null?null:p.isArray(n)?p.map(n,function(e){return{name:t.name,value:e.replace(Vn,"\r\n")}}):{name:t.name,value:n.replace(Vn,"\r\n")}}).get()}}),p.ajaxSettings.xhr=e.ActiveXObject!==undefined?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zn()||er()}:Zn;var Qn=0,Gn={},Yn=p.ajaxSettings.xhr();e.ActiveXObject&&p(e).on("unload",function(){for(var e in Gn)Gn[e](undefined,!0)}),c.cors=!!Yn&&"withCredentials"in Yn,Yn=c.ajax=!!Yn,Yn&&p.ajaxTransport(function(e){if(!e.crossDomain||c.cors){var t;return{send:function(n,r){var i,s=e.xhr(),o=++Qn;s.open(e.type,e.url,e.async,e.username,e.password);if(e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),!e.crossDomain&&!n["X-Requested-With"]&&(n["X-Requested-With"]="XMLHttpRequest");for(i in n)n[i]!==undefined&&s.setRequestHeader(i,n[i]+"");s.send(e.hasContent&&e.data||null),t=function(n,i){var u,a,f;if(t&&(i||s.readyState===4)){delete Gn[o],t=undefined,s.onreadystatechange=p.noop;if(i)s.readyState!==4&&s.abort();else{f={},u=s.status,typeof s.responseText=="string"&&(f.text=s.responseText);try{a=s.statusText}catch(l){a=""}!u&&e.isLocal&&!e.crossDomain?u=f.text?200:404:u===1223&&(u=204)}}f&&r(u,a,f,s.getAllResponseHeaders())},e.async?s.readyState===4?setTimeout(t):s.onreadystatechange=Gn[o]=t:t()},abort:function(){t&&t(undefined,!0)}}}}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return p.globalEval(e),e}}}),p.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),p.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=N.head||p("head")[0]||N.documentElement;return{send:function(r,i){t=N.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){if(n||!t.readyState||/loaded|complete/.test(t.readyState))t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success")},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(undefined,!0)}}}});var tr=[],nr=/(=)\?(?=&|$)|\?\?/;p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=tr.pop()||p.expando+"_"+xn++;return this[e]=!0,e}}),p.ajaxPrefilter("json jsonp",function(t,n,r){var i,s,o,u=t.jsonp!==!1&&(nr.test(t.url)?"url":typeof t.data=="string"&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&nr.test(t.data)&&"data");if(u||t.dataTypes[0]==="jsonp")return i=t.jsonpCallback=p.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,u?t[u]=t[u].replace(nr,"$1"+i):t.jsonp!==!1&&(t.url+=(Tn.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return o||p.error(i+" was not called"),o[0]},t.dataTypes[0]="json",s=e[i],e[i]=function(){o=arguments},r.always(function(){e[i]=s,t[i]&&(t.jsonpCallback=n.jsonpCallback,tr.push(i)),o&&p.isFunction(s)&&s(o[0]),o=s=undefined}),"script"}),p.parseHTML=function(e,t,n){if(!e||typeof e!="string")return null;typeof t=="boolean"&&(n=t,t=!1),t=t||N;var r=E.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=p.buildFragment([e],t,i),i&&i.length&&p(i).remove(),p.merge([],r.childNodes))};var rr=p.fn.load;p.fn.load=function(e,t,n){if(typeof e!="string"&&rr)return rr.apply(this,arguments);var r,i,s,o=this,u=e.indexOf(" ");return u>=0&&(r=e.slice(u,e.length),e=e.slice(0,u)),p.isFunction(t)?(n=t,t=undefined):t&&typeof t=="object"&&(s="POST"),o.length>0&&p.ajax({url:e,type:s,dataType:"html",data:t}).done(function(e){i=arguments,o.html(r?p("<div>").append(p.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){o.each(n,i||[e.responseText,t,e])}),this},p.expr.filters.animated=function(e){return p.grep(p.timers,function(t){return e===t.elem}).length};var ir=e.document.documentElement;p.offset={setOffset:function(e,t,n){var r,i,s,o,u,a,f,l=p.css(e,"position"),c=p(e),h={};l==="static"&&(e.style.position="relative"),u=c.offset(),s=p.css(e,"top"),a=p.css(e,"left"),f=(l==="absolute"||l==="fixed")&&p.inArray("auto",[s,a])>-1,f?(r=c.position(),o=r.top,i=r.left):(o=parseFloat(s)||0,i=parseFloat(a)||0),p.isFunction(t)&&(t=t.call(e,n,u)),t.top!=null&&(h.top=t.top-u.top+o),t.left!=null&&(h.left=t.left-u.left+i),"using"in t?t.using.call(e,h):c.css(h)}},p.fn.extend({offset:function(e){if(arguments.length)return e===undefined?this:this.each(function(t){p.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],s=i&&i.ownerDocument;if(!s)return;return t=s.documentElement,p.contains(t,i)?(typeof i.getBoundingClientRect!==j&&(r=i.getBoundingClientRect()),n=sr(s),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(!this[0])return;var e,t,n={top:0,left:0},r=this[0];return p.css(r,"position")==="fixed"?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),p.nodeName(e[0],"html")||(n=e.offset()),n.top+=p.css(e[0],"borderTopWidth",!0),n.left+=p.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-p.css(r,"marginTop",!0),left:t.left-n.left-p.css(r,"marginLeft",!0)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||ir;while(e&&!p.nodeName(e,"html")&&p.css(e,"position")==="static")e=e.offsetParent;return e||ir})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);p.fn[e]=function(r){return J(this,function(e,r,i){var s=sr(e);if(i===undefined)return s?t in s?s[t]:s.document.documentElement[r]:e[r];s?s.scrollTo(n?p(s).scrollLeft():i,n?i:p(s).scrollTop()):e[r]=i},e,r,arguments.length,null)}}),p.each(["top","left"],function(e,t){p.cssHooks[t]=Ft(c.pixelPosition,function(e,n){if(n)return n=Bt(e,t),Pt.test(n)?p(e).position()[t]+"px":n})}),p.each({Height:"height",Width:"width"},function(e,t){p.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){p.fn[r]=function(r,i){var s=arguments.length&&(n||typeof r!="boolean"),o=n||(r===!0||i===!0?"margin":"border");return J(this,function(t,n,r){var i;return p.isWindow(t)?t.document.documentElement["client"+e]:t.nodeType===9?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?p.css(t,n,o):p.style(t,n,r,o)},t,s?r:undefined,s,null)}})}),p.fn.size=function(){return this.length},p.fn.andSelf=p.fn.addBack,typeof define=="function"&&define.amd&&define("jquery",[],function(){return p});var or=e.jQuery,ur=e.$;return p.noConflict=function(t){return e.$===p&&(e.$=ur),t&&e.jQuery===p&&(e.jQuery=or),p},typeof t===j&&(e.jQuery=e.$=p),p}),define("jquery-private",["jquery"],function(e){return e.noConflict(!0)}),define("text",["module"],function(e){var t,n,r,i,s,o=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],u=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,a=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,f=typeof location!="undefined"&&location.href,l=f&&location.protocol&&location.protocol.replace(/\:/,""),c=f&&location.hostname,h=f&&(location.port||undefined),p={},d=e.config&&e.config()||{};t={version:"2.0.14",strip:function(e){if(e){e=e.replace(u,"");var t=e.match(a);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:d.createXhr||function(){var e,t,n;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")for(t=0;t<3;t+=1){n=o[t];try{e=new ActiveXObject(n)}catch(r){}if(e){o=[n];break}}return e},parseName:function(e){var t,n,r,i=!1,s=e.lastIndexOf("."),o=e.indexOf("./")===0||e.indexOf("../")===0;return s!==-1&&(!o||s>1)?(t=e.substring(0,s),n=e.substring(s+1)):t=e,r=n||t,s=r.indexOf("!"),s!==-1&&(i=r.substring(s+1)==="strip",r=r.substring(0,s),n?n=r:t=r),{moduleName:t,ext:n,strip:i}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,n,r,i){var s,o,u,a=t.xdRegExp.exec(e);return a?(s=a[2],o=a[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===n)&&(!o||o.toLowerCase()===r.toLowerCase())&&(!u&&!o||u===i)):!0},finishLoad:function(e,n,r,i){r=n?t.strip(r):r,d.isBuild&&(p[e]=r),i(r)},load:function(e,n,r,i){if(i&&i.isBuild&&!i.inlineText){r();return}d.isBuild=i&&i.isBuild;var s=t.parseName(e),o=s.moduleName+(s.ext?"."+s.ext:""),u=n.toUrl(o),a=d.useXhr||t.useXhr;if(u.indexOf("empty:")===0){r();return}!f||a(u,l,c,h)?t.get(u,function(n){t.finishLoad(e,s.strip,n,r)},function(e){r.error&&r.error(e)}):n([o],function(e){t.finishLoad(s.moduleName+"."+s.ext,s.strip,e,r)})},write:function(e,n,r,i){if(p.hasOwnProperty(n)){var s=t.jsEscape(p[n]);r.asModule(e+"!"+n,"define(function () { return '"+s+"';});\n")}},writeFile:function(e,n,r,i,s){var o=t.parseName(n),u=o.ext?"."+o.ext:"",a=o.moduleName+u,f=r.toUrl(o.moduleName+u)+".js";t.load(a,r,function(n){var r=function(e){return i(f,e)};r.asModule=function(e,t){return i.asModule(e,f,t)},t.write(e,a,r,s)},s)}};if(d.env==="node"||!d.env&&typeof process!="undefined"&&process.versions&&!!process.versions.node&&!process.versions["node-webkit"]&&!process.versions["atom-shell"])n=require.nodeRequire("fs"),t.get=function(e,t,r){try{var i=n.readFileSync(e,"utf8");i[0]===""&&(i=i.substring(1)),t(i)}catch(s){r&&r(s)}};else if(d.env==="xhr"||!d.env&&t.createXhr())t.get=function(e,n,r,i){var s=t.createXhr(),o;s.open("GET",e,!0);if(i)for(o in i)i.hasOwnProperty(o)&&s.setRequestHeader(o.toLowerCase(),i[o]);d.onXhr&&d.onXhr(s,e),s.onreadystatechange=function(t){var i,o;s.readyState===4&&(i=s.status||0,i>399&&i<600?(o=new Error(e+" HTTP status: "+i),o.xhr=s,r&&r(o)):n(s.responseText),d.onXhrComplete&&d.onXhrComplete(s,e))},s.send(null)};else if(d.env==="rhino"||!d.env&&typeof Packages!="undefined"&&typeof java!="undefined")t.get=function(e,t){var n,r,i="utf-8",s=new java.io.File(e),o=java.lang.System.getProperty("line.separator"),u=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s),i)),a="";try{n=new java.lang.StringBuffer,r=u.readLine(),r&&r.length()&&r.charAt(0)===65279&&(r=r.substring(1)),r!==null&&n.append(r);while((r=u.readLine())!==null)n.append(o),n.append(r);a=String(n.toString())}finally{u.close()}t(a)};else if(d.env==="xpconnect"||!d.env&&typeof Components!="undefined"&&Components.classes&&Components.interfaces)r=Components.classes,i=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),s="@mozilla.org/windows-registry-key;1"in r,t.get=function(e,t){var n,o,u,a={};s&&(e=e.replace(/\//g,"\\")),u=new FileUtils.File(e);try{n=r["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream),n.init(u,1,0,!1),o=r["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream),o.init(n,"utf-8",n.available(),i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),o.readString(n.available(),a),o.close(),n.close(),t(a.value)}catch(f){throw new Error((u&&u.path||"")+": "+f)}};return t}),function(){function E(e){function t(t,n,r,i,s,o){for(;s>=0&&s<o;s+=e){var u=i?i[s]:s;r=n(r,t[u],u,t)}return r}return function(n,r,i,s){r=v(r,s,4);var o=!w(n)&&d.keys(n),u=(o||n).length,a=e>0?0:u-1;return arguments.length<3&&(i=n[o?o[a]:a],a+=e),t(n,r,i,o,a,u)}}function T(e){return function(t,n,r){n=m(n,r);var i=t!=null&&t.length,s=e>0?0:i-1;for(;s>=0&&s<i;s+=e)if(n(t[s],s,t))return s;return-1}}function L(e,t){var n=k.length,i=e.constructor,s=d.isFunction(i)&&i.prototype||r,o="constructor";d.has(e,o)&&!d.contains(t,o)&&t.push(o);while(n--)o=k[n],o in e&&e[o]!==s[o]&&!d.contains(t,o)&&t.push(o)}var e=this,t=e._,n=Array.prototype,r=Object.prototype,i=Function.prototype,s=n.push,o=n.slice,u=r.toString,a=r.hasOwnProperty,f=Array.isArray,l=Object.keys,c=i.bind,h=Object.create,p=function(){},d=function(e){if(e instanceof d)return e;if(!(this instanceof d))return new d(e);this._wrapped=e};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=d),exports._=d):e._=d,d.VERSION="1.8.2";var v=function(e,t,n){if(t===void 0)return e;switch(n==null?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,s){return e.call(t,n,r,i,s)}}return function(){return e.apply(t,arguments)}},m=function(e,t,n){return e==null?d.identity:d.isFunction(e)?v(e,t,n):d.isObject(e)?d.matcher(e):d.property(e)};d.iteratee=function(e,t){return m(e,t,Infinity)};var g=function(e,t){return function(n){var r=arguments.length;if(r<2||n==null)return n;for(var i=1;i<r;i++){var s=arguments[i],o=e(s),u=o.length;for(var a=0;a<u;a++){var f=o[a];if(!t||n[f]===void 0)n[f]=s[f]}}return n}},y=function(e){if(!d.isObject(e))return{};if(h)return h(e);p.prototype=e;var t=new p;return p.prototype=null,t},b=Math.pow(2,53)-1,w=function(e){var t=e&&e.length;return typeof t=="number"&&t>=0&&t<=b};d.each=d.forEach=function(e,t,n){t=v(t,n);var r,i;if(w(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var s=d.keys(e);for(r=0,i=s.length;r<i;r++)t(e[s[r]],s[r],e)}return e},d.map=d.collect=function(e,t,n){t=m(t,n);var r=!w(e)&&d.keys(e),i=(r||e).length,s=Array(i);for(var o=0;o<i;o++){var u=r?r[o]:o;s[o]=t(e[u],u,e)}return s},d.reduce=d.foldl=d.inject=E(1),d.reduceRight=d.foldr=E(-1),d.find=d.detect=function(e,t,n){var r;w(e)?r=d.findIndex(e,t,n):r=d.findKey(e,t,n);if(r!==void 0&&r!==-1)return e[r]},d.filter=d.select=function(e,t,n){var r=[];return t=m(t,n),d.each(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r},d.reject=function(e,t,n){return d.filter(e,d.negate(m(t)),n)},d.every=d.all=function(e,t,n){t=m(t,n);var r=!w(e)&&d.keys(e),i=(r||e).length;for(var s=0;s<i;s++){var o=r?r[s]:s;if(!t(e[o],o,e))return!1}return!0},d.some=d.any=function(e,t,n){t=m(t,n);var r=!w(e)&&d.keys(e),i=(r||e).length;for(var s=0;s<i;s++){var o=r?r[s]:s;if(t(e[o],o,e))return!0}return!1},d.contains=d.includes=d.include=function(e,t,n){return w(e)||(e=d.values(e)),d.indexOf(e,t,typeof n=="number"&&n)>=0},d.invoke=function(e,t){var n=o.call(arguments,2),r=d.isFunction(t);return d.map(e,function(e){var i=r?t:e[t];return i==null?i:i.apply(e,n)})},d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,n){var r=-Infinity,i=-Infinity,s,o;if(t==null&&e!=null){e=w(e)?e:d.values(e);for(var u=0,a=e.length;u<a;u++)s=e[u],s>r&&(r=s)}else t=m(t,n),d.each(e,function(e,n,s){o=t(e,n,s);if(o>i||o===-Infinity&&r===-Infinity)r=e,i=o});return r},d.min=function(e,t,n){var r=Infinity,i=Infinity,s,o;if(t==null&&e!=null){e=w(e)?e:d.values(e);for(var u=0,a=e.length;u<a;u++)s=e[u],s<r&&(r=s)}else t=m(t,n),d.each(e,function(e,n,s){o=t(e,n,s);if(o<i||o===Infinity&&r===Infinity)r=e,i=o});return r},d.shuffle=function(e){var t=w(e)?e:d.values(e),n=t.length,r=Array(n);for(var i=0,s;i<n;i++)s=d.random(0,i),s!==i&&(r[i]=r[s]),r[s]=t[i];return r},d.sample=function(e,t,n){return t==null||n?(w(e)||(e=d.values(e)),e[d.random(e.length-1)]):d.shuffle(e).slice(0,Math.max(0,t))},d.sortBy=function(e,t,n){return t=m(t,n),d.pluck(d.map(e,function(e,n,r){return{value:e,index:n,criteria:t(e,n,r)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||n===void 0)return 1;if(n<r||r===void 0)return-1}return e.index-t.index}),"value")};var S=function(e){return function(t,n,r){var i={};return n=m(n,r),d.each(t,function(r,s){var o=n(r,s,t);e(i,r,o)}),i}};d.groupBy=S(function(e,t,n){d.has(e,n)?e[n].push(t):e[n]=[t]}),d.indexBy=S(function(e,t,n){e[n]=t}),d.countBy=S(function(e,t,n){d.has(e,n)?e[n]++:e[n]=1}),d.toArray=function(e){return e?d.isArray(e)?o.call(e):w(e)?d.map(e,d.identity):d.values(e):[]},d.size=function(e){return e==null?0:w(e)?e.length:d.keys(e).length},d.partition=function(e,t,n){t=m(t,n);var r=[],i=[];return d.each(e,function(e,n,s){(t(e,n,s)?r:i).push(e)}),[r,i]},d.first=d.head=d.take=function(e,t,n){return e==null?void 0:t==null||n?e[0]:d.initial(e,e.length-t)},d.initial=function(e,t,n){return o.call(e,0,Math.max(0,e.length-(t==null||n?1:t)))},d.last=function(e,t,n){return e==null?void 0:t==null||n?e[e.length-1]:d.rest(e,Math.max(0,e.length-t))},d.rest=d.tail=d.drop=function(e,t,n){return o.call(e,t==null||n?1:t)},d.compact=function(e){return d.filter(e,d.identity)};var x=function(e,t,n,r){var i=[],s=0;for(var o=r||0,u=e&&e.length;o<u;o++){var a=e[o];if(w(a)&&(d.isArray(a)||d.isArguments(a))){t||(a=x(a,t,n));var f=0,l=a.length;i.length+=l;while(f<l)i[s++]=a[f++]}else n||(i[s++]=a)}return i};d.flatten=function(e,t){return x(e,t,!1)},d.without=function(e){return d.difference(e,o.call(arguments,1))},d.uniq=d.unique=function(e,t,n,r){if(e==null)return[];d.isBoolean(t)||(r=n,n=t,t=!1),n!=null&&(n=m(n,r));var i=[],s=[];for(var o=0,u=e.length;o<u;o++){var a=e[o],f=n?n(a,o,e):a;t?((!o||s!==f)&&i.push(a),s=f):n?d.contains(s,f)||(s.push(f),i.push(a)):d.contains(i,a)||i.push(a)}return i},d.union=function(){return d.uniq(x(arguments,!0,!0))},d.intersection=function(e){if(e==null)return[];var t=[],n=arguments.length;for(var r=0,i=e.length;r<i;r++){var s=e[r];if(d.contains(t,s))continue;for(var o=1;o<n;o++)if(!d.contains(arguments[o],s))break;o===n&&t.push(s)}return t},d.difference=function(e){var t=x(arguments,!0,!0,1);return d.filter(e,function(e){return!d.contains(t,e)})},d.zip=function(){return d.unzip(arguments)},d.unzip=function(e){var t=e&&d.max(e,"length").length||0,n=Array(t);for(var r=0;r<t;r++)n[r]=d.pluck(e,r);return n},d.object=function(e,t){var n={};for(var r=0,i=e&&e.length;r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},d.indexOf=function(e,t,n){var r=0,i=e&&e.length;if(typeof n=="number")r=n<0?Math.max(0,i+n):n;else if(n&&i)return r=d.sortedIndex(e,t),e[r]===t?r:-1;if(t!==t)return d.findIndex(o.call(e,r),d.isNaN);for(;r<i;r++)if(e[r]===t)return r;return-1},d.lastIndexOf=function(e,t,n){var r=e?e.length:0;typeof n=="number"&&(r=n<0?r+n+1:Math.min(r,n+1));if(t!==t)return d.findLastIndex(o.call(e,0,r),d.isNaN);while(--r>=0)if(e[r]===t)return r;return-1},d.findIndex=T(1),d.findLastIndex=T(-1),d.sortedIndex=function(e,t,n,r){n=m(n,r,1);var i=n(t),s=0,o=e.length;while(s<o){var u=Math.floor((s+o)/2);n(e[u])<i?s=u+1:o=u}return s},d.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=n||1;var r=Math.max(Math.ceil((t-e)/n),0),i=Array(r);for(var s=0;s<r;s++,e+=n)i[s]=e;return i};var N=function(e,t,n,r,i){if(r instanceof t){var s=y(e.prototype),o=e.apply(s,i);return d.isObject(o)?o:s}return e.apply(n,i)};d.bind=function(e,t){if(c&&e.bind===c)return c.apply(e,o.call(arguments,1));if(!d.isFunction(e))throw new TypeError("Bind must be called on a function");var n=o.call(arguments,2),r=function(){return N(e,r,t,this,n.concat(o.call(arguments)))};return r},d.partial=function(e){var t=o.call(arguments,1),n=function(){var r=0,i=t.length,s=Array(i);for(var o=0;o<i;o++)s[o]=t[o]===d?arguments[r++]:t[o];while(r<arguments.length)s.push(arguments[r++]);return N(e,n,this,this,s)};return n},d.bindAll=function(e){var t,n=arguments.length,r;if(n<=1)throw new Error("bindAll must be passed function names");for(t=1;t<n;t++)r=arguments[t],e[r]=d.bind(e[r],e);return e},d.memoize=function(e,t){var n=function(r){var i=n.cache,s=""+(t?t.apply(this,arguments):r);return d.has(i,s)||(i[s]=e.apply(this,arguments)),i[s]};return n.cache={},n},d.delay=function(e,t){var n=o.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},d.defer=d.partial(d.delay,d,1),d.throttle=function(e,t,n){var r,i,s,o=null,u=0;n||(n={});var a=function(){u=n.leading===!1?0:d.now(),o=null,s=e.apply(r,i),o||(r=i=null)};return function(){var f=d.now();!u&&n.leading===!1&&(u=f);var l=t-(f-u);return r=this,i=arguments,l<=0||l>t?(o&&(clearTimeout(o),o=null),u=f,s=e.apply(r,i),o||(r=i=null)):!o&&n.trailing!==!1&&(o=setTimeout(a,l)),s}},d.debounce=function(e,t,n){var r,i,s,o,u,a=function(){var f=d.now()-o;f<t&&f>=0?r=setTimeout(a,t-f):(r=null,n||(u=e.apply(s,i),r||(s=i=null)))};return function(){s=this,i=arguments,o=d.now();var f=n&&!r;return r||(r=setTimeout(a,t)),f&&(u=e.apply(s,i),s=i=null),u}},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){var n=t,r=e[t].apply(this,arguments);while(n--)r=e[n].call(this,r);return r}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},d.once=d.partial(d.before,2);var C=!{toString:null}.propertyIsEnumerable("toString"),k=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];d.keys=function(e){if(!d.isObject(e))return[];if(l)return l(e);var t=[];for(var n in e)d.has(e,n)&&t.push(n);return C&&L(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var n in e)t.push(n);return C&&L(e,t),t},d.values=function(e){var t=d.keys(e),n=t.length,r=Array(n);for(var i=0;i<n;i++)r[i]=e[t[i]];return r},d.mapObject=function(e,t,n){t=m(t,n);var r=d.keys(e),i=r.length,s={},o;for(var u=0;u<i;u++)o=r[u],s[o]=t(e[o],o,e);return s},d.pairs=function(e){var t=d.keys(e),n=t.length,r=Array(n);for(var i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r},d.invert=function(e){var t={},n=d.keys(e);for(var r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t},d.functions=d.methods=function(e){var t=[];for(var n in e)d.isFunction(e[n])&&t.push(n);return t.sort()},d.extend=g(d.allKeys),d.extendOwn=d.assign=g(d.keys),d.findKey=function(e,t,n){t=m(t,n);var r=d.keys(e),i;for(var s=0,o=r.length;s<o;s++){i=r[s];if(t(e[i],i,e))return i}},d.pick=function(e,t,n){var r={},i=e,s,o;if(i==null)return r;d.isFunction(t)?(o=d.allKeys(i),s=v(t,n)):(o=x(arguments,!1,!1,1),s=function(e,t,n){return t in n},i=Object(i));for(var u=0,a=o.length;u<a;u++){var f=o[u],l=i[f];s(l,f,i)&&(r[f]=l)}return r},d.omit=function(e,t,n){if(d.isFunction(t))t=d.negate(t);else{var r=d.map(x(arguments,!1,!1,1),String);t=function(e,t){return!d.contains(r,t)}}return d.pick(e,t,n)},d.defaults=g(d.allKeys,!0),d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var n=d.keys(t),r=n.length;if(e==null)return!r;var i=Object(e);for(var s=0;s<r;s++){var o=n[s];if(t[o]!==i[o]||!(o in i))return!1}return!0};var A=function(e,t,n,r){if(e===t)return e!==0||1/e===1/t;if(e==null||t==null)return e===t;e instanceof d&&(e=e._wrapped),t instanceof d&&(t=t._wrapped);var i=u.call(e);if(i!==u.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":if(+e!==+e)return+t!==+t;return+e===0?1/+e===1/t:+e===+t;case"[object Date]":case"[object Boolean]":return+e===+t}var s=i==="[object Array]";if(!s){if(typeof e!="object"||typeof t!="object")return!1;var o=e.constructor,a=t.constructor;if(o!==a&&!(d.isFunction(o)&&o instanceof o&&d.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}n=n||[],r=r||[];var f=n.length;while(f--)if(n[f]===e)return r[f]===t;n.push(e),r.push(t);if(s){f=e.length;if(f!==t.length)return!1;while(f--)if(!A(e[f],t[f],n,r))return!1}else{var l=d.keys(e),c;f=l.length;if(d.keys(t).length!==f)return!1;while(f--){c=l[f];if(!d.has(t,c)||!A(e[c],t[c],n,r))return!1}}return n.pop(),r.pop(),!0};d.isEqual=function(e,t){return A(e,t)},d.isEmpty=function(e){return e==null?!0:w(e)&&(d.isArray(e)||d.isString(e)||d.isArguments(e))?e.length===0:d.keys(e).length===0},d.isElement=function(e){return!!e&&e.nodeType===1},d.isArray=f||function(e){return u.call(e)==="[object Array]"},d.isObject=function(e){var t=typeof e;return t==="function"||t==="object"&&!!e},d.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){d["is"+e]=function(t){return u.call(t)==="[object "+e+"]"}}),d.isArguments(arguments)||(d.isArguments=function(e){return d.has(e,"callee")}),typeof /./!="function"&&typeof Int8Array!="object"&&(d.isFunction=function(e){return typeof e=="function"||!1}),d.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},d.isNaN=function(e){return d.isNumber(e)&&e!==+e},d.isBoolean=function(e){return e===!0||e===!1||u.call(e)==="[object Boolean]"},d.isNull=function(e){return e===null},d.isUndefined=function(e){return e===void 0},d.has=function(e,t){return e!=null&&a.call(e,t)},d.noConflict=function(){return e._=t,this},d.identity=function(e){return e},d.constant=function(e){return function(){return e}},d.noop=function(){},d.property=function(e){return function(t){return t==null?void 0:t[e]}},d.propertyOf=function(e){return e==null?function(){}:function(t){return e[t]}},d.matcher=d.matches=function(e){return e=d.extendOwn({},e),function(t){return d.isMatch(t,e)}},d.times=function(e,t,n){var r=Array(Math.max(0,e));t=v(t,n,1);for(var i=0;i<e;i++)r[i]=t(i);return r},d.random=function(e,t){return t==null&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},d.now=Date.now||function(){return(new Date).getTime()};var O={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},M=d.invert(O),_=function(e){var t=function(t){return e[t]},n="(?:"+d.keys(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=e==null?"":""+e,r.test(e)?e.replace(i,t):e}};d.escape=_(O),d.unescape=_(M),d.result=function(e,t,n){var r=e==null?void 0:e[t];return r===void 0&&(r=n),d.isFunction(r)?r.call(e):r};var D=0;d.uniqueId=function(e){var t=++D+"";return e?e+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var P=/(.)^/,H={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\u2028|\u2029/g,j=function(e){return"\\"+H[e]};d.template=function(e,t,n){!t&&n&&(t=n),t=d.defaults({},t,d.templateSettings);var r=RegExp([(t.escape||P).source,(t.interpolate||P).source,(t.evaluate||P).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){return s+=e.slice(i,u).replace(B,j),i=u+t.length,n?s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?s+="'+\n((__t=("+r+"))==null?'':__t)+\n'":o&&(s+="';\n"+o+"\n__p+='"),t}),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(t.variable||"obj","_",s)}catch(u){throw u.source=s,u}var a=function(e){return o.call(this,e,d)},f=t.variable||"obj";return a.source="function("+f+"){\n"+s+"}",a},d.chain=function(e){var t=d(e);return t._chain=!0,t};var F=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(t){var n=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),F(this,n.apply(d,e))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=n[e];d.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e==="shift"||e==="splice")&&n.length===0&&delete n[0],F(this,n)}}),d.each(["concat","join","slice"],function(e){var t=n[e];d.prototype[e]=function(){return F(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped},typeof define=="function"&&define.amd&&define("underscore",[],function(){return d})}.call(this),define("tpl",["text","underscore"],function(e,t){var n={},r="define('{pluginName}!{moduleName}', function () { return {source}; });\n";return{version:"0.0.2",load:function(r,i,s,o){o.tpl&&o.tpl.templateSettings&&(t.templateSettings=o.tpl.templateSettings);if(n[r])s(n[r]);else{var u=o.tpl&&o.tpl.extension||".html",a=o.tpl&&o.tpl.path||"";e.load(a+r+u,i,function(e){n[r]=t.template(e),s(n[r])},o)}},write:function(e,t,i){var s=n[t],o=s&&s.source;o&&i.asModule(e+"!"+t,r.replace("{pluginName}",e).replace("{moduleName}",t).replace("{source}",o))}}}),define("tpl!action",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-message '+((__t=extra_classes)==null?"":__t)+'">\n <span class="chat-message-'+((__t=sender)==null?"":__t)+'">'+((__t=time)==null?"":__t)+" **"+((__t=username)==null?"":__t)+' </span>\n <span class="chat-message-content">'+((__t=message)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!add_contact_dropdown",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dl class="add-converse-contact dropdown">\n <dt id="xmpp-contact-search" class="fancy-dropdown">\n <a class="toggle-xmpp-contact-form" href="#"\n title="'+((__t=label_click_to_chat)==null?"":__t)+'">\n <span class="icon-plus"></span>'+((__t=label_add_contact)==null?"":__t)+'</a>\n </dt>\n <dd class="search-xmpp" style="display:none"><ul></ul></dd>\n</dl>\n';return __p}}),define("tpl!add_contact_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n <form class="add-xmpp-contact">\n <input type="text"\n name="identifier"\n class="username"\n placeholder="'+((__t=label_contact_username)==null?"":__t)+'"/>\n <button type="submit">'+((__t=label_add)==null?"":__t)+"</button>\n </form>\n</li>\n";return __p}}),define("tpl!change_status_message",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="set-custom-xmpp-status">\n <span class="input-button-group">\n <input type="text" class="custom-xmpp-status" '+((__t=status_message)==null?"":__t)+'\n placeholder="'+((__t=label_custom_status)==null?"":__t)+'"/>\n <button type="submit">'+((__t=label_save)==null?"":__t)+"</button>\n </span>\n</form>\n";return __p}}),define("tpl!chat_status",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="xmpp-status">\n <a class="choose-xmpp-status '+((__t=chat_status)==null?"":__t)+'"\n data-value="'+((__t=status_message)==null?"":__t)+'"\n href="#" title="'+((__t=desc_change_status)==null?"":__t)+'">\n\n <span class="icon-'+((__t=chat_status)==null?"":__t)+'"></span>'+((__t=status_message)==null?"":__t)+'\n </a>\n <a class="change-xmpp-status-message icon-pencil"\n href="#"\n title="'+((__t=desc_custom_status)==null?"":__t)+'"></a>\n</div>\n';return __p}}),define("tpl!chatarea",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-area">\n <div class="chat-content"></div>\n <form class="sendXMPPMessage" action="" method="post">\n ',show_toolbar&&(__p+='\n <ul class="chat-toolbar no-text-select"></ul>\n '),__p+='\n <textarea type="text" class="chat-textarea" \n placeholder="'+((__t=label_message)==null?"":__t)+'"/>\n </form>\n</div>\n';return __p}}),define("tpl!chatbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" style="height: '+((__t=height)==null?"":__t)+'px">\n <div class="dragresize dragresize-tm"></div>\n <div class="chat-head chat-head-chatbox">\n <a class="close-chatbox-button icon-close"></a>\n <a class="toggle-chatbox-button icon-minus"></a>\n <div class="chat-title">\n ',url&&(__p+='\n <a href="'+((__t=url)==null?"":__t)+'" target="_blank" class="user">\n '),__p+="\n "+((__t=fullname)==null?"":__t)+"\n ",url&&(__p+="\n </a>\n "),__p+='\n </div>\n <p class="user-custom-message"><p/>\n </div>\n <div class="chat-body">\n <div class="chat-content"></div>\n <form class="sendXMPPMessage" action="" method="post">\n ',show_toolbar&&(__p+='\n <ul class="chat-toolbar no-text-select"></ul>\n '),__p+='\n <textarea\n type="text"\n class="chat-textarea"\n placeholder="'+((__t=label_personal_message)==null?"":__t)+'"/>\n </form>\n </div>\n</div>\n';return __p}}),define("tpl!chatroom",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" style="height: '+((__t=height)==null?"":__t)+'px"\n ',minimized&&(__p+=' style="display:none" '),__p+='>\n <div class="dragresize dragresize-tm"></div>\n <div class="chat-head chat-head-chatroom">\n <a class="close-chatbox-button icon-close"></a>\n <a class="toggle-chatbox-button icon-minus"></a>\n <a class="configure-chatroom-button icon-wrench" style="display:none"></a>\n <div class="chat-title"> '+((__t=name)==null?"":__t)+' </div>\n <p class="chatroom-topic"><p/>\n </div>\n <div class="chat-body"><span class="spinner centered"/></div>\n</div>\n';return __p}}),define("tpl!chatroom_password_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chatroom-form-container">\n <form class="chatroom-form">\n <legend>'+((__t=heading)==null?"":__t)+"</legend>\n <label>"+((__t=label_password)==null?"":__t)+'</label>\n <input type="password" name="password"/>\n <input type="submit" value="'+((__t=label_submit)==null?"":__t)+'"/>\n </form>\n</div>\n';return __p}}),define("tpl!chatroom_sidebar",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<!-- <div class="participants"> -->\n<form class="room-invite">\n <input class="invited-contact" placeholder="'+((__t=label_invitation)==null?"":__t)+'" type="text"/>\n</form>\n<label>'+((__t=label_occupants)==null?"":__t)+':</label>\n<ul class="participant-list"></ul>\n<!-- </div> -->\n';return __p}}),define("tpl!chatrooms_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s" href="#chatrooms">'+((__t=label_rooms)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!chats_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div id="minimized-chats">\n <a id="toggle-minimized-chats" href="#"></a>\n <div class="minimized-chats-flyout"></div>\n</div>\n';return __p}}),define("tpl!choose_status",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dl id="target" class="dropdown">\n <dt id="fancy-xmpp-status-select" class="fancy-dropdown"></dt>\n <dd><ul class="xmpp-status-menu"></ul></dd>\n</dl>\n';return __p}}),define("tpl!contacts_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form class="set-xmpp-status" action="" method="post">\n <span id="xmpp-status-holder">\n <select id="select-xmpp-status" style="display:none">\n <option value="online">'+((__t=label_online)==null?"":__t)+'</option>\n <option value="dnd">'+((__t=label_busy)==null?"":__t)+'</option>\n <option value="away">'+((__t=label_away)==null?"":__t)+'</option>\n <option value="offline">'+((__t=label_offline)==null?"":__t)+"</option>\n ",allow_logout&&(__p+='\n <option value="logout">'+((__t=label_logout)==null?"":__t)+"</option>\n "),__p+="\n </select>\n </span>\n</form>\n";return __p}}),define("tpl!contacts_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s current" href="#users">'+((__t=label_contacts)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!controlbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="box-flyout" style="height: '+((__t=height)==null?"":__t)+'px">\n <div class="dragresize dragresize-tm"></div>\n <div class="chat-head controlbox-head">\n <ul id="controlbox-tabs"></ul>\n <a class="close-chatbox-button icon-close"></a>\n </div>\n <div class="controlbox-panes"></div>\n</div>\n';return __p}}),define("tpl!controlbox_toggle",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="conn-feedback">'+((__t=label_toggle)==null?"":__t)+'</span>\n<span style="display: none" id="online-count">(0)</span>\n';return __p}}),define("tpl!field",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<field var="'+((__t=name)==null?"":__t)+'">',_.isArray(value)?(__p+="\n ",_.each(value,function(e){__p+="<value>"+((__t=e)==null?"":__t)+"</value>"}),__p+="\n"):__p+="\n <value>"+((__t=value)==null?"":__t)+"</value>\n",__p+="</field>\n";return __p}}),define("tpl!form_captcha",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<img src="data:'+((__t=type)==null?"":__t)+";base64,"+((__t=data)==null?"":__t)+'">\n<input name="'+((__t=name)==null?"":__t)+'" type="text" ',required&&(__p+=' class="required" '),__p+=" >\n\n\n";return __p}}),define("tpl!form_checkbox",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="<label>"+((__t=label)==null?"":__t)+'</label>\n<input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'" '+((__t=checked)==null?"":__t)+">\n";return __p}}),define("tpl!form_input",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'" \n ',value&&(__p+=' value="'+((__t=value)==null?"":__t)+'" '),__p+="\n ",required&&(__p+=' class="required" '),__p+=" >\n";return __p}}),define("tpl!form_select",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="<label>"+((__t=label)==null?"":__t)+'</label>\n<select name="'+((__t=name)==null?"":__t)+'" ',multiple&&(__p+=' multiple="multiple" '),__p+=">"+((__t=options)==null?"":__t)+"</select>\n";return __p}}),define("tpl!form_textarea",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<label class="label-ta">'+((__t=label)==null?"":__t)+'</label>\n<textarea name="'+((__t=name)==null?"":__t)+'">'+((__t=value)==null?"":__t)+"</textarea>\n";return __p}}),define("tpl!form_username",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n<label>\n "+((__t=label)==null?"":__t)+"\n</label>\n"),__p+='\n<div class="input-group">\n <input name="'+((__t=name)==null?"":__t)+'" type="'+((__t=type)==null?"":__t)+'" \n ',value&&(__p+=' value="'+((__t=value)==null?"":__t)+'" '),__p+="\n ",required&&(__p+=' class="required" '),__p+=" />\n <span>"+((__t=domain)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!group_header",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_group)==null?"":__t)+"</a>\n";return __p}}),define("tpl!info",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-info">'+((__t=message)==null?"":__t)+"</div>\n";return __p}}),define("tpl!login_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="converse-login" method="post">\n <label>'+((__t=label_username)==null?"":__t)+'</label>\n <input type="email" name="jid" placeholder="user@server">\n <label>'+((__t=label_password)==null?"":__t)+'</label>\n <input type="password" name="password" placeholder="password">\n <input class="submit" type="submit" value="'+((__t=label_login)==null?"":__t)+'">\n <span class="conn-feedback"></span>\n</form>\n';return __p}}),define("tpl!login_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="current" href="#login-dialog">'+((__t=label_sign_in)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!message",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<div class="chat-message '+((__t=extra_classes)==null?"":__t)+'">\n <span class="chat-message-'+((__t=sender)==null?"":__t)+'">'+((__t=time)==null?"":__t)+" "+((__t=username)==null?"":__t)+': </span>\n <span class="chat-message-content">'+((__t=message)==null?"":__t)+"</span>\n</div>\n";return __p}}),define("tpl!new_day",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<time class="chat-date" datetime="'+((__t=isodate)==null?"":__t)+'">'+((__t=datestring)==null?"":__t)+"</time>\n";return __p}}),define("tpl!occupant",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li class="'+((__t=role)==null?"":__t)+'"\n ',role==="moderator"&&(__p+='\n title="'+((__t=desc_moderator)==null?"":__t)+'"\n '),__p+="\n ",role==="participant"&&(__p+='\n title="'+((__t=desc_participant)==null?"":__t)+'"\n '),__p+="\n ",role==="visitor"&&(__p+='\n title="'+((__t=desc_visitor)==null?"":__t)+'"\n '),__p+="\n>"+((__t=nick)==null?"":__t)+"</li>\n";return __p}}),define("tpl!pending_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="pending-contact-name" title="Name: '+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+'">'+((__t=fullname)==null?"":__t)+'</span> <a class="remove-xmpp-contact icon-remove" title="'+((__t=desc_remove)==null?"":__t)+'" href="#"></a>\n';return __p}}),define("tpl!pending_contacts",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dt id="pending-xmpp-contacts"><a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_pending_contacts)==null?"":__t)+"</a></dt>\n";return __p}}),define("tpl!register_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form id="converse-register">\n <span class="reg-feedback"></span>\n <label>'+((__t=label_domain)==null?"":__t)+'</label>\n <input type="text" name="domain" placeholder="'+((__t=domain_placeholder)==null?"":__t)+'">\n <p class="form-help">'+((__t=help_providers)==null?"":__t)+' <a href="'+((__t=href_providers)==null?"":__t)+'" class="url" target="_blank">'+((__t=help_providers_link)==null?"":__t)+'</a>.</p>\n <input class="submit" type="submit" value="'+((__t=label_register)==null?"":__t)+'">\n</form>\n';return __p}}),define("tpl!register_tab",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li><a class="s" href="#register">'+((__t=label_register)==null?"":__t)+"</a></li>\n";return __p}}),define("tpl!registration_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<p class="provider-title">'+((__t=domain)==null?"":__t)+"</p>\n<a href='https://xmpp.net/result.php?domain="+((__t=domain)==null?"":__t)+"&type=client'>\n <img class=\"provider-score\" src='https://xmpp.net/badge.php?domain="+((__t=domain)==null?"":__t)+"' alt='xmpp.net score' />\n</a>\n<p class=\"title\">"+((__t=title)==null?"":__t)+'</p>\n<p class="instructions">'+((__t=instructions)==null?"":__t)+"</p>\n";return __p}}),define("tpl!registration_request",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="spinner login-submit"/>\n<p class="info">'+((__t=info_message)==null?"":__t)+'</p>\n<button class="cancel hor_centered">'+((__t=cancel)==null?"":__t)+"</button>\n";return __p}}),define("tpl!requesting_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="req-contact-name" title="Name: '+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+'">'+((__t=fullname)==null?"":__t)+'</span>\n<span class="request-actions">\n <a class="accept-xmpp-request icon-checkmark" title="'+((__t=desc_accept)==null?"":__t)+'" href="#"></a>\n <a class="decline-xmpp-request icon-close" title="'+((__t=desc_decline)==null?"":__t)+'" href="#"></a>\n</span>\n';return __p}}),define("tpl!requesting_contacts",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dt id="xmpp-contact-requests"><a href="#" class="group-toggle icon-'+((__t=toggle_state)==null?"":__t)+'" title="'+((__t=desc_group_toggle)==null?"":__t)+'">'+((__t=label_contact_requests)==null?"":__t)+"</a></dt>\n";return __p}}),define("tpl!room_description",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<!-- FIXME: check markup in mockup -->\n<div class="room-info">\n<p class="room-info"><strong>'+((__t=label_desc)==null?"":__t)+"</strong> "+((__t=desc)==null?"":__t)+'</p>\n<p class="room-info"><strong>'+((__t=label_occ)==null?"":__t)+"</strong> "+((__t=occ)==null?"":__t)+'</p>\n<p class="room-info"><strong>'+((__t=label_features)==null?"":__t)+"</strong>\n <ul>\n ",passwordprotected&&(__p+='\n <li class="room-info locked">'+((__t=label_requires_auth)==null?"":__t)+"</li>\n "),__p+="\n ",hidden&&(__p+='\n <li class="room-info">'+((__t=label_hidden)==null?"":__t)+"</li>\n "),__p+="\n ",membersonly&&(__p+='\n <li class="room-info">'+((__t=label_requires_invite)==null?"":__t)+"</li>\n "),__p+="\n ",moderated&&(__p+='\n <li class="room-info">'+((__t=label_moderated)==null?"":__t)+"</li>\n "),__p+="\n ",nonanonymous&&(__p+='\n <li class="room-info">'+((__t=label_non_anon)==null?"":__t)+"</li>\n "),__p+="\n ",open&&(__p+='\n <li class="room-info">'+((__t=label_open_room)==null?"":__t)+"</li>\n "),__p+="\n ",persistent&&(__p+='\n <li class="room-info">'+((__t=label_permanent_room)==null?"":__t)+"</li>\n "),__p+="\n ",publicroom&&(__p+='\n <li class="room-info">'+((__t=label_public)==null?"":__t)+"</li>\n "),__p+="\n ",semianonymous&&(__p+='\n <li class="room-info">'+((__t=label_semi_anon)==null?"":__t)+"</li>\n "),__p+="\n ",temporary&&(__p+='\n <li class="room-info">'+((__t=label_temp_room)==null?"":__t)+"</li>\n "),__p+="\n ",unmoderated&&(__p+='\n <li class="room-info">'+((__t=label_unmoderated)==null?"":__t)+"</li>\n "),__p+="\n </ul>\n</p>\n</div>\n";return __p}}),define("tpl!room_item",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<dd class="available-chatroom">\n<a class="open-room" data-room-jid="'+((__t=jid)==null?"":__t)+'"\n title="'+((__t=open_title)==null?"":__t)+'" href="#">'+((__t=name)==null?"":__t)+'</a>\n<a class="room-info icon-room-info" data-room-jid="'+((__t=jid)==null?"":__t)+'"\n title="'+((__t=info_title)==null?"":__t)+'" href="#"> </a>\n</dd>\n';return __p}}),define("tpl!room_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<form class="add-chatroom" action="" method="post">\n <label>'+((__t=label_room_name)==null?"":__t)+'</label>\n <input type="text" name="chatroom" class="new-chatroom-name"\n placeholder="'+((__t=label_room_name)==null?"":__t)+'"/>\n <label>'+((__t=label_nickname)==null?"":__t)+'</label>\n <input type="text" name="nick" class="new-chatroom-nick"\n placeholder="'+((__t=label_nickname)==null?"":__t)+'"/>\n <label'+((__t=server_label_global_attr)==null?"":__t)+">"+((__t=label_server)==null?"":__t)+'</label>\n <input type="'+((__t=server_input_type)==null?"":__t)+'" name="server" class="new-chatroom-server"\n placeholder="'+((__t=label_server)==null?"":__t)+'"/>\n <div class="button-group">\n <input type="submit" class="left" name="join" value="'+((__t=label_join)==null?"":__t)+'"/>\n <input type="button" class="right" name="show" id="show-rooms" value="'+((__t=label_show_rooms)==null?"":__t)+'"/>\n </div>\n</form>\n<dl id="available-chatrooms"></dl>\n';return __p}}),define("tpl!roster",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<span class="input-button-group">\n <input style="display: none;" class="roster-filter" placeholder="'+((__t=placeholder)==null?"":__t)+'">\n <select style="display: none;" class="filter-type">\n <option value="contacts">'+((__t=label_contacts)==null?"":__t)+'</option>\n <option value="groups">'+((__t=label_groups)==null?"":__t)+"</option>\n </select>\n</span>\n";return __p}}),define("tpl!roster_item",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a class="open-chat" title="Name: '+((__t=fullname)==null?"":__t)+"\nJID: "+((__t=jid)==null?"":__t)+"\n"+((__t=desc_chat)==null?"":__t)+'" href="#"><span class="icon-'+((__t=chat_status)==null?"":__t)+'" title="'+((__t=desc_status)==null?"":__t)+'"></span>'+((__t=fullname)==null?"":__t)+"</a>\n",allow_contact_removal&&(__p+='\n<a class="remove-xmpp-contact icon-remove" title="'+((__t=desc_remove)==null?"":__t)+'" href="#"></a>\n'),__p+="\n";return __p}}),define("tpl!search_contact",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n <form class="search-xmpp-contact">\n <input type="text"\n name="identifier"\n class="username"\n placeholder="'+((__t=label_contact_name)==null?"":__t)+'"/>\n <button type="submit">'+((__t=label_search)==null?"":__t)+"</button>\n </form>\n</li>\n";return __p}}),define("tpl!select_option",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<option value="'+((__t=value)==null?"":__t)+'" ',selected&&(__p+=' selected="selected" '),__p+=" >"+((__t=label)==null?"":__t)+"</option>\n";return __p}}),define("tpl!status_option",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<li>\n <a href="#" class="'+((__t=value)==null?"":__t)+'" data-value="'+((__t=value)==null?"":__t)+'">\n <span class="icon-'+((__t=value)==null?"":__t)+'"></span>\n '+((__t=text)==null?"":__t)+"\n </a>\n</li>\n";return __p}}),define("tpl!toggle_chats",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+=""+((__t=Minimized)==null?"":__t)+' <span id="minimized-count">('+((__t=num_minimized)==null?"":__t)+')</span>\n<span class="unread-message-count"\n ',num_unread||(__p+=' style="display: none" '),__p+='\n href="#">'+((__t=num_unread)==null?"":__t)+"</span>\n";return __p}}),define("tpl!toolbar",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",show_emoticons&&(__p+='\n <li class="toggle-smiley icon-happy" title="Insert a smilery">\n <ul>\n <li><a class="icon-smiley" href="#" data-emoticon=":)"></a></li>\n <li><a class="icon-wink" href="#" data-emoticon=";)"></a></li>\n <li><a class="icon-grin" href="#" data-emoticon=":D"></a></li>\n <li><a class="icon-tongue" href="#" data-emoticon=":P"></a></li>\n <li><a class="icon-cool" href="#" data-emoticon="8)"></a></li>\n <li><a class="icon-evil" href="#" data-emoticon=">:)"></a></li>\n <li><a class="icon-confused" href="#" data-emoticon=":S"></a></li>\n <li><a class="icon-wondering" href="#" data-emoticon=":\\"></a></li>\n <li><a class="icon-angry" href="#" data-emoticon=">:("></a></li>\n <li><a class="icon-sad" href="#" data-emoticon=":("></a></li>\n <li><a class="icon-shocked" href="#" data-emoticon=":O"></a></li>\n <li><a class="icon-thumbs-up" href="#" data-emoticon="(^.^)b"></a></li>\n <li><a class="icon-heart" href="#" data-emoticon="<3"></a></li>\n </ul>\n </li>\n'),__p+="\n",show_call_button&&(__p+='\n<li class="toggle-call"><a class="icon-phone" title="'+((__t=label_start_call)==null?"":__t)+'"></a></li>\n'),__p+="\n",show_participants_toggle&&(__p+='\n<li class="toggle-participants"><a class="icon-hide-users" title="'+((__t=label_hide_participants)==null?"":__t)+'"></a></li>\n'),__p+="\n",show_clear_button&&(__p+='\n<li class="toggle-clear"><a class="icon-remove" title="'+((__t=label_clear)==null?"":__t)+'"></a></li>\n'),__p+="\n",allow_otr&&(__p+='\n <li class="toggle-otr '+((__t=otr_status_class)==null?"":__t)+'" title="'+((__t=otr_tooltip)==null?"":__t)+'">\n <span class="chat-toolbar-text">'+((__t=otr_translated_status)==null?"":__t)+"</span>\n ",otr_status==UNENCRYPTED&&(__p+='\n <span class="icon-unlocked"></span>\n '),__p+="\n ",otr_status==UNVERIFIED&&(__p+='\n <span class="icon-lock"></span>\n '),__p+="\n ",otr_status==VERIFIED&&(__p+='\n <span class="icon-lock"></span>\n '),__p+="\n ",otr_status==FINISHED&&(__p+='\n <span class="icon-unlocked"></span>\n '),__p+="\n <ul>\n ",otr_status==UNENCRYPTED&&(__p+='\n <li><a class="start-otr" href="#">'+((__t=label_start_encrypted_conversation)==null?"":__t)+"</a></li>\n "),__p+="\n ",otr_status!=UNENCRYPTED&&(__p+='\n <li><a class="start-otr" href="#">'+((__t=label_refresh_encrypted_conversation)==null?"":__t)+'</a></li>\n <li><a class="end-otr" href="#">'+((__t=label_end_encrypted_conversation)==null?"":__t)+'</a></li>\n <li><a class="auth-otr" data-scheme="smp" href="#">'+((__t=label_verify_with_smp)==null?"":__t)+"</a></li>\n "),__p+="\n ",otr_status==UNVERIFIED&&(__p+='\n <li><a class="auth-otr" data-scheme="fingerprint" href="#">'+((__t=label_verify_with_fingerprints)==null?"":__t)+"</a></li>\n "),__p+='\n <li><a href="http://www.cypherpunks.ca/otr/help/3.2.0/levels.php" target="_blank">'+((__t=label_whats_this)==null?"":__t)+"</a></li>\n </ul>\n </li>\n"),__p+="\n";return __p}}),define("tpl!trimmed_chat",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='<a class="close-chatbox-button icon-close"></a>\n<a class="chat-head-message-count" \n ',num_unread||(__p+=' style="display: none" '),__p+='\n href="#">'+((__t=num_unread)==null?"":__t)+'</a>\n<a href="#" class="restore-chat" title="'+((__t=tooltip)==null?"":__t)+'">\n '+((__t=title)==null?"":__t)+"\n</a>\n";return __p}}),define("converse-templates",["tpl!action","tpl!add_contact_dropdown","tpl!add_contact_form","tpl!change_status_message","tpl!chat_status","tpl!chatarea","tpl!chatbox","tpl!chatroom","tpl!chatroom_password_form","tpl!chatroom_sidebar","tpl!chatrooms_tab","tpl!chats_panel","tpl!choose_status","tpl!contacts_panel","tpl!contacts_tab","tpl!controlbox","tpl!controlbox_toggle","tpl!field","tpl!form_captcha","tpl!form_checkbox","tpl!form_input","tpl!form_select","tpl!form_textarea","tpl!form_username","tpl!group_header","tpl!info","tpl!login_panel","tpl!login_tab","tpl!message","tpl!new_day","tpl!occupant","tpl!pending_contact","tpl!pending_contacts","tpl!register_panel","tpl!register_tab","tpl!registration_form","tpl!registration_request","tpl!requesting_contact","tpl!requesting_contacts","tpl!room_description","tpl!room_item","tpl!room_panel","tpl!roster","tpl!roster_item","tpl!search_contact","tpl!select_option","tpl!status_option","tpl!toggle_chats","tpl!toolbar","tpl!trimmed_chat"],function(){return{action:arguments[0],add_contact_dropdown:arguments[1],add_contact_form:arguments[2],change_status_message:arguments[3],chat_status:arguments[4],chatarea:arguments[5],chatbox:arguments[6],chatroom:arguments[7],chatroom_password_form:arguments[8],chatroom_sidebar:arguments[9],chatrooms_tab:arguments[10],chats_panel:arguments[11],choose_status:arguments[12],contacts_panel:arguments[13],contacts_tab:arguments[14],controlbox:arguments[15],controlbox_toggle:arguments[16],field:arguments[17],form_captcha:arguments[18],form_checkbox:arguments[19],form_input:arguments[20],form_select:arguments[21],form_textarea:arguments[22],form_username:arguments[23],group_header:arguments[24],info:arguments[25],login_panel:arguments[26],login_tab:arguments[27],message:arguments[28],new_day:arguments[29],occupant:arguments[30],pending_contact:arguments[31],pending_contacts:arguments[32],register_panel:arguments[33],register_tab:arguments[34],registration_form:arguments[35],registration_request:arguments[36],requesting_contact:arguments[37],requesting_contacts:arguments[38],room_description:arguments[39],room_item:arguments[40],room_panel:arguments[41],roster:arguments[42],roster_item:arguments[43],search_contact:arguments[44],select_option:arguments[45],status_option:arguments[46],toggle_chats:arguments[47],toolbar:arguments[48],trimmed_chat:arguments[49]}}),function(e,t){function l(e){return f.PF.compile(e||"nplurals=2; plural=(n != 1);")}function c(e,t){this._key=e,this._i18n=t}var n=Array.prototype,r=Object.prototype,i=n.slice,s=r.hasOwnProperty,o=n.forEach,u={},a={forEach:function(e,t,n){var r,i,a;if(e===null)return;if(o&&e.forEach===o)e.forEach(t,n);else if(e.length===+e.length){for(r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r,e)===u)return}else for(a in e)if(s.call(e,a)&&t.call(n,e[a],a,e)===u)return},extend:function(e){return this.forEach(i.call(arguments,1),function(t){for(var n in t)e[n]=t[n]}),e}},f=function(e){this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages"},this.options=a.extend({},this.defaults,e),this.textdomain(this.options.domain);if(e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};f.context_delimiter=String.fromCharCode(4),a.extend(c.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return{}.toString.call(e)!="[object Array]"&&(e=[].slice.call(arguments)),(e&&e.length?f.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),a.extend(f.prototype,{translate:function(e){return new c(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,t,t,e)},dgettext:function(e,n){return this.dcnpgettext.call(this,e,t,n)},dcgettext:function(e,n){return this.dcnpgettext.call(this,e,t,n)},ngettext:function(e,n,r){return this.dcnpgettext.call(this,t,t,e,n,r)},dngettext:function(e,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},dcngettext:function(e,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},pgettext:function(e,n){return this.dcnpgettext.call(this,t,e,n)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,n,r,i){return this.dcnpgettext.call(this,t,e,n,r,i)},dnpgettext:function(e,t,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},dcnpgettext:function(e,t,n,r,i){r=r||n,e=e||this._textdomain,i=typeof i=="undefined"?1:i;var s;if(!this.options)return s=new f,s.dcnpgettext.call(s,undefined,undefined,n,r,i);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");if(typeof i!="number"){i=parseInt(i,10);if(isNaN(i))throw new Error("The number that was passed in is not a number.")}var o=t?t+f.context_delimiter+n:n,u=this.options.locale_data,a=u[e],c=a[""].plural_forms||(u.messages||this.defaults.locale_data.messages)[""].plural_forms,h=l(c)(i)+1,p,d;if(!a)throw new Error("No domain named `"+e+"` could be found.");return p=a[o],!p||h>=p.length?(this.options.missing_key_callback&&this.options.missing_key_callback(o),d=[null,n,r],d[l(c)(i)+1]):(d=p[h],d?d:(d=[null,n,r],d[l(c)(i)+1]))}});var h=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var i=1,s=n.length,o="",u,a=[],f,l,c,p,d,v;for(f=0;f<s;f++){o=e(n[f]);if(o==="string")a.push(n[f]);else if(o==="array"){c=n[f];if(c[2]){u=r[i];for(l=0;l<c[2].length;l++){if(!u.hasOwnProperty(c[2][l]))throw h('[sprintf] property "%s" does not exist',c[2][l]);u=u[c[2][l]]}}else c[1]?u=r[c[1]]:u=r[i++];if(/[^s]/.test(c[8])&&e(u)!="number")throw h("[sprintf] expecting number but found %s",e(u));if(typeof u=="undefined"||u===null)u="";switch(c[8]){case"b":u=u.toString(2);break;case"c":u=String.fromCharCode(u);break;case"d":u=parseInt(u,10);break;case"e":u=c[7]?u.toExponential(c[7]):u.toExponential();break;case"f":u=c[7]?parseFloat(u).toFixed(c[7]):parseFloat(u);break;case"o":u=u.toString(8);break;case"s":u=(u=String(u))&&c[7]?u.substring(0,c[7]):u;break;case"u":u=Math.abs(u);break;case"x":u=u.toString(16);break;case"X":u=u.toString(16).toUpperCase()}u=/[def]/.test(c[8])&&c[3]&&u>=0?"+"+u:u,d=c[4]?c[4]=="0"?"0":c[4].charAt(1):" ",v=c[6]-String(u).length,p=c[6]?t(d,v):"",a.push(c[5]?u+p:p+u)}}return a.join("")},n.cache={},n.parse=function(e){var t=e,n=[],r=[],i=0;while(t){if((n=/^[^\x25]+/.exec(t))!==null)r.push(n[0]);else if((n=/^\x25{2}/.exec(t))!==null)r.push("%");else{if((n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t))===null)throw"[sprintf] huh?";if(n[2]){i|=1;var s=[],o=n[2],u=[];if((u=/^([a-z_][a-z_\d]*)/i.exec(o))===null)throw"[sprintf] huh?";s.push(u[1]);while((o=o.substring(u[0].length))!=="")if((u=/^\.([a-z_][a-z_\d]*)/i.exec(o))!==null)s.push(u[1]);else{if((u=/^\[(\d+)\]/.exec(o))===null)throw"[sprintf] huh?";s.push(u[1])}n[2]=s}else i|=2;if(i===3)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),p=function(e,t){return t.unshift(e),h.apply(null,t)};f.parse_plural=function(e,t){return e=e.replace(/n/g,t),f.parse_expression(e)},f.sprintf=function(e,t){return{}.toString.call(t)=="[object Array]"?p(e,[].slice.call(t)):h.apply(this,[].slice.call(arguments))},f.prototype.sprintf=function(){return f.sprintf.apply(this,arguments)},f.PF={},f.PF.parse=function(e){var t=f.PF.extractPluralExpr(e);return f.PF.parser.parse.call(f.PF.parser,t)},f.PF.compile=function(e){function t(e){return e===!0?1:e?e:0}var n=f.PF.parse(e);return function(e){return t(f.PF.interpreter(n)(e))}},f.PF.interpreter=function(e){return function(t){var n;switch(e.type){case"GROUP":return f.PF.interpreter(e.expr)(t);case"TERNARY":if(f.PF.interpreter(e.expr)(t))return f.PF.interpreter(e.truthy)(t);return f.PF.interpreter(e.falsey)(t);case"OR":return f.PF.interpreter(e.left)(t)||f.PF.interpreter(e.right)(t);case"AND":return f.PF.interpreter(e.left)(t)&&f.PF.interpreter(e.right)(t);case"LT":return f.PF.interpreter(e.left)(t)<f.PF.interpreter(e.right)(t);case"GT":return f.PF.interpreter(e.left)(t)>f.PF.interpreter(e.right)(t);case"LTE":return f.PF.interpreter(e.left)(t)<=f.PF.interpreter(e.right)(t);case"GTE":return f.PF.interpreter(e.left)(t)>=f.PF.interpreter(e.right)(t);case"EQ":return f.PF.interpreter(e.left)(t)==f.PF.interpreter(e.right)(t);case"NEQ":return f.PF.interpreter(e.left)(t)!=f.PF.interpreter(e.right)(t);case"MOD":return f.PF.interpreter(e.left)(t)%f.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},f.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t=/nplurals\=(\d+);/,n=/plural\=(.*);/,r=e.match(t),i={},s;if(r.length>1){i.nplurals=r[1],e=e.replace(t,""),s=e.match(n);if(!(s&&s.length>1))throw new Error("`plural` expression not found: "+e);return s[1]}throw new Error("nplurals not found in plural_forms string: "+e)},f.PF.parser=function(){var e={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return{type:"GROUP",expr:o[a-1]};case 2:this.$={type:"TERNARY",expr:o[a-4],truthy:o[a-2],falsey:o[a]};break;case 3:this.$={type:"OR",left:o[a-2],right:o[a]};break;case 4:this.$={type:"AND",left:o[a-2],right:o[a]};break;case 5:this.$={type:"LT",left:o[a-2],right:o[a]};break;case 6:this.$={type:"LTE",left:o[a-2],right:o[a]};break;case 7:this.$={type:"GT",left:o[a-2],right:o[a]};break;case 8:this.$={type:"GTE",left:o[a-2],right:o[a]};break;case 9:this.$={type:"NEQ",left:o[a-2],right:o[a]};break;case 10:this.$={type:"EQ",left:o[a-2],right:o[a]};break;case 11:this.$={type:"MOD",left:o[a-2],right:o[a]};break;case 12:this.$={type:"GROUP",expr:o[a-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(t)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(t,n){throw new Error(t)},parse:function(t){function d(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function v(){var e;return e=n.lexer.lex()||1,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var m,g,y,b,w,E,S={},x,T,N,C;for(;;){y=r[r.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(m==null&&(m=v()),b=o[y]&&o[y][m]);if(typeof b=="undefined"||!b.length||!b[0]){if(!l){C=[];for(x in o[y])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");var k="";this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[m]+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(l==3){if(m==h)throw new Error(k||"Parsing halted.");f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,m=v()}for(;;){if(c.toString()in o[y])break;if(y==0)throw new Error(k||"Parsing halted.");d(1),y=r[r.length-1]}g=m,m=c,y=r[r.length-1],b=o[y]&&o[y][c],l=3}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(t,n){if(!this.yy.parseError)throw new Error(t);this.yy.parseError(t,n)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext="",this.match="");var i=this._currentRules();for(var s=0;s<i.length;s++){t=this._input.match(this.rules[i[s]]);if(t){r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i[s],this.conditionStack[this.conditionStack.length-1]);if(e)return e;return}}if(this._input==="")return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return typeof t!="undefined"?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return e.performAction=function(t,n,r,i){var s=i;switch(r){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},e.rules=[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}},e}();return e.lexer=t,e}(),typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=f),exports.Jed=f):(typeof define=="function"&&define.amd&&define("jed",[],function(){return f}),e.Jed=f)}(this),function(e,t){define("locales",["jed"],function(t){var n={domain:"converse",locale_data:{converse:{"":{domain:"converse",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}}};e.locales={en:new t(n)}})}(this),function(e,t){typeof define=="function"&&define.amd?define("utils",["jquery","converse-templates","locales"],t):e.utils=t(jQuery,templates)}(this,function(e,t,n){var r={"text-private":"password","text-single":"textline",fixed:"label","boolean":"checkbox",hidden:"hidden","jid-multi":"textarea","list-single":"dropdown","list-multi":"dropdown"};e.expr[":"].emptyVal=function(e){return e.value===""},e.fn.hasScrollBar=function(){return e.contains(document,this.get(0))?this.parent().height()<this.get(0).scrollHeight?!0:!1:!1},e.fn.addHyperlinks=function(){return this.length>0&&this.each(function(t,n){var r=e(n).html(),i=r.match(/\b(https?:\/\/|www\.|https?:\/\/www\.)[^\s<]{2,200}\b/g);if(i)for(t=0;t<i.length;t++){var s=i[t].indexOf("http://")===0||i[t].indexOf("https://")===0?"":"http://",o=encodeURI(decodeURI(i[t])).replace(/[!'()]/g,escape).replace(/\*/g,"%2A");r=r.replace(i[t],"<a target='_blank' href='"+s+o+"'>"+i[t]+"</a>")}e(n).html(r)}),this};var i={__:function(t){typeof this.i18n=="undefined"&&(this.i18n=n.en),typeof this.i18n=="string"&&(this.i18n=e.parseJSON(this.i18n)),typeof this.jed=="undefined"&&(this.jed=new Jed(this.i18n));var r=this.jed.translate(t);return arguments.length>1?r.fetch.apply(r,[].slice.call(arguments,1)):r.fetch()},___:function(e){return e},webForm2xForm:function(n){var r=e(n),i;if(r.is("[type=checkbox]"))i=r.is(":checked")&&1||0;else if(r.is("textarea")){i=[];var s=r.val().split("\n");for(var o=0;o<s.length;o++){var u=e.trim(s[o]);if(u==="")continue;i.push(u)}}else i=r.val();return e(t.field({name:r.attr("name"),value:i}))[0]},xForm2webForm:function(n,i){var s=[],o,u,a,f,l;if(n.attr("type")=="list-single"||n.attr("type")=="list-multi"){l=[],a=n.children("value");for(o=0;o<a.length;o++)l.push(e(a[o]).text());u=n.children("option");for(o=0;o<u.length;o++)f=e(u[o]).find("value").text(),s.push(t.select_option({value:f,label:e(u[o]).attr("label"),selected:l.indexOf(f)>=0,required:n.find("required").length}));return t.form_select({name:n.attr("var"),label:n.attr("label"),options:s.join(""),multiple:n.attr("type")=="list-multi",required:n.find("required").length})}if(n.attr("type")=="fixed")return e('<p class="form-help">').text(n.find("value").text());if(n.attr("type")=="jid-multi")return t.form_textarea({name:n.attr("var"),label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("type")=="boolean")return t.form_checkbox({name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",checked:n.find("value").text()==="1"&&'checked="1"'||"",required:n.find("required").length});if(n.attr("type")&&n.attr("var")==="username")return t.form_username({domain:" @"+this.domain,name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("type"))return t.form_input({name:n.attr("var"),type:r[n.attr("type")],label:n.attr("label")||"",value:n.find("value").text(),required:n.find("required").length});if(n.attr("var")==="ocr")return _.reduce(_.map(n.find("uri"),e.proxy(function(e){return t.form_captcha({label:this.$field.attr("label"),name:this.$field.attr("var"),data:this.$stanza.find('data[cid="'+e.textContent.replace(/^cid:/,"")+'"]').text(),type:e.getAttribute("type"),required:this.$field.find("required").length})},{$stanza:i,$field:n})),function(e,t){return e+t},"")}};return i}),function(e){function Y(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function Z(e,n){function i(){t.suppressDeprecationWarnings===!1&&typeof console!="undefined"&&console.warn&&console.warn("Deprecation warning: "+e)}var r=!0;return st(function(){return r&&(i(),r=!1),n.apply(this,arguments)},n)}function et(e,t){return function(n){return at(e.call(this,n),t)}}function tt(e,t){return function(n){return this.lang().ordinal(e.call(this,n),t)}}function nt(){}function rt(e){Et(e),st(this,e)}function it(e){var t=dt(e),n=t.year||0,r=t.quarter||0,i=t.month||0,s=t.week||0,o=t.day||0,u=t.hour||0,a=t.minute||0,f=t.second||0,l=t.millisecond||0;this._milliseconds=+l+f*1e3+a*6e4+u*36e5,this._days=+o+s*7,this._months=+i+r*3+n*12,this._data={},this._bubble()}function st(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return t.hasOwnProperty("toString")&&(e.toString=t.toString),t.hasOwnProperty("valueOf")&&(e.valueOf=t.valueOf),e}function ot(e){var t={},n;for(n in e)e.hasOwnProperty(n)&&v.hasOwnProperty(n)&&(t[n]=e[n]);return t}function ut(e){return e<0?Math.ceil(e):Math.floor(e)}function at(e,t,n){var r=""+Math.abs(e),i=e>=0;while(r.length<t)r="0"+r;return(i?n?"+":"":"-")+r}function ft(e,n,r,i){var s=n._milliseconds,o=n._days,u=n._months;i=i==null?!0:i,s&&e._d.setTime(+e._d+s*r),o&&en(e,"Date",Zt(e,"Date")+o*r),u&&Yt(e,Zt(e,"Month")+u*r),i&&t.updateOffset(e,o||u)}function lt(e){return Object.prototype.toString.call(e)==="[object Array]"}function ct(e){return Object.prototype.toString.call(e)==="[object Date]"||e instanceof Date}function ht(e,t,n){var r=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),s=0,o;for(o=0;o<r;o++)(n&&e[o]!==t[o]||!n&&mt(e[o])!==mt(t[o]))&&s++;return s+i}function pt(e){if(e){var t=e.toLowerCase().replace(/(.)s$/,"$1");e=X[e]||V[t]||t}return e}function dt(e){var t={},n,r;for(r in e)e.hasOwnProperty(r)&&(n=pt(r),n&&(t[n]=e[r]));return t}function vt(n){var r,i;if(n.indexOf("week")===0)r=7,i="day";else{if(n.indexOf("month")!==0)return;r=12,i="month"}t[n]=function(s,o){var u,a,f=t.fn._lang[n],l=[];typeof s=="number"&&(o=s,s=e),a=function(e){var n=t().utc().set(i,e);return f.call(t.fn._lang,n,s||"")};if(o!=null)return a(o);for(u=0;u<r;u++)l.push(a(u));return l}}function mt(e){var t=+e,n=0;return t!==0&&isFinite(t)&&(t>=0?n=Math.floor(t):n=Math.ceil(t)),n}function gt(e,t){return(new Date(Date.UTC(e,t+1,0))).getUTCDate()}function yt(e,n,r){return Kt(t([e,11,31+n-r]),n,r).week}function bt(e){return wt(e)?366:365}function wt(e){return e%4===0&&e%100!==0||e%400===0}function Et(e){var t;e._a&&e._pf.overflow===-2&&(t=e._a[a]<0||e._a[a]>11?a:e._a[f]<1||e._a[f]>gt(e._a[u],e._a[a])?f:e._a[l]<0||e._a[l]>23?l:e._a[c]<0||e._a[c]>59?c:e._a[h]<0||e._a[h]>59?h:e._a[p]<0||e._a[p]>999?p:-1,e._pf._overflowDayOfYear&&(t<u||t>f)&&(t=f),e._pf.overflow=t)}function St(e){return e._isValid==null&&(e._isValid=!isNaN(e._d.getTime())&&e._pf.overflow<0&&!e._pf.empty&&!e._pf.invalidMonth&&!e._pf.nullInput&&!e._pf.invalidFormat&&!e._pf.userInvalidated,e._strict&&(e._isValid=e._isValid&&e._pf.charsLeftOver===0&&e._pf.unusedTokens.length===0)),e._isValid}function xt(e){return e?e.toLowerCase().replace("_","-"):e}function Tt(e,n){return n._isUTC?t(e).zone(n._offset||0):t(e).local()}function Nt(e,t){return t.abbr=e,d[e]||(d[e]=new nt),d[e].set(t),d[e]}function Ct(e){delete d[e]}function kt(e){var n=0,r,i,s,o,u=function(e){if(!d[e]&&m)try{require("./lang/"+e)}catch(t){}return d[e]};if(!e)return t.fn._lang;if(!lt(e)){i=u(e);if(i)return i;e=[e]}while(n<e.length){o=xt(e[n]).split("-"),r=o.length,s=xt(e[n+1]),s=s?s.split("-"):null;while(r>0){i=u(o.slice(0,r).join("-"));if(i)return i;if(s&&s.length>=r&&ht(o,s,!0)>=r-1)break;r--}n++}return t.fn._lang}function Lt(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function At(e){var t=e.match(w),n,r;for(n=0,r=t.length;n<r;n++)Q[t[n]]?t[n]=Q[t[n]]:t[n]=Lt(t[n]);return function(i){var s="";for(n=0;n<r;n++)s+=t[n]instanceof Function?t[n].call(i,e):t[n];return s}}function Ot(e,t){return e.isValid()?(t=Mt(t,e.lang()),$[t]||($[t]=At(t)),$[t](e)):e.lang().invalidDate()}function Mt(e,t){function r(e){return t.longDateFormat(e)||e}var n=5;E.lastIndex=0;while(n>=0&&E.test(e))e=e.replace(E,r),E.lastIndex=0,n-=1;return e}function _t(e,t){var n,r=t._strict;switch(e){case"Q":return _;case"DDDD":return P;case"YYYY":case"GGGG":case"gggg":return r?H:T;case"Y":case"G":case"g":return j;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return r?B:N;case"S":if(r)return _;case"SS":if(r)return D;case"SSS":if(r)return P;case"DDD":return x;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return k;case"a":case"A":return kt(t._l)._meridiemParse;case"X":return O;case"Z":case"ZZ":return L;case"T":return A;case"SSSS":return C;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return r?D:S;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return S;case"Do":return M;default:return n=new RegExp(qt(It(e.replace("\\","")),"i")),n}}function Dt(e){e=e||"";var t=e.match(L)||[],n=t[t.length-1]||[],r=(n+"").match(U)||["-",0,0],i=+(r[1]*60)+mt(r[2]);return r[0]==="+"?-i:i}function Pt(e,n,r){var i,s=r._a;switch(e){case"Q":n!=null&&(s[a]=(mt(n)-1)*3);break;case"M":case"MM":n!=null&&(s[a]=mt(n)-1);break;case"MMM":case"MMMM":i=kt(r._l).monthsParse(n),i!=null?s[a]=i:r._pf.invalidMonth=n;break;case"D":case"DD":n!=null&&(s[f]=mt(n));break;case"Do":n!=null&&(s[f]=mt(parseInt(n,10)));break;case"DDD":case"DDDD":n!=null&&(r._dayOfYear=mt(n));break;case"YY":s[u]=t.parseTwoDigitYear(n);break;case"YYYY":case"YYYYY":case"YYYYYY":s[u]=mt(n);break;case"a":case"A":r._isPm=kt(r._l).isPM(n);break;case"H":case"HH":case"h":case"hh":s[l]=mt(n);break;case"m":case"mm":s[c]=mt(n);break;case"s":case"ss":s[h]=mt(n);break;case"S":case"SS":case"SSS":case"SSSS":s[p]=mt(("0."+n)*1e3);break;case"X":r._d=new Date(parseFloat(n)*1e3);break;case"Z":case"ZZ":r._useUTC=!0,r._tzm=Dt(n);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":e=e.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":e=e.substr(0,2),n&&(r._w=r._w||{},r._w[e]=n)}}function Ht(e){var n,r,i=[],s,o,h,p,d,v,m,g;if(e._d)return;s=jt(e),e._w&&e._a[f]==null&&e._a[a]==null&&(h=function(n){var r=parseInt(n,10);return n?n.length<3?r>68?1900+r:2e3+r:r:e._a[u]==null?t().weekYear():e._a[u]},p=e._w,p.GG!=null||p.W!=null||p.E!=null?d=Qt(h(p.GG),p.W||1,p.E,4,1):(v=kt(e._l),m=p.d!=null?Vt(p.d,v):p.e!=null?parseInt(p.e,10)+v._week.dow:0,g=parseInt(p.w,10)||1,p.d!=null&&m<v._week.dow&&g++,d=Qt(h(p.gg),g,m,v._week.doy,v._week.dow)),e._a[u]=d.year,e._dayOfYear=d.dayOfYear),e._dayOfYear&&(o=e._a[u]==null?s[u]:e._a[u],e._dayOfYear>bt(o)&&(e._pf._overflowDayOfYear=!0),r=Xt(o,0,e._dayOfYear),e._a[a]=r.getUTCMonth(),e._a[f]=r.getUTCDate());for(n=0;n<3&&e._a[n]==null;++n)e._a[n]=i[n]=s[n];for(;n<7;n++)e._a[n]=i[n]=e._a[n]==null?n===2?1:0:e._a[n];i[l]+=mt((e._tzm||0)/60),i[c]+=mt((e._tzm||0)%60),e._d=(e._useUTC?Xt:Wt).apply(null,i)}function Bt(e){var t;if(e._d)return;t=dt(e._i),e._a=[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond],Ht(e)}function jt(e){var t=new Date;return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Ft(e){e._a=[],e._pf.empty=!0;var t=kt(e._l),n=""+e._i,r,i,s,o,u,a=n.length,f=0;s=Mt(e._f,t).match(w)||[];for(r=0;r<s.length;r++)o=s[r],i=(n.match(_t(o,e))||[])[0],i&&(u=n.substr(0,n.indexOf(i)),u.length>0&&e._pf.unusedInput.push(u),n=n.slice(n.indexOf(i)+i.length),f+=i.length),Q[o]?(i?e._pf.empty=!1:e._pf.unusedTokens.push(o),Pt(o,i,e)):e._strict&&!i&&e._pf.unusedTokens.push(o);e._pf.charsLeftOver=a-f,n.length>0&&e._pf.unusedInput.push(n),e._isPm&&e._a[l]<12&&(e._a[l]+=12),e._isPm===!1&&e._a[l]===12&&(e._a[l]=0),Ht(e),Et(e)}function It(e){return e.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,i){return t||n||r||i})}function qt(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Rt(e){var t,n,r,i,s;if(e._f.length===0){e._pf.invalidFormat=!0,e._d=new Date(NaN);return}for(i=0;i<e._f.length;i++){s=0,t=st({},e),t._pf=Y(),t._f=e._f[i],Ft(t);if(!St(t))continue;s+=t._pf.charsLeftOver,s+=t._pf.unusedTokens.length*10,t._pf.score=s;if(r==null||s<r)r=s,n=t}st(e,n||t)}function Ut(e){var n,r,i=e._i,s=F.exec(i);if(s){e._pf.iso=!0;for(n=0,r=q.length;n<r;n++)if(q[n][1].exec(i)){e._f=q[n][0]+(s[6]||" ");break}for(n=0,r=R.length;n<r;n++)if(R[n][1].exec(i)){e._f+=R[n][0];break}i.match(L)&&(e._f+="Z"),Ft(e)}else t.createFromInputFallback(e)}function zt(n){var r=n._i,i=g.exec(r);r===e?n._d=new Date:i?n._d=new Date(+i[1]):typeof r=="string"?Ut(n):lt(r)?(n._a=r.slice(0),Ht(n)):ct(r)?n._d=new Date(+r):typeof r=="object"?Bt(n):typeof r=="number"?n._d=new Date(r):t.createFromInputFallback(n)}function Wt(e,t,n,r,i,s,o){var u=new Date(e,t,n,r,i,s,o);return e<1970&&u.setFullYear(e),u}function Xt(e){var t=new Date(Date.UTC.apply(null,arguments));return e<1970&&t.setUTCFullYear(e),t}function Vt(e,t){if(typeof e=="string")if(!isNaN(e))e=parseInt(e,10);else{e=t.weekdaysParse(e);if(typeof e!="number")return null}return e}function $t(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function Jt(e,t,n){var r=s(Math.abs(e)/1e3),i=s(r/60),o=s(i/60),u=s(o/24),a=s(u/365),f=r<45&&["s",r]||i===1&&["m"]||i<45&&["mm",i]||o===1&&["h"]||o<22&&["hh",o]||u===1&&["d"]||u<=25&&["dd",u]||u<=45&&["M"]||u<345&&["MM",s(u/30)]||a===1&&["y"]||["yy",a];return f[2]=t,f[3]=e>0,f[4]=n,$t.apply({},f)}function Kt(e,n,r){var i=r-n,s=r-e.day(),o;return s>i&&(s-=7),s<i-7&&(s+=7),o=t(e).add("d",s),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function Qt(e,t,n,r,i){var s=Xt(e,0,1).getUTCDay(),o,u;return n=n!=null?n:i,o=i-s+(s>r?7:0)-(s<i?7:0),u=7*(t-1)+(n-i)+o+1,{year:u>0?e:e-1,dayOfYear:u>0?u:bt(e-1)+u}}function Gt(n){var r=n._i,i=n._f;return r===null||i===e&&r===""?t.invalid({nullInput:!0}):(typeof r=="string"&&(n._i=r=kt().preparse(r)),t.isMoment(r)?(n=ot(r),n._d=new Date(+r._d)):i?lt(i)?Rt(n):Ft(n):zt(n),new rt(n))}function Yt(e,t){var n;if(typeof t=="string"){t=e.lang().monthsParse(t);if(typeof t!="number")return e}return n=Math.min(e.date(),gt(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Zt(e,t){return e._d["get"+(e._isUTC?"UTC":"")+t]()}function en(e,t,n){return t==="Month"?Yt(e,n):e._d["set"+(e._isUTC?"UTC":"")+t](n)}function tn(e,n){return function(r){return r!=null?(en(this,e,r),t.updateOffset(this,n),this):Zt(this,e)}}function nn(e){t.duration.fn[e]=function(){return this._data[e]}}function rn(e,n){t.duration.fn["as"+e]=function(){return+this/n}}function sn(e){if(typeof ender!="undefined")return;i=r.moment,e?r.moment=Z("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",t):r.moment=t}var t,n="2.6.0",r=typeof global!="undefined"?global:this,i,s=Math.round,o,u=0,a=1,f=2,l=3,c=4,h=5,p=6,d={},v={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},m=typeof module!="undefined"&&module.exports,g=/^\/?Date\((\-?\d+)/i,y=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,b=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,w=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,E=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,S=/\d\d?/,x=/\d{1,3}/,T=/\d{1,4}/,N=/[+\-]?\d{1,6}/,C=/\d+/,k=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,L=/Z|[\+\-]\d\d:?\d\d/gi,A=/T/i,O=/[\+\-]?\d+(\.\d{1,3})?/,M=/\d{1,2}/,_=/\d/,D=/\d\d/,P=/\d{3}/,H=/\d{4}/,B=/[+-]?\d{6}/,j=/[+-]?\d+/,F=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,I="YYYY-MM-DDTHH:mm:ssZ",q=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],R=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],U=/([\+\-]|\d\d)/gi,z="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),W={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},X={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},V={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},$={},J="DDD w W M D d".split(" "),K="M D H h m s w W".split(" "),Q={M:function(){return this.month()+1},MMM:function(e){return this.lang().monthsShort(this,e)},MMMM:function(e){return this.lang().months(this,e)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(e){return this.lang().weekdaysMin(this,e)},ddd:function(e){return this.lang().weekdaysShort(this,e)},dddd:function(e){return this.lang().weekdays(this,e)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return at(this.year()%100,2)},YYYY:function(){return at(this.year(),4)},YYYYY:function(){return at(this.year(),5)},YYYYYY:function(){var e=this.year(),t=e>=0?"+":"-";return t+at(Math.abs(e),6)},gg:function(){return at(this.weekYear()%100,2)},gggg:function(){return at(this.weekYear(),4)},ggggg:function(){return at(this.weekYear(),5)},GG:function(){return at(this.isoWeekYear()%100,2)},GGGG:function(){return at(this.isoWeekYear(),4)},GGGGG:function(){return at(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return mt(this.milliseconds()/100)},SS:function(){return at(mt(this.milliseconds()/10),2)},SSS:function(){return at(this.milliseconds(),3)},SSSS:function(){return at(this.milliseconds(),3)},Z:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+at(mt(e/60),2)+":"+at(mt(e)%60,2)},ZZ:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+at(mt(e/60),2)+at(mt(e)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},G=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];while(J.length)o=J.pop(),Q[o+"o"]=tt(Q[o],o);while(K.length)o=K.pop(),Q[o+o]=et(Q[o],2);Q.DDDD=et(Q.DDD,3),st(nt.prototype,{set:function(e){var t,n;for(n in e)t=e[n],typeof t=="function"?this[n]=t:this["_"+n]=t},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(e){return this._months[e.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(e){return this._monthsShort[e.month()]},monthsParse:function(e){var n,r,i;this._monthsParse||(this._monthsParse=[]);for(n=0;n<12;n++){this._monthsParse[n]||(r=t.utc([2e3,n]),i="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[n]=new RegExp(i.replace(".",""),"i"));if(this._monthsParse[n].test(e))return n}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(e){return this._weekdays[e.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(e){return this._weekdaysShort[e.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(e){return this._weekdaysMin[e.day()]},weekdaysParse:function(e){var n,r,i;this._weekdaysParse||(this._weekdaysParse=[]);for(n=0;n<7;n++){this._weekdaysParse[n]||(r=t([2e3,1]).day(n),i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[n]=new RegExp(i.replace(".",""),"i"));if(this._weekdaysParse[n].test(e))return n}},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(e){var t=this._longDateFormat[e];return!t&&this._longDateFormat[e.toUpperCase()]&&(t=this._longDateFormat[e.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e]=t),t},isPM:function(e){return(e+"").toLowerCase().charAt(0)==="p"},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(e,t){var n=this._calendar[e];return typeof n=="function"?n.apply(t):n},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(e,t,n,r){var i=this._relativeTime[n];return typeof i=="function"?i(e,t,n,r):i.replace(/%d/i,e)},pastFuture:function(e,t){var n=this._relativeTime[e>0?"future":"past"];return typeof n=="function"?n(t):n.replace(/%s/i,t)},ordinal:function(e){return this._ordinal.replace("%d",e)},_ordinal:"%d",preparse:function(e){return e},postformat:function(e){return e},week:function(e){return Kt(e,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),t=function(t,n,r,i){var s;return typeof r=="boolean"&&(i=r,r=e),s={},s._isAMomentObject=!0,s._i=t,s._f=n,s._l=r,s._strict=i,s._isUTC=!1,s._pf=Y(),Gt(s)},t.suppressDeprecationWarnings=!1,t.createFromInputFallback=Z("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(e){e._d=new Date(e._i)}),t.utc=function(t,n,r,i){var s;return typeof r=="boolean"&&(i=r,r=e),s={},s._isAMomentObject=!0,s._useUTC=!0,s._isUTC=!0,s._l=r,s._i=t,s._f=n,s._strict=i,s._pf=Y(),Gt(s).utc()},t.unix=function(e){return t(e*1e3)},t.duration=function(e,n){var r=e,i=null,s,o,u;return t.isDuration(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:typeof e=="number"?(r={},n?r[n]=e:r.milliseconds=e):(i=y.exec(e))?(s=i[1]==="-"?-1:1,r={y:0,d:mt(i[f])*s,h:mt(i[l])*s,m:mt(i[c])*s,s:mt(i[h])*s,ms:mt(i[p])*s}):!(i=b.exec(e))||(s=i[1]==="-"?-1:1,u=function(e){var t=e&&parseFloat(e.replace(",","."));return(isNaN(t)?0:t)*s},r={y:u(i[2]),M:u(i[3]),d:u(i[4]),h:u(i[5]),m:u(i[6]),s:u(i[7]),w:u(i[8])}),o=new it(r),t.isDuration(e)&&e.hasOwnProperty("_lang")&&(o._lang=e._lang),o},t.version=n,t.defaultFormat=I,t.momentProperties=v,t.updateOffset=function(){},t.lang=function(e,n){var r;return e?(n?Nt(xt(e),n):n===null?(Ct(e),e="en"):d[e]||kt(e),r=t.duration.fn._lang=t.fn._lang=kt(e),r._abbr):t.fn._lang._abbr},t.langData=function(e){return e&&e._lang&&e._lang._abbr&&(e=e._lang._abbr),kt(e)},t.isMoment=function(e){return e instanceof rt||e!=null&&e.hasOwnProperty("_isAMomentObject")},t.isDuration=function(e){return e instanceof it};for(o=G.length-1;o>=0;--o)vt(G[o]);t.normalizeUnits=function(e){return pt(e)},t.invalid=function(e){var n=t.utc(NaN);return e!=null?st(n._pf,e):n._pf.userInvalidated=!0,n},t.parseZone=function(){return t.apply(null,arguments).parseZone()},t.parseTwoDigitYear=function(e){return mt(e)+(mt(e)>68?1900:2e3)},st(t.fn=rt.prototype,{clone:function(){return t(this)},valueOf:function(){return+this._d+(this._offset||0)*6e4},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var e=t(this).utc();return 0<e.year()&&e.year()<=9999?Ot(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):Ot(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var e=this;return[e.year(),e.month(),e.date(),e.hours(),e.minutes(),e.seconds(),e.milliseconds()]},isValid:function(){return St(this)},isDSTShifted:function(){return this._a?this.isValid()&&ht(this._a,(this._isUTC?t.utc(this._a):t(this._a)).toArray())>0:!1},parsingFlags:function(){return st({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(e){var n=Ot(this,e||t.defaultFormat);return this.lang().postformat(n)},add:function(e,n){var r;return typeof e=="string"?r=t.duration(+n,e):r=t.duration(e,n),ft(this,r,1),this},subtract:function(e,n){var r;return typeof e=="string"?r=t.duration(+n,e):r=t.duration(e,n),ft(this,r,-1),this},diff:function(e,n,r){var i=Tt(e,this),s=(this.zone()-i.zone())*6e4,o,u;return n=pt(n),n==="year"||n==="month"?(o=(this.daysInMonth()+i.daysInMonth())*432e5,u=(this.year()-i.year())*12+(this.month()-i.month()),u+=(this-t(this).startOf("month")-(i-t(i).startOf("month")))/o,u-=(this.zone()-t(this).startOf("month").zone()-(i.zone()-t(i).startOf("month").zone()))*6e4/o,n==="year"&&(u/=12)):(o=this-i,u=n==="second"?o/1e3:n==="minute"?o/6e4:n==="hour"?o/36e5:n==="day"?(o-s)/864e5:n==="week"?(o-s)/6048e5:o),r?u:ut(u)},from:function(e,n){return t.duration(this.diff(e)).lang(this.lang()._abbr).humanize(!n)},fromNow:function(e){return this.from(t(),e)},calendar:function(){var e=Tt(t(),this).startOf("day"),n=this.diff(e,"days",!0),r=n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse";return this.format(this.lang().calendar(r,this))},isLeapYear:function(){return wt(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=Vt(e,this.lang()),this.add({d:e-t})):t},month:tn("Month",!0),startOf:function(e){e=pt(e);switch(e){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return e==="week"?this.weekday(0):e==="isoWeek"&&this.isoWeekday(1),e==="quarter"&&this.month(Math.floor(this.month()/3)*3),this},endOf:function(e){return e=pt(e),this.startOf(e).add(e==="isoWeek"?"week":e,1).subtract("ms",1)},isAfter:function(e,n){return n=typeof n!="undefined"?n:"millisecond",+this.clone().startOf(n)>+t(e).startOf(n)},isBefore:function(e,n){return n=typeof n!="undefined"?n:"millisecond",+this.clone().startOf(n)<+t(e).startOf(n)},isSame:function(e,t){return t=t||"ms",+this.clone().startOf(t)===+Tt(e,this).startOf(t)},min:function(e){return e=t.apply(null,arguments),e<this?this:e},max:function(e){return e=t.apply(null,arguments),e>this?this:e},zone:function(e,n){var r=this._offset||0;return e==null?this._isUTC?r:this._d.getTimezoneOffset():(typeof e=="string"&&(e=Dt(e)),Math.abs(e)<16&&(e*=60),this._offset=e,this._isUTC=!0,r!==e&&(!n||this._changeInProgress?ft(this,t.duration(r-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):typeof this._i=="string"&&this.zone(this._i),this},hasAlignedHourOffset:function(e){return e?e=t(e).zone():e=0,(this.zone()-e)%60===0},daysInMonth:function(){return gt(this.year(),this.month())},dayOfYear:function(e){var n=s((t(this).startOf("day")-t(this).startOf("year"))/864e5)+1;return e==null?n:this.add("d",e-n)},quarter:function(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)},weekYear:function(e){var t=Kt(this,this.lang()._week.dow,this.lang()._week.doy).year;return e==null?t:this.add("y",e-t)},isoWeekYear:function(e){var t=Kt(this,1,4).year;return e==null?t:this.add("y",e-t)},week:function(e){var t=this.lang().week(this);return e==null?t:this.add("d",(e-t)*7)},isoWeek:function(e){var t=Kt(this,1,4).week;return e==null?t:this.add("d",(e-t)*7)},weekday:function(e){var t=(this.day()+7-this.lang()._week.dow)%7;return e==null?t:this.add("d",e-t)},isoWeekday:function(e){return e==null?this.day()||7:this.day(this.day()%7?e:e-7)},isoWeeksInYear:function(){return yt(this.year(),1,4)},weeksInYear:function(){var e=this._lang._week;return yt(this.year(),e.dow,e.doy)},get:function(e){return e=pt(e),this[e]()},set:function(e,t){return e=pt(e),typeof this[e]=="function"&&this[e](t),this},lang:function(t){return t===e?this._lang:(this._lang=kt(t),this)}}),t.fn.millisecond=t.fn.milliseconds=tn("Milliseconds",!1),t.fn.second=t.fn.seconds=tn("Seconds",!1),t.fn.minute=t.fn.minutes=tn("Minutes",!1),t.fn.hour=t.fn.hours=tn("Hours",!0),t.fn.date=tn("Date",!0),t.fn.dates=Z("dates accessor is deprecated. Use date instead.",tn("Date",!0)),t.fn.year=tn("FullYear",!0),t.fn.years=Z("years accessor is deprecated. Use year instead.",tn("FullYear",!0)),t.fn.days=t.fn.day,t.fn.months=t.fn.month,t.fn.weeks=t.fn.week,t.fn.isoWeeks=t.fn.isoWeek,t.fn.quarters=t.fn.quarter,t.fn.toJSON=t.fn.toISOString,st(t.duration.fn=it.prototype,{_bubble:function(){var e=this._milliseconds,t=this._days,n=this._months,r=this._data,i,s,o,u;r.milliseconds=e%1e3,i=ut(e/1e3),r.seconds=i%60,s=ut(i/60),r.minutes=s%60,o=ut(s/60),r.hours=o%24,t+=ut(o/24),r.days=t%30,n+=ut(t/30),r.months=n%12,u=ut(n/12),r.years=u},weeks:function(){return ut(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+mt(this._months/12)*31536e6},humanize:function(e){var t=+this,n=Jt(t,!e,this.lang());return e&&(n=this.lang().pastFuture(t,n)),this.lang().postformat(n)},add:function(e,n){var r=t.duration(e,n);return this._milliseconds+=r._milliseconds,this._days+=r._days,this._months+=r._months,this._bubble(),this},subtract:function(e,n){var r=t.duration(e,n);return this._milliseconds-=r._milliseconds,this._days-=r._days,this._months-=r._months,this._bubble(),this},get:function(e){return e=pt(e),this[e.toLowerCase()+"s"]()},as:function(e){return e=pt(e),this["as"+e.charAt(0).toUpperCase()+e.slice(1)+"s"]()},lang:t.fn.lang,toIsoString:function(){var e=Math.abs(this.years()),t=Math.abs(this.months()),n=Math.abs(this.days()),r=Math.abs(this.hours()),i=Math.abs(this.minutes()),s=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(e?e+"Y":"")+(t?t+"M":"")+(n?n+"D":"")+(r||i||s?"T":"")+(r?r+"H":"")+(i?i+"M":"")+(s?s+"S":""):"P0D"}});for(o in W)W.hasOwnProperty(o)&&(rn(o,W[o]),nn(o.toLowerCase()));rn("Weeks",6048e5),t.duration.fn.asMonths=function(){return(+this-this.years()*31536e6)/2592e6+this.years()*12},t.lang("en",{ordinal:function(e){var t=e%10,n=mt(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}}),m?module.exports=t:typeof define=="function"&&define.amd?(define("moment",["require","exports","module"],function(e,n,s){return s.config&&s.config()&&s.config().noGlobal===!0&&(r.moment=i),t}),sn(!0)):sn()}.call(this),function(e,t){typeof define=="function"&&define.amd?define("strophe-sha1",[],function(){return t()}):e.SHA1=t()}(this,function(){function e(e,r){e[r>>5]|=128<<24-r%32,e[(r+64>>9<<4)+15]=r;var o=new Array(80),u=1732584193,a=-271733879,f=-1732584194,l=271733878,c=-1009589776,h,p,d,v,m,g,y,b;for(h=0;h<e.length;h+=16){v=u,m=a,g=f,y=l,b=c;for(p=0;p<80;p++)p<16?o[p]=e[h+p]:o[p]=s(o[p-3]^o[p-8]^o[p-14]^o[p-16],1),d=i(i(s(u,5),t(p,a,f,l)),i(i(c,o[p]),n(p))),c=l,l=f,f=s(a,30),a=u,u=d;u=i(u,v),a=i(a,m),f=i(f,g),l=i(l,y),c=i(c,b)}return[u,a,f,l,c]}function t(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function n(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}function r(t,n){var r=o(t);r.length>16&&(r=e(r,t.length*8));var i=new Array(16),s=new Array(16);for(var u=0;u<16;u++)i[u]=r[u]^909522486,s[u]=r[u]^1549556828;var a=e(i.concat(o(n)),512+n.length*8);return e(s.concat(a),672)}function i(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}function s(e,t){return e<<t|e>>>32-t}function o(e){var t=[],n=255;for(var r=0;r<e.length*8;r+=8)t[r>>5]|=(e.charCodeAt(r/8)&n)<<24-r%32;return t}function u(e){var t="",n=255;for(var r=0;r<e.length*32;r+=8)t+=String.fromCharCode(e[r>>5]>>>24-r%32&n);return t}function a(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="",r,i;for(var s=0;s<e.length*4;s+=3){r=(e[s>>2]>>8*(3-s%4)&255)<<16|(e[s+1>>2]>>8*(3-(s+1)%4)&255)<<8|e[s+2>>2]>>8*(3-(s+2)%4)&255;for(i=0;i<4;i++)s*8+i*6>e.length*32?n+="=":n+=t.charAt(r>>6*(3-i)&63)}return n}return{b64_hmac_sha1:function(e,t){return a(r(e,t))},b64_sha1:function(t){return a(e(o(t),t.length*8))},binb2str:u,core_hmac_sha1:r,str_hmac_sha1:function(e,t){return u(r(e,t))},str_sha1:function(t){return u(e(o(t),t.length*8))}}}),function(e,t){typeof define=="function"&&define.amd?define("strophe-base64",[],function(){return t()}):e.Base64=t()}(this,function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t={encode:function(t){var n="",r,i,s,o,u,a,f,l=0;do r=t.charCodeAt(l++),i=t.charCodeAt(l++),s=t.charCodeAt(l++),o=r>>2,u=(r&3)<<4|i>>4,a=(i&15)<<2|s>>6,f=s&63,isNaN(i)?(u=(r&3)<<4,a=f=64):isNaN(s)&&(f=64),n=n+e.charAt(o)+e.charAt(u)+e.charAt(a)+e.charAt(f);while(l<t.length);return n},decode:function(t){var n="",r,i,s,o,u,a,f,l=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do o=e.indexOf(t.charAt(l++)),u=e.indexOf(t.charAt(l++)),a=e.indexOf(t.charAt(l++)),f=e.indexOf(t.charAt(l++)),r=o<<2|u>>4,i=(u&15)<<4|a>>2,s=(a&3)<<6|f,n+=String.fromCharCode(r),a!=64&&(n+=String.fromCharCode(i)),f!=64&&(n+=String.fromCharCode(s));while(l<t.length);return n}};return t}),function(e,t){typeof define=="function"&&define.amd?define("strophe-md5",[],function(){return t()}):e.MD5=t()}(this,function(e){var t=function(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535},n=function(e,t){return e<<t|e>>>32-t},r=function(e){var t=[];for(var n=0;n<e.length*8;n+=8)t[n>>5]|=(e.charCodeAt(n/8)&255)<<n%32;return t},i=function(e){var t="";for(var n=0;n<e.length*32;n+=8)t+=String.fromCharCode(e[n>>5]>>>n%32&255);return t},s=function(e){var t="0123456789abcdef",n="";for(var r=0;r<e.length*4;r++)n+=t.charAt(e[r>>2]>>r%4*8+4&15)+t.charAt(e[r>>2]>>r%4*8&15);return n},o=function(e,r,i,s,o,u){return t(n(t(t(r,e),t(s,u)),o),i)},u=function(e,t,n,r,i,s,u){return o(t&n|~t&r,e,t,i,s,u)},a=function(e,t,n,r,i,s,u){return o(t&r|n&~r,e,t,i,s,u)},f=function(e,t,n,r,i,s,u){return o(t^n^r,e,t,i,s,u)},l=function(e,t,n,r,i,s,u){return o(n^(t|~r),e,t,i,s,u)},c=function(e,n){e[n>>5]|=128<<n%32,e[(n+64>>>9<<4)+14]=n;var r=1732584193,i=-271733879,s=-1732584194,o=271733878,c,h,p,d;for(var v=0;v<e.length;v+=16)c=r,h=i,p=s,d=o,r=u(r,i,s,o,e[v+0],7,-680876936),o=u(o,r,i,s,e[v+1],12,-389564586),s=u(s,o,r,i,e[v+2],17,606105819),i=u(i,s,o,r,e[v+3],22,-1044525330),r=u(r,i,s,o,e[v+4],7,-176418897),o=u(o,r,i,s,e[v+5],12,1200080426),s=u(s,o,r,i,e[v+6],17,-1473231341),i=u(i,s,o,r,e[v+7],22,-45705983),r=u(r,i,s,o,e[v+8],7,1770035416),o=u(o,r,i,s,e[v+9],12,-1958414417),s=u(s,o,r,i,e[v+10],17,-42063),i=u(i,s,o,r,e[v+11],22,-1990404162),r=u(r,i,s,o,e[v+12],7,1804603682),o=u(o,r,i,s,e[v+13],12,-40341101),s=u(s,o,r,i,e[v+14],17,-1502002290),i=u(i,s,o,r,e[v+15],22,1236535329),r=a(r,i,s,o,e[v+1],5,-165796510),o=a(o,r,i,s,e[v+6],9,-1069501632),s=a(s,o,r,i,e[v+11],14,643717713),i=a(i,s,o,r,e[v+0],20,-373897302),r=a(r,i,s,o,e[v+5],5,-701558691),o=a(o,r,i,s,e[v+10],9,38016083),s=a(s,o,r,i,e[v+15],14,-660478335),i=a(i,s,o,r,e[v+4],20,-405537848),r=a(r,i,s,o,e[v+9],5,568446438),o=a(o,r,i,s,e[v+14],9,-1019803690),s=a(s,o,r,i,e[v+3],14,-187363961),i=a(i,s,o,r,e[v+8],20,1163531501),r=a(r,i,s,o,e[v+13],5,-1444681467),o=a(o,r,i,s,e[v+2],9,-51403784),s=a(s,o,r,i,e[v+7],14,1735328473),i=a(i,s,o,r,e[v+12],20,-1926607734),r=f(r,i,s,o,e[v+5],4,-378558),o=f(o,r,i,s,e[v+8],11,-2022574463),s=f(s,o,r,i,e[v+11],16,1839030562),i=f(i,s,o,r,e[v+14],23,-35309556),r=f(r,i,s,o,e[v+1],4,-1530992060),o=f(o,r,i,s,e[v+4],11,1272893353),s=f(s,o,r,i,e[v+7],16,-155497632),i=f(i,s,o,r,e[v+10],23,-1094730640),r=f(r,i,s,o,e[v+13],4,681279174),o=f(o,r,i,s,e[v+0],11,-358537222),s=f(s,o,r,i,e[v+3],16,-722521979),i=f(i,s,o,r,e[v+6],23,76029189),r=f(r,i,s,o,e[v+9],4,-640364487),o=f(o,r,i,s,e[v+12],11,-421815835),s=f(s,o,r,i,e[v+15],16,530742520),i=f(i,s,o,r,e[v+2],23,-995338651),r=l(r,i,s,o,e[v+0],6,-198630844),o=l(o,r,i,s,e[v+7],10,1126891415),s=l(s,o,r,i,e[v+14],15,-1416354905),i=l(i,s,o,r,e[v+5],21,-57434055),r=l(r,i,s,o,e[v+12],6,1700485571),o=l(o,r,i,s,e[v+3],10,-1894986606),s=l(s,o,r,i,e[v+10],15,-1051523),i=l(i,s,o,r,e[v+1],21,-2054922799),r=l(r,i,s,o,e[v+8],6,1873313359),o=l(o,r,i,s,e[v+15],10,-30611744),s=l(s,o,r,i,e[v+6],15,-1560198380),i=l(i,s,o,r,e[v+13],21,1309151649),r=l(r,i,s,o,e[v+4],6,-145523070),o=l(o,r,i,s,e[v+11],10,-1120210379),s=l(s,o,r,i,e[v+2],15,718787259),i=l(i,s,o,r,e[v+9],21,-343485551),r=t(r,c),i=t(i,h),s=t(s,p),o=t(o,d);return[r,i,s,o]},h={hexdigest:function(e){return s(c(r(e),e.length*8))},hash:function(e){return i(c(r(e),e.length*8))}};return h}),Function.prototype.bind||(Function.prototype.bind=function(e){var t=this,n=Array.prototype.slice,r=Array.prototype.concat,i=n.call(arguments,1);return function(){return t.apply(e?e:this,r.call(i,n.call(arguments,0)))}}),Array.isArray||(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length,n=Number(arguments[1])||0;n=n<0?Math.ceil(n):Math.floor(n),n<0&&(n+=t);for(;n<t;n++)if(n in this&&this[n]===e)return n;return-1}),define("strophe-polyfill",function(){}),function(e,t){if(typeof define=="function"&&define.amd)define("strophe-core",["strophe-sha1","strophe-base64","strophe-md5","strophe-polyfill"],function(){return t.apply(this,arguments)});else{var n=t(e.SHA1,e.Base64,e.MD5);window.Strophe=n.Strophe,window.$build=n.$build,window.$iq=n.$iq,window.$msg=n.$msg,window.$pres=n.$pres,window.SHA1=n.SHA1,window.Base64=n.Base64,window.MD5=n.MD5,window.b64_hmac_sha1=n.SHA1.b64_hmac_sha1,window.b64_sha1=n.SHA1.b64_sha1,window.str_hmac_sha1=n.SHA1.str_hmac_sha1,window.str_sha1=n.SHA1.str_sha1}}(this,function(e,t,n){function i(e,t){return new r.Builder(e,t)}function s(e){return new r.Builder("message",e)}function o(e){return new r.Builder("iq",e)}function u(e){return new r.Builder("presence",e)}var r;return r={VERSION:"@VERSION@",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(e){for(var t=0;t<r.XHTML.tags.length;t++)if(e==r.XHTML.tags[t])return!0;return!1},validAttribute:function(e,t){if(typeof r.XHTML.attributes[e]!="undefined"&&r.XHTML.attributes[e].length>0)for(var n=0;n<r.XHTML.attributes[e].length;n++)if(t==r.XHTML.attributes[e][n])return!0;return!1},validCSS:function(e){for(var t=0;t<r.XHTML.css.length;t++)if(e==r.XHTML.css[t])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8,REDIRECT:9},LogLevel:{DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},ElementType:{NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},TIMEOUT:1.1,SECONDARY_TIMEOUT:.1,addNamespace:function(e,t){r.NS[e]=t},forEachChild:function(e,t,n){var i,s;for(i=0;i<e.childNodes.length;i++)s=e.childNodes[i],s.nodeType==r.ElementType.NORMAL&&(!t||this.isTagEqual(s,t))&&n(s)},isTagEqual:function(e,t){return e.tagName==t},_xmlGenerator:null,_makeGenerator:function(){var e;return document.implementation.createDocument===undefined||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(e=this._getIEXmlDom(),e.appendChild(e.createElement("strophe"))):e=document.implementation.createDocument("jabber:client","strophe",null),e},xmlGenerator:function(){return r._xmlGenerator||(r._xmlGenerator=r._makeGenerator()),r._xmlGenerator},_getIEXmlDom:function(){var e=null,t=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];for(var n=0;n<t.length;n++){if(e!==null)break;try{e=new ActiveXObject(t[n])}catch(r){e=null}}return e},xmlElement:function(e){if(!e)return null;var t=r.xmlGenerator().createElement(e),n,i,s;for(n=1;n<arguments.length;n++){if(!arguments[n])continue;if(typeof arguments[n]=="string"||typeof arguments[n]=="number")t.appendChild(r.xmlTextNode(arguments[n]));else if(typeof arguments[n]=="object"&&typeof arguments[n].sort=="function")for(i=0;i<arguments[n].length;i++)typeof arguments[n][i]=="object"&&typeof arguments[n][i].sort=="function"&&t.setAttribute(arguments[n][i][0],arguments[n][i][1]);else if(typeof arguments[n]=="object")for(s in arguments[n])arguments[n].hasOwnProperty(s)&&t.setAttribute(s,arguments[n][s])}return t},xmlescape:function(e){return e=e.replace(/\&/g,"&"),e=e.replace(/</g,"<"),e=e.replace(/>/g,">"),e=e.replace(/'/g,"'"),e=e.replace(/"/g,"""),e},xmlunescape:function(e){return e=e.replace(/\&/g,"&"),e=e.replace(/</g,"<"),e=e.replace(/>/g,">"),e=e.replace(/'/g,"'"),e=e.replace(/"/g,'"'),e},xmlTextNode:function(e){return r.xmlGenerator().createTextNode(e)},xmlHtmlNode:function(e){var t;if(window.DOMParser){var n=new DOMParser;t=n.parseFromString(e,"text/xml")}else t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e);return t},getText:function(e){if(!e)return null;var t="";e.childNodes.length===0&&e.nodeType==r.ElementType.TEXT&&(t+=e.nodeValue);for(var n=0;n<e.childNodes.length;n++)e.childNodes[n].nodeType==r.ElementType.TEXT&&(t+=e.childNodes[n].nodeValue);return r.xmlescape(t)},copyElement:function(e){var t,n;if(e.nodeType==r.ElementType.NORMAL){n=r.xmlElement(e.tagName);for(t=0;t<e.attributes.length;t++)n.setAttribute(e.attributes[t].nodeName,e.attributes[t].value);for(t=0;t<e.childNodes.length;t++)n.appendChild(r.copyElement(e.childNodes[t]))}else e.nodeType==r.ElementType.TEXT&&(n=r.xmlGenerator().createTextNode(e.nodeValue));return n},createHtml:function(e){var t,n,i,s,o,u,a,f,l,c,h;if(e.nodeType==r.ElementType.NORMAL){s=e.nodeName;if(r.XHTML.validTag(s))try{n=r.xmlElement(s);for(t=0;t<r.XHTML.attributes[s].length;t++){o=r.XHTML.attributes[s][t],u=e.getAttribute(o);if(typeof u=="undefined"||u===null||u===""||u===!1||u===0)continue;o=="style"&&typeof u=="object"&&typeof u.cssText!="undefined"&&(u=u.cssText);if(o=="style"){a=[],f=u.split(";");for(i=0;i<f.length;i++)l=f[i].split(":"),c=l[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),r.XHTML.validCSS(c)&&(h=l[1].replace(/^\s*/,"").replace(/\s*$/,""),a.push(c+": "+h));a.length>0&&(u=a.join("; "),n.setAttribute(o,u))}else n.setAttribute(o,u)}for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}catch(p){n=r.xmlTextNode("")}else{n=r.xmlGenerator().createDocumentFragment();for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}}else if(e.nodeType==r.ElementType.FRAGMENT){n=r.xmlGenerator().createDocumentFragment();for(t=0;t<e.childNodes.length;t++)n.appendChild(r.createHtml(e.childNodes[t]))}else e.nodeType==r.ElementType.TEXT&&(n=r.xmlTextNode(e.nodeValue));return n},escapeNode:function(e){return typeof e!="string"?e:e.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(e){return typeof e!="string"?e:e.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(e){return e.indexOf("@")<0?null:e.split("@")[0]},getDomainFromJid:function(e){var t=r.getBareJidFromJid(e);if(t.indexOf("@")<0)return t;var n=t.split("@");return n.splice(0,1),n.join("@")},getResourceFromJid:function(e){var t=e.split("/");return t.length<2?null:(t.splice(0,1),t.join("/"))},getBareJidFromJid:function(e){return e?e.split("/")[0]:null},log:function(e,t){return},debug:function(e){this.log(this.LogLevel.DEBUG,e)},info:function(e){this.log(this.LogLevel.INFO,e)},warn:function(e){this.log(this.LogLevel.WARN,e)},error:function(e){this.log(this.LogLevel.ERROR,e)},fatal:function(e){this.log(this.LogLevel.FATAL,e)},serialize:function(e){var t;if(!e)return null;typeof e.tree=="function"&&(e=e.tree());var n=e.nodeName,i,s;e.getAttribute("_realname")&&(n=e.getAttribute("_realname")),t="<"+n;for(i=0;i<e.attributes.length;i++)e.attributes[i].nodeName!="_realname"&&(t+=" "+e.attributes[i].nodeName+"='"+e.attributes[i].value.replace(/&/g,"&").replace(/\'/g,"'").replace(/>/g,">").replace(/</g,"<")+"'");if(e.childNodes.length>0){t+=">";for(i=0;i<e.childNodes.length;i++){s=e.childNodes[i];switch(s.nodeType){case r.ElementType.NORMAL:t+=r.serialize(s);break;case r.ElementType.TEXT:t+=r.xmlescape(s.nodeValue);break;case r.ElementType.CDATA:t+="<![CDATA["+s.nodeValue+"]]>"}}t+="</"+n+">"}else t+="/>";return t},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(e,t){r._connectionPlugins[e]=t}},r.Builder=function(e,t){if(e=="presence"||e=="message"||e=="iq")t&&!t.xmlns?t.xmlns=r.NS.CLIENT:t||(t={xmlns:r.NS.CLIENT});this.nodeTree=r.xmlElement(e,t),this.node=this.nodeTree},r.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return r.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(e){for(var t in e)e.hasOwnProperty(t)&&this.node.setAttribute(t,e[t]);return this},c:function(e,t,n){var i=r.xmlElement(e,t,n);return this.node.appendChild(i),n||(this.node=i),this},cnode:function(e){var t,n=r.xmlGenerator();try{t=n.importNode!==undefined}catch(i){t=!1}var s=t?n.importNode(e,!0):r.copyElement(e);return this.node.appendChild(s),this.node=s,this},t:function(e){var t=r.xmlTextNode(e);return this.node.appendChild(t),this},h:function(e){var t=document.createElement("body");t.innerHTML=e;var n=r.createHtml(t);while(n.childNodes.length>0)this.node.appendChild(n.childNodes[0]);return this}},r.Handler=function(e,t,n,i,s,o,u){this.handler=e,this.ns=t,this.name=n,this.type=i,this.id=s,this.options=u||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.options.matchBare?this.from=o?r.getBareJidFromJid(o):null:this.from=o,this.user=!0},r.Handler.prototype={isMatch:function(e){var t,n=null;this.options.matchBare?n=r.getBareJidFromJid(e.getAttribute("from")):n=e.getAttribute("from"),t=!1;if(!this.ns)t=!0;else{var i=this;r.forEachChild(e,null,function(e){e.getAttribute("xmlns")==i.ns&&(t=!0)}),t=t||e.getAttribute("xmlns")==this.ns}var s=e.getAttribute("type");return!t||!!this.name&&!r.isTagEqual(e,this.name)||!!this.type&&(Array.isArray(this.type)?this.type.indexOf(s)==-1:s!=this.type)||!!this.id&&e.getAttribute("id")!=this.id||!!this.from&&n!=this.from?!1:!0},run:function(e){var t=null;try{t=this.handler(e)}catch(n){throw n.sourceURL?r.fatal("error: "+this.handler+" "+n.sourceURL+":"+n.line+" - "+n.name+": "+n.message):n.fileName?(typeof console!="undefined"&&(console.trace(),console.error(this.handler," - error - ",n,n.message)),r.fatal("error: "+this.handler+" "+n.fileName+":"+n.lineNumber+" - "+n.name+": "+n.message)):r.fatal("error: "+n.message+"\n"+n.stack),n}return t},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},r.TimedHandler=function(e,t){this.period=e,this.handler=t,this.lastCalled=(new Date).getTime(),this.user=!0},r.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},r.Connection=function(e,t){this.service=e,this.options=t||{};var n=this.options.protocol||"";e.indexOf("ws:")===0||e.indexOf("wss:")===0||n.indexOf("ws")===0?this._proto=new r.Websocket(this):this._proto=new r.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this._idleTimeout=null,this._disconnectTimeout=null,this.do_authentication=!0,this.authenticated=!1,this.disconnecting=!1,this.connected=!1,this.paused=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var i in r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(i)){var s=r._connectionPlugins[i],o=function(){};o.prototype=s,this[i]=new o,this[i].init(this)}},r.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this.authenticated=!1,this.disconnecting=!1,this.connected=!1,this._data=[],this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(e){return typeof e=="string"||typeof e=="number"?++this._uniqueId+":"+e:++this._uniqueId+""},connect:function(e,t,n,i,s,o){this.jid=e,this.authzid=r.getBareJidFromJid(this.jid),this.authcid=r.getNodeFromJid(this.jid),this.pass=t,this.servtype="xmpp",this.connect_callback=n,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.domain=r.getDomainFromJid(this.jid),this._changeConnectStatus(r.Status.CONNECTING,null),this._proto._connect(i,s,o)},attach:function(e,t,n,r,i,s,o){this._proto._attach(e,t,n,r,i,s,o)},xmlInput:function(e){return},xmlOutput:function(e){return},rawInput:function(e){return},rawOutput:function(e){return},send:function(e){if(e===null)return;if(typeof e.sort=="function")for(var t=0;t<e.length;t++)this._queueData(e[t]);else typeof e.tree=="function"?this._queueData(e.tree()):this._queueData(e);this._proto._send()},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(e,t,n,i){var s=null,o=this;typeof e.tree=="function"&&(e=e.tree());var u=e.getAttribute("id");u||(u=this.getUniqueId("sendIQ"),e.setAttribute("id",u));var a=e.getAttribute("to"),f=this.jid,l=this.addHandler(function(e){s&&o.deleteTimedHandler(s);var i=!1,u=e.getAttribute("from");if(u===a||a===null&&(u===r.getBareJidFromJid(f)||u===r.getDomainFromJid(f)||u===f))i=!0;if(!i)throw{name:"StropheError",message:"Got answer to IQ from wrong jid:"+u+"\nExpected jid: "+a};var l=e.getAttribute("type");if(l=="result")t&&t(e);else{if(l!="error")throw{name:"StropheError",message:"Got bad IQ type of "+l};n&&n(e)}},null,"iq",["error","result"],u);return i&&(s=this.addTimedHandler(i,function(){return o.deleteHandler(l),n&&n(null),!1})),this.send(e),u},_queueData:function(e){if(e===null||!e.tagName||!e.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(e)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(e,t){var n=new r.TimedHandler(e,t);return this.addTimeds.push(n),n},deleteTimedHandler:function(e){this.removeTimeds.push(e)},addHandler:function(e,t,n,i,s,o,u){var a=new r.Handler(e,t,n,i,s,o,u);return this.addHandlers.push(a),a},deleteHandler:function(e){this.removeHandlers.push(e);var t=this.addHandlers.indexOf(e);t>=0&&this.addHandlers.splice(t,1)},disconnect:function(e){this._changeConnectStatus(r.Status.DISCONNECTING,e),r.info("Disconnect was called because: "+e);if(this.connected){var t=!1;this.disconnecting=!0,this.authenticated&&(t=u({xmlns:r.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(t)}else r.info("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests()},_changeConnectStatus:function(e,t){for(var n in r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(n)){var i=this[n];if(i.statusChanged)try{i.statusChanged(e,t)}catch(s){r.error(""+n+" plugin caused an exception "+"changing status: "+s)}}if(this.connect_callback)try{this.connect_callback(e,t)}catch(o){r.error("User connection callback caused an exception: "+o)}},_doDisconnect:function(){typeof this._idleTimeout=="number"&&clearTimeout(this._idleTimeout),this._disconnectTimeout!==null&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),r.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(r.Status.DISCONNECTED,null),this.connected=!1},_dataRecv:function(e,t){r.info("_dataRecv called");var n=this._proto._reqToData(e);if(n===null)return;this.xmlInput!==r.Connection.prototype.xmlInput&&(n.nodeName===this._proto.strip&&n.childNodes.length?this.xmlInput(n.childNodes[0]):this.xmlInput(n)),this.rawInput!==r.Connection.prototype.rawInput&&(t?this.rawInput(t):this.rawInput(r.serialize(n)));var i,s;while(this.removeHandlers.length>0)s=this.removeHandlers.pop(),i=this.handlers.indexOf(s),i>=0&&this.handlers.splice(i,1);while(this.addHandlers.length>0)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue()){this._doDisconnect();return}var o=n.getAttribute("type"),u,a;if(o!==null&&o=="terminate"){if(this.disconnecting)return;u=n.getAttribute("condition"),a=n.getElementsByTagName("conflict"),u!==null?(u=="remote-stream-error"&&a.length>0&&(u="conflict"),this._changeConnectStatus(r.Status.CONNFAIL,u)):this._changeConnectStatus(r.Status.CONNFAIL,"unknown"),this._doDisconnect();return}var f=this;r.forEachChild(n,null,function(e){var t,n;n=f.handlers,f.handlers=[];for(t=0;t<n.length;t++){var i=n[t];try{i.isMatch(e)&&(f.authenticated||!i.user)?i.run(e)&&f.handlers.push(i):f.handlers.push(i)}catch(s){r.warn("Removing Strophe handlers due to uncaught exception: "+s.message)}}})},mechanisms:{},_connect_cb:function(e,t,n){r.info("_connect_cb was called"),this.connected=!0;var i=this._proto._reqToData(e);if(!i)return;this.xmlInput!==r.Connection.prototype.xmlInput&&(i.nodeName===this._proto.strip&&i.childNodes.length?this.xmlInput(i.childNodes[0]):this.xmlInput(i)),this.rawInput!==r.Connection.prototype.rawInput&&(n?this.rawInput(n):this.rawInput(r.serialize(i)));var s=this._proto._connect_cb(i);if(s===r.Status.CONNFAIL)return;this._authentication.sasl_scram_sha1=!1,this._authentication.sasl_plain=!1,this._authentication.sasl_digest_md5=!1,this._authentication.sasl_anonymous=!1,this._authentication.legacy_auth=!1;var o=i.getElementsByTagNameNS(r.NS.STREAM,"features").length>0,u=i.getElementsByTagName("mechanism"),a=[],f,l,c=!1;if(!o){this._proto._no_auth_received(t);return}if(u.length>0)for(f=0;f<u.length;f++)l=r.getText(u[f]),this.mechanisms[l]&&a.push(this.mechanisms[l]);this._authentication.legacy_auth=i.getElementsByTagName("auth").length>0,c=this._authentication.legacy_auth||a.length>0;if(!c){this._proto._no_auth_received(t);return}this.do_authentication!==!1&&this.authenticate(a)},authenticate:function(e){var n;for(n=0;n<e.length-1;++n){var s=n;for(var u=n+1;u<e.length;++u)e[u].prototype.priority>e[s].prototype.priority&&(s=u);if(s!=n){var a=e[n];e[n]=e[s],e[s]=a}}var f=!1;for(n=0;n<e.length;++n){if(!e[n].test(this))continue;this._sasl_success_handler=this._addSysHandler(this._sasl_success_cb.bind(this),null,"success",null,null),this._sasl_failure_handler=this._addSysHandler(this._sasl_failure_cb.bind(this),null,"failure",null,null),this._sasl_challenge_handler=this._addSysHandler(this._sasl_challenge_cb.bind(this),null,"challenge",null,null),this._sasl_mechanism=new e[n],this._sasl_mechanism.onStart(this);var l=i("auth",{xmlns:r.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var c=this._sasl_mechanism.onChallenge(this,null);l.t(t.encode(c))}this.send(l.tree()),f=!0;break}f||(r.getNodeFromJid(this.jid)===null?(this._changeConnectStatus(r.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(r.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send(o({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:r.NS.AUTH}).c("username",{}).t(r.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(e){var n=t.decode(r.getText(e)),s=this._sasl_mechanism.onChallenge(this,n),o=i("response",{xmlns:r.NS.SASL});return s!==""&&o.t(t.encode(s)),this.send(o.tree()),!0},_auth1_cb:function(e){var t=o({type:"set",id:"_auth_2"}).c("query",{xmlns:r.NS.AUTH}).c("username",{}).t(r.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return r.getResourceFromJid(this.jid)||(this.jid=r.getBareJidFromJid(this.jid)+"/strophe"),t.up().c("resource",{}).t(r.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(t.tree()),!1},_sasl_success_cb:function(e){if(this._sasl_data["server-signature"]){var n,i=t.decode(r.getText(e)),s=/([a-z]+)=([^,]+)(,|$)/,o=i.match(s);o[1]=="v"&&(n=o[2]);if(n!=this._sasl_data["server-signature"])return this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_data={},this._sasl_failure_cb(null)}r.info("SASL authentication succeeded."),this._sasl_mechanism&&this._sasl_mechanism.onSuccess(),this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null);var u=[],a=function(e,t){while(e.length)this.deleteHandler(e.pop());return this._sasl_auth1_cb.bind(this)(t),!1};return u.push(this._addSysHandler(function(e){a.bind(this)(u,e)}.bind(this),null,"stream:features",null,null)),u.push(this._addSysHandler(function(e){a.bind(this)(u,e)}.bind(this),r.NS.STREAM,"features",null,null)),this._sendRestart(),!1},_sasl_auth1_cb:function(e){this.features=e;var t,n;for(t=0;t<e.childNodes.length;t++)n=e.childNodes[t],n.nodeName=="bind"&&(this.do_bind=!0),n.nodeName=="session"&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var i=r.getResourceFromJid(this.jid);return i?this.send(o({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:r.NS.BIND}).c("resource",{}).t(i).tree()):this.send(o({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:r.NS.BIND}).tree()),!1},_sasl_bind_cb:function(e){if(e.getAttribute("type")=="error"){r.info("SASL binding failed.");var t=e.getElementsByTagName("conflict"),n;return t.length>0&&(n="conflict"),this._changeConnectStatus(r.Status.AUTHFAIL,n),!1}var i=e.getElementsByTagName("bind"),s;if(!(i.length>0))return r.info("SASL binding failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;s=i[0].getElementsByTagName("jid"),s.length>0&&(this.jid=r.getText(s[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send(o({type:"set",id:"_session_auth_2"}).c("session",{xmlns:r.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)))},_sasl_session_cb:function(e){if(e.getAttribute("type")=="result")this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null);else if(e.getAttribute("type")=="error")return r.info("Session creation failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(e){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(r.Status.AUTHFAIL,null),!1},_auth2_cb:function(e){return e.getAttribute("type")=="result"?(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)):e.getAttribute("type")=="error"&&(this._changeConnectStatus(r.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(e,t){var n=new r.TimedHandler(e,t);return n.user=!1,this.addTimeds.push(n),n},_addSysHandler:function(e,t,n,i,s){var o=new r.Handler(e,t,n,i,s);return o.user=!1,this.addHandlers.push(o),o},_onDisconnectTimeout:function(){return r.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){var e,t,n,r;while(this.addTimeds.length>0)this.timedHandlers.push(this.addTimeds.pop());while(this.removeTimeds.length>0)t=this.removeTimeds.pop(),e=this.timedHandlers.indexOf(t),e>=0&&this.timedHandlers.splice(e,1);var i=(new Date).getTime();r=[];for(e=0;e<this.timedHandlers.length;e++){t=this.timedHandlers[e];if(this.authenticated||!t.user)n=t.lastCalled+t.period,n-i<=0?t.run()&&r.push(t):r.push(t)}this.timedHandlers=r,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},r.SASLMechanism=function(e,t,n){this.name=e,this.isClientFirst=t,this.priority=n},r.SASLMechanism.prototype={test:function(e){return!0},onStart:function(e){this._connection=e},onChallenge:function(e,t){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},r.SASLAnonymous=function(){},r.SASLAnonymous.prototype=new r.SASLMechanism("ANONYMOUS",!1,10),r.SASLAnonymous.test=function(e){return e.authcid===null},r.Connection.prototype.mechanisms[r.SASLAnonymous.prototype.name]=r.SASLAnonymous,r.SASLPlain=function(){},r.SASLPlain.prototype=new r.SASLMechanism("PLAIN",!0,20),r.SASLPlain.test=function(e){return e.authcid!==null},r.SASLPlain.prototype.onChallenge=function(e){var t=e.authzid;return t+="\0",t+=e.authcid,t+="\0",t+=e.pass,t},r.Connection.prototype.mechanisms[r.SASLPlain.prototype.name]=r.SASLPlain,r.SASLSHA1=function(){},r.SASLSHA1.prototype=new r.SASLMechanism("SCRAM-SHA-1",!0,40),r.SASLSHA1.test=function(e){return e.authcid!==null},r.SASLSHA1.prototype.onChallenge=function(r,i,s){var o=s||n.hexdigest(Math.random()*1234567890),u="n="+r.authcid;return u+=",r=",u+=o,r._sasl_data.cnonce=o,r._sasl_data["client-first-message-bare"]=u,u="n,,"+u,this.onChallenge=function(n,r){var i,s,o,u,a,f,l,c,h,p,d,v="c=biws,",m=n._sasl_data["client-first-message-bare"]+","+r+",",g=n._sasl_data.cnonce,y=/([a-z]+)=([^,]+)(,|$)/;while(r.match(y)){var b=r.match(y);r=r.replace(b[0],"");switch(b[1]){case"r":i=b[2];break;case"s":s=b[2];break;case"i":o=b[2]}}if(i.substr(0,g.length)!==g)return n._sasl_data={},n._sasl_failure_cb();v+="r="+i,m+=v,s=t.decode(s),s+="\0\0\0",u=f=e.core_hmac_sha1(n.pass,s);for(l=1;l<o;l++){a=e.core_hmac_sha1(n.pass,e.binb2str(f));for(c=0;c<5;c++)u[c]^=a[c];f=a}u=e.binb2str(u),h=e.core_hmac_sha1(u,"Client Key"),p=e.str_hmac_sha1(u,"Server Key"),d=e.core_hmac_sha1(e.str_sha1(e.binb2str(h)),m),n._sasl_data["server-signature"]=e.b64_hmac_sha1(p,m);for(c=0;c<5;c++)h[c]^=d[c];return v+=",p="+t.encode(e.binb2str(h)),v}.bind(this),u},r.Connection.prototype.mechanisms[r.SASLSHA1.prototype.name]=r.SASLSHA1,r.SASLMD5=function(){},r.SASLMD5.prototype=new r.SASLMechanism("DIGEST-MD5",!1,30),r.SASLMD5.test=function(e){return e.authcid!==null},r.SASLMD5.prototype._quote=function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},r.SASLMD5.prototype.onChallenge=function(e,t,r){var i=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,s=r||n.hexdigest(""+Math.random()*1234567890),o="",u=null,a="",f="",l;while(t.match(i)){l=t.match(i),t=t.replace(l[0],""),l[2]=l[2].replace(/^"(.+)"$/,"$1");switch(l[1]){case"realm":o=l[2];break;case"nonce":a=l[2];break;case"qop":f=l[2];break;case"host":u=l[2]}}var c=e.servtype+"/"+e.domain;u!==null&&(c=c+"/"+u);var h=n.hash(e.authcid+":"+o+":"+this._connection.pass)+":"+a+":"+s,p="AUTHENTICATE:"+c,d="";return d+="charset=utf-8,",d+="username="+this._quote(e.authcid)+",",d+="realm="+this._quote(o)+",",d+="nonce="+this._quote(a)+",",d+="nc=00000001,",d+="cnonce="+this._quote(s)+",",d+="digest-uri="+this._quote(c)+",",d+="response="+n.hexdigest(n.hexdigest(h)+":"+a+":00000001:"+s+":auth:"+n.hexdigest(p))+",",d+="qop=auth",this.onChallenge=function(){return""}.bind(this),d},r.Connection.prototype.mechanisms[r.SASLMD5.prototype.name]=r.SASLMD5,{Strophe:r,$build:i,$msg:s,$iq:o,$pres:u,SHA1:e,Base64:t,MD5:n}}),function(e,t){if(typeof define!="function"||!define.amd)return t(Strophe,$build);define("strophe-bosh",["strophe-core"],function(e){return t(e.Strophe,e.$build)})}(this,function(e,t){return e.Request=function(t,n,r,i){this.id=++e._requestId,this.xmlData=t,this.data=e.serialize(t),this.origFunc=n,this.func=n,this.rid=r,this.date=NaN,this.sends=i||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var e=new Date;return(e-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var e=new Date;return(e-this.dead)/1e3},this.xhr=this._newXHR()},e.Request.prototype={getResponse:function(){var t=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){t=this.xhr.responseXML.documentElement;if(t.tagName=="parsererror")throw e.error("invalid response received"),e.error("responseText: "+this.xhr.responseText),e.error("responseXML: "+e.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(e.error("invalid response received"),e.error("responseText: "+this.xhr.responseText),e.error("responseXML: "+e.serialize(this.xhr.responseXML)));return t},_newXHR:function(){var e=null;return window.XMLHttpRequest?(e=new XMLHttpRequest,e.overrideMimeType&&e.overrideMimeType("text/xml; charset=utf-8")):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLHTTP")),e.onreadystatechange=this.func.bind(null,this),e}},e.Bosh=function(e){this._conn=e,this.rid=Math.floor(Math.random()*4294967295),this.sid=null,this.hold=1,this.wait=60,this.window=5,this.errors=0,this._requests=[]},e.Bosh.prototype={strip:null,_buildBody:function(){var n=t("body",{rid:this.rid++,xmlns:e.NS.HTTPBIND});return this.sid!==null&&n.attrs({sid:this.sid}),n},_reset:function(){this.rid=Math.floor(Math.random()*4294967295),this.sid=null,this.errors=0},_connect:function(t,n,r){this.wait=t||this.wait,this.hold=n||this.hold,this.errors=0;var i=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":e.NS.BOSH});r&&i.attrs({route:r});var s=this._conn._connect_cb;this._requests.push(new e.Request(i.tree(),this._onRequestStateChange.bind(this,s.bind(this._conn)),i.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(t,n,r,i,s,o,u){this._conn.jid=t,this.sid=n,this.rid=r,this._conn.connect_callback=i,this._conn.domain=e.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=s||this.wait,this.hold=o||this.hold,this.window=u||this.window,this._conn._changeConnectStatus(e.Status.ATTACHED,null)},_connect_cb:function(t){var n=t.getAttribute("type"),r,i;if(n!==null&&n=="terminate")return e.error("BOSH-Connection failed: "+r),r=t.getAttribute("condition"),i=t.getElementsByTagName("conflict"),r!==null?(r=="remote-stream-error"&&i.length>0&&(r="conflict"),this._conn._changeConnectStatus(e.Status.CONNFAIL,r)):this._conn._changeConnectStatus(e.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(),e.Status.CONNFAIL;this.sid||(this.sid=t.getAttribute("sid"));var s=t.getAttribute("requests");s&&(this.window=parseInt(s,10));var o=t.getAttribute("hold");o&&(this.hold=parseInt(o,10));var u=t.getAttribute("wait");u&&(this.wait=parseInt(u,10))},_disconnect:function(e){this._sendTerminate(e)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(Math.random()*4294967295)},_emptyQueue:function(){return this._requests.length===0},_hitError:function(t){this.errors++,e.warn("request errored, status: "+t+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()},_no_auth_received:function(t){t?t=t.bind(this._conn):t=this._conn._connect_cb.bind(this._conn);var n=this._buildBody();this._requests.push(new e.Request(n.tree(),this._onRequestStateChange.bind(this,t.bind(this._conn)),n.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){this._abortAllRequests()},_abortAllRequests:function(){var t;while(this._requests.length>0)t=this._requests.pop(),t.abort=!0,t.xhr.abort(),t.xhr.onreadystatechange=function(){}},_onIdle:function(){var t=this._conn._data;this._conn.authenticated&&this._requests.length===0&&t.length===0&&!this._conn.disconnecting&&(e.info("no requests during idle cycle, sending blank request"),t.push(null));if(this._conn.paused)return;if(this._requests.length<2&&t.length>0){var n=this._buildBody();for(var r=0;r<t.length;r++)t[r]!==null&&(t[r]==="restart"?n.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":e.NS.BOSH}):n.cnode(t[r]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new e.Request(n.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),n.tree().getAttribute("rid"))),this._throttledRequestHandler()}if(this._requests.length>0){var i=this._requests[0].age();this._requests[0].dead!==null&&this._requests[0].timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),i>Math.floor(e.TIMEOUT*this.wait)&&(e.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(e.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}},_onRequestStateChange:function(t,n){e.debug("request id "+n.id+"."+n.sends+" state changed to "+n.xhr.readyState);if(n.abort){n.abort=!1;return}var r;if(n.xhr.readyState==4){r=0;try{r=n.xhr.status}catch(i){}typeof r=="undefined"&&(r=0);if(this.disconnecting&&r>=400){this._hitError(r);return}var s=this._requests[0]==n,o=this._requests[1]==n;if(r>0&&r<500||n.sends>5)this._removeRequest(n),e.debug("request id "+n.id+" should now be removed");if(r==200)(o||s&&this._requests.length>0&&this._requests[0].age()>Math.floor(e.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),e.debug("request id "+n.id+"."+n.sends+" got 200"),t(n),this.errors=0;else{e.error("request id "+n.id+"."+n.sends+" error "+r+" happened");if(r===0||r>=400&&r<600||r>=12e3)this._hitError(r),r>=400&&r<500&&(this._conn._changeConnectStatus(e.Status.DISCONNECTING,null),this._conn._doDisconnect())}r>0&&r<500||n.sends>5||this._throttledRequestHandler()}},_processRequest:function(t){var n=this,r=this._requests[t],i=-1;try{r.xhr.readyState==4&&(i=r.xhr.status)}catch(s){e.error("caught an error in _requests["+t+"], reqStatus: "+i)}typeof i=="undefined"&&(i=-1);if(r.sends>this._conn.maxRetries){this._conn._onDisconnectTimeout();return}var o=r.age(),u=!isNaN(o)&&o>Math.floor(e.TIMEOUT*this.wait),a=r.dead!==null&&r.timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait),f=r.xhr.readyState==4&&(i<1||i>=500);if(u||a||f)a&&e.error("Request "+this._requests[t].id+" timed out (secondary), restarting"),r.abort=!0,r.xhr.abort(),r.xhr.onreadystatechange=function(){},this._requests[t]=new e.Request(r.xmlData,r.origFunc,r.rid,r.sends),r=this._requests[t];if(r.xhr.readyState===0){e.debug("request id "+r.id+"."+r.sends+" posting");try{r.xhr.open("POST",this._conn.service,this._conn.options.sync?!1:!0),r.xhr.setRequestHeader("Content-Type","text/xml; charset=utf-8")}catch(l){e.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(e.Status.CONNFAIL,"bad-service"),this._conn.disconnect();return}var c=function(){r.date=new Date;if(n._conn.options.customHeaders){var e=n._conn.options.customHeaders;for(var t in e)e.hasOwnProperty(t)&&r.xhr.setRequestHeader(t,e[t])}r.xhr.send(r.data)};if(r.sends>1){var h=Math.min(Math.floor(e.TIMEOUT*this.wait),Math.pow(r.sends,3))*1e3;setTimeout(c,h)}else c();r.sends++,this._conn.xmlOutput!==e.Connection.prototype.xmlOutput&&(r.xmlData.nodeName===this.strip&&r.xmlData.childNodes.length?this._conn.xmlOutput(r.xmlData.childNodes[0]):this._conn.xmlOutput(r.xmlData)),this._conn.rawOutput!==e.Connection.prototype.rawOutput&&this._conn.rawOutput(r.data)}else e.debug("_processRequest: "+(t===0?"first":"second")+" request has readyState of "+r.xhr.readyState)},_removeRequest:function(t){e.debug("removing request");var n;for(n=this._requests.length-1;n>=0;n--)t==this._requests[n]&&this._requests.splice(n,1);t.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(e){var t=this._requests[e];t.dead===null&&(t.dead=new Date),this._processRequest(e)},_reqToData:function(e){try{return e.getResponse()}catch(t){if(t!="parsererror")throw t;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(t){e.info("_sendTerminate was called");var n=this._buildBody().attrs({type:"terminate"});t&&n.cnode(t.tree());var r=new e.Request(n.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),n.tree().getAttribute("rid"));this._requests.push(r),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(this._conn._onIdle.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?e.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):e.debug("_throttledRequestHandler called with undefined requests");if(!this._requests||this._requests.length===0)return;this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)<this.window&&this._processRequest(1)}},e}),function(e,t){if(typeof define!="function"||!define.amd)return t(Strophe,$build);define("strophe-websocket",["strophe-core"],function(e){return t(e.Strophe,e.$build)})}(this,function(e,t){return e.Websocket=function(e){this._conn=e,this.strip="wrapper";var t=e.service;if(t.indexOf("ws:")!==0&&t.indexOf("wss:")!==0){var n="";e.options.protocol==="ws"&&window.location.protocol!=="https:"?n+="ws":n+="wss",n+="://"+window.location.host,t.indexOf("/")!==0?n+=window.location.pathname+t:n+=t,e.service=n}},e.Websocket.prototype={_buildStream:function(){return t("open",{xmlns:e.NS.FRAMING,to:this._conn.domain,version:"1.0"})},_check_streamerror:function(t,n){var r=t.getElementsByTagNameNS(e.NS.STREAM,"error");if(r.length===0)return!1;var i=r[0],s="",o="",u="urn:ietf:params:xml:ns:xmpp-streams";for(var a=0;a<i.childNodes.length;a++){var f=i.childNodes[a];if(f.getAttribute("xmlns")!==u)break;f.nodeName==="text"?o=f.textContent:s=f.nodeName}var l="WebSocket stream error: ";return s?l+=s:l+="unknown",o&&(l+=" - "+s),e.error(l),this._conn._changeConnectStatus(n,s),this._conn._doDisconnect(),!0},_reset:function(){return},_connect:function(){this._closeSocket(),this.socket=new WebSocket(this._conn.service,"xmpp"),this.socket.onopen=this._onOpen.bind(this),this.socket.onerror=this._onError.bind(this),this.socket.onclose=this._onClose.bind(this),this.socket.onmessage=this._connect_cb_wrapper.bind(this)},_connect_cb:function(t){var n=this._check_streamerror(t,e.Status.CONNFAIL);if(n)return e.Status.CONNFAIL},_handleStreamStart:function(t){var n=!1,r=t.getAttribute("xmlns");typeof r!="string"?n="Missing xmlns in <open />":r!==e.NS.FRAMING&&(n="Wrong xmlns in <open />: "+r);var i=t.getAttribute("version");return typeof i!="string"?n="Missing version in <open />":i!=="1.0"&&(n="Wrong version in <open />: "+i),n?(this._conn._changeConnectStatus(e.Status.CONNFAIL,n),this._conn._doDisconnect(),!1):!0},_connect_cb_wrapper:function(t){if(t.data.indexOf("<open ")===0||t.data.indexOf("<?xml")===0){var n=t.data.replace(/^(<\?.*?\?>\s*)*/,"");if(n==="")return;var r=(new DOMParser).parseFromString(n,"text/xml").documentElement;this._conn.xmlInput(r),this._conn.rawInput(t.data),this._handleStreamStart(r)&&this._connect_cb(r)}else if(t.data.indexOf("<close ")===0){this._conn.rawInput(t.data),this._conn.xmlInput(t);var i=t.getAttribute("see-other-uri");i?(this._conn._changeConnectStatus(e.Status.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=i,this._connect()):(this._conn._changeConnectStatus(e.Status.CONNFAIL,"Received closing stream"),this._conn._doDisconnect())}else{var s=this._streamWrap(t.data),o=(new DOMParser).parseFromString(s,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(o,null,t.data)}},_disconnect:function(n){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){n&&this._conn.send(n);var r=t("close",{xmlns:e.NS.FRAMING});this._conn.xmlOutput(r);var i=e.serialize(r);this._conn.rawOutput(i);try{this.socket.send(i)}catch(s){e.info("Couldn't send <close /> tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){e.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(e){return"<wrapper>"+e+"</wrapper>"},_closeSocket:function(){if(this.socket)try{this.socket.close()}catch(e){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(){this._conn.connected&&!this._conn.disconnecting?(e.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):e.info("Websocket closed")},_no_auth_received:function(t){e.error("Server did not send any auth methods"),this._conn._changeConnectStatus(e.Status.CONNFAIL,"Server did not send any auth methods"),t&&(t=t.bind(this._conn),t()),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_abortAllRequests:function(){},_onError:function(t){e.error("Websocket error "+t),this._conn._changeConnectStatus(e.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var t=this._conn._data;if(t.length>0&&!this._conn.paused){for(var n=0;n<t.length;n++)if(t[n]!==null){var r,i;t[n]==="restart"?r=this._buildStream().tree():r=t[n],i=e.serialize(r),this._conn.xmlOutput(r),this._conn.rawOutput(i),this.socket.send(i)}this._conn._data=[]}},_onMessage:function(t){var n,r,i='<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />';if(t.data===i){this._conn.rawInput(i),this._conn.xmlInput(t),this._conn.disconnecting||this._conn._doDisconnect();return}if(t.data.search("<open ")===0){n=(new DOMParser).parseFromString(t.data,"text/xml").documentElement;if(!this._handleStreamStart(n))return}else r=this._streamWrap(t.data),n=(new DOMParser).parseFromString(r,"text/xml").documentElement;if(this._check_streamerror(n,e.Status.ERROR))return;if(this._conn.disconnecting&&n.firstChild.nodeName==="presence"&&n.firstChild.getAttribute("type")==="unavailable"){this._conn.xmlInput(n),this._conn.rawInput(e.serialize(n));return}this._conn._dataRecv(n,t.data)},_onOpen:function(){e.info("Websocket open");var t=this._buildStream();this._conn.xmlOutput(t.tree());var n=e.serialize(t);this._conn.rawOutput(n),this.socket.send(n)},_reqToData:function(e){return e},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}},e}),define("strophe",["strophe-core","strophe-bosh","strophe-websocket"],function(e){return e}),function(e,t){typeof define=="function"&&define.amd?define("strophe.roster",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){e.addConnectionPlugin("roster",{init:function(t){this._connection=t,this._callbacks=[],this.items=[],this.ver=null;var n,r=this,i=t.connect,s=t.attach,o=function(i){if(i==e.Status.ATTACHED||i==e.Status.CONNECTED)try{t.addHandler(r._onReceivePresence.bind(r),null,"presence",null,null,null),t.addHandler(r._onReceiveIQ.bind(r),e.NS.ROSTER,"iq","set",null,null)}catch(s){e.error(s)}typeof n=="function"&&n.apply(this,arguments)};t.connect=function(e,r,s,u,a,f){n=s,typeof e=="undefined"&&(e=null),typeof r=="undefined"&&(r=null),s=o,i.apply(t,[e,r,s,u,a,f])},t.attach=function(e,r,i,u,a,f,l){n=u,typeof e=="undefined"&&(e=null),typeof r=="undefined"&&(r=null),typeof i=="undefined"&&(i=null),u=o,s.apply(t,[e,r,i,u,a,f,l])},e.addNamespace("ROSTER_VER","urn:xmpp:features:rosterver"),e.addNamespace("NICK","http://jabber.org/protocol/nick")},supportVersioning:function(){return this._connection.features&&this._connection.features.getElementsByTagName("ver").length>0},get:function(t,r,i){var s={xmlns:e.NS.ROSTER};this.supportVersioning()&&(s.ver=r||"",this.items=i||[]);var o=n({type:"get",id:this._connection.getUniqueId("roster")}).c("query",s);return this._connection.sendIQ(o,this._onReceiveRosterSuccess.bind(this,t),this._onReceiveRosterError.bind(this,t))},registerCallback:function(e){this._callbacks.push(e)},findItem:function(t){try{for(var n=0;n<this.items.length;n++)if(this.items[n]&&this.items[n].jid==t)return this.items[n]}catch(r){e.error(r)}return!1},removeItem:function(e){for(var t=0;t<this.items.length;t++)if(this.items[t]&&this.items[t].jid==e)return this.items.splice(t,1),!0;return!1},subscribe:function(t,n,r){var s=i({to:t,type:"subscribe"});n&&n!==""&&s.c("status").t(n).up(),r&&r!==""&&s.c("nick",{xmlns:e.NS.NICK}).t(r).up(),this._connection.send(s)},unsubscribe:function(e,t){var n=i({to:e,type:"unsubscribe"});t&&t!==""&&n.c("status").t(t),this._connection.send(n)},authorize:function(e,t){var n=i({to:e,type:"subscribed"});t&&t!==""&&n.c("status").t(t),this._connection.send(n)},unauthorize:function(e,t){var n=i({to:e,type:"unsubscribed"});t&&t!==""&&n.c("status").t(t),this._connection.send(n)},add:function(t,r,i,s){var o=n({type:"set"}).c("query",{xmlns:e.NS.ROSTER}).c("item",{jid:t,name:r});for(var u=0;u<i.length;u++)o.c("group").t(i[u]).up();this._connection.sendIQ(o,s,s)},update:function(t,r,i,s){var o=this.findItem(t);if(!o)throw"item not found";var u=r||o.name,a=i||o.groups,f=n({type:"set"}).c("query",{xmlns:e.NS.ROSTER}).c("item",{jid:o.jid,name:u});for(var l=0;l<a.length;l++)f.c("group").t(a[l]).up();return this._connection.sendIQ(f,s,s)},remove:function(t,r){var i=this.findItem(t);if(!i)throw"item not found";var s=n({type:"set"}).c("query",{xmlns:e.NS.ROSTER}).c("item",{jid:i.jid,subscription:"remove"});this._connection.sendIQ(s,r,r)},_onReceiveRosterSuccess:function(e,t){this._updateItems(t),typeof e=="function"&&e(this.items)},_onReceiveRosterError:function(e,t){e(this.items)},_onReceivePresence:function(t){var n=t.getAttribute("from"),r=e.getBareJidFromJid(n),i=this.findItem(r);if(!i)return!0;var s=t.getAttribute("type");if(s=="unavailable")delete i.resources[e.getResourceFromJid(n)];else{if(!!s)return!0;i.resources[e.getResourceFromJid(n)]={show:t.getElementsByTagName("show").length!==0?e.getText(t.getElementsByTagName("show")[0]):"",status:t.getElementsByTagName("status").length!==0?e.getText(t.getElementsByTagName("status")[0]):"",priority:t.getElementsByTagName("priority").length!==0?e.getText(t.getElementsByTagName("priority")[0]):""}}return this._call_backs(this.items,i),!0},_call_backs:function(e,t){for(var n=0;n<this._callbacks.length;n++)this._callbacks[n](e,t)},_onReceiveIQ:function(t){var r=t.getAttribute("id"),i=t.getAttribute("from");if(i&&i!==""&&i!=this._connection.jid&&i!=e.getBareJidFromJid(this._connection.jid))return!0;var s=n({type:"result",id:r,from:this._connection.jid});return this._connection.send(s),this._updateItems(t),!0},_updateItems:function(t){var n=t.getElementsByTagName("query");if(n.length!==0){this.ver=n.item(0).getAttribute("ver");var r=this;e.forEachChild(n.item(0),"item",function(e){r._updateItem(e)})}this._call_backs(this.items)},_updateItem:function(t){var n=t.getAttribute("jid"),r=t.getAttribute("name"),i=t.getAttribute("subscription"),s=t.getAttribute("ask"),o=[];e.forEachChild(t,"group",function(t){o.push(e.getText(t))});if(i=="remove"){this.removeItem(n);return}t=this.findItem(n),t?(t.name=r,t.subscription=i,t.ask=s,t.groups=o):this.items.push({name:r,jid:n,subscription:i,ask:s,groups:o,resources:{}})}})}),function(e,t){typeof define=="function"&&define.amd?define("strophe.vcard",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){var s=function(t,r,i){var s=n(r?{type:t,to:r}:{type:t});return s.c("vCard",{xmlns:e.NS.VCARD}),i&&s.cnode(i),s};e.addConnectionPlugin("vcard",{_connection:null,init:function(t){return this._connection=t,e.addNamespace("VCARD","vcard-temp")},get:function(e,t,n){var r=s("get",t);return this._connection.sendIQ(r,e,n)},set:function(e,t,n,r){var i=s("set",n,t);return this._connection.sendIQ(i,e,r)}})}),function(e,t){typeof define=="function"&&define.amd?define("strophe.disco",["strophe"],function(e){return t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres),e}):t(e.Strophe,e.$build,e.$iq,e.$msg,e.$pres)}(this,function(e,t,n,r,i){e.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[],_items:[],init:function(t){this._connection=t,this._identities=[],this._features=[],this._items=[],t.addHandler(this._onDiscoInfo.bind(this),e.NS.DISCO_INFO,"iq","get",null,null),t.addHandler(this._onDiscoItems.bind(this),e.NS.DISCO_ITEMS,"iq","get",null,null)},addIdentity:function(e,t,n,r){for(var i=0;i<this._identities.length;i++)if(this._identities[i].category==e&&this._identities[i].type==t&&this._identities[i].name==n&&this._identities[i].lang==r)return!1;return this._identities.push({category:e,type:t,name:n,lang:r}),!0},addFeature:function(e){for(var t=0;t<this._features.length;t++)if(this._features[t]==e)return!1;return this._features.push(e),!0},removeFeature:function(e){for(var t=0;t<this._features.length;t++)if(this._features[t]===e)return this._features.splice(t,1),!0;return!1},addItem:function(e,t,n,r){return n&&!r?!1:(this._items.push({jid:e,name:t,node:n,call_back:r}),!0)},info:function(t,r,i,s,o){var u={xmlns:e.NS.DISCO_INFO};r&&(u.node=r);var a=n({from:this._connection.jid,to:t,type:"get"}).c("query",u);this._connection.sendIQ(a,i,s,o)},items:function(t,r,i,s,o){var u={xmlns:e.NS.DISCO_ITEMS};r&&(u.node=r);var a=n({from:this._connection.jid,to:t,type:"get"}).c("query",u);this._connection.sendIQ(a,i,s,o)},_buildIQResult:function(e,t){var r=e.getAttribute("id"),i=e.getAttribute("from"),s=n({type:"result",id:r});return i!==null&&s.attrs({to:i}),s.c("query",t)},_onDiscoInfo:function(t){var n=t.getElementsByTagName("query")[0].getAttribute("node"),r={xmlns:e.NS.DISCO_INFO},i;n&&(r.node=n);var s=this._buildIQResult(t,r);for(i=0;i<this._identities.length;i++)r={category:this._identities[i].category,type:this._identities[i].type},this._identities[i].name&&(r.name=this._identities[i].name),this._identities[i].lang&&(r["xml:lang"]=this._identities[i].lang),s.c("identity",r).up();for(i=0;i<this._features.length;i++)s.c("feature",{"var":this._features[i]}).up();return this._connection.send(s.tree()),!0},_onDiscoItems:function(t){var n={xmlns:e.NS.DISCO_ITEMS},r=t.getElementsByTagName("query")[0].getAttribute("node"),i,s;if(r){n.node=r,i=[];for(s=0;s<this._items.length;s++)if(this._items[s].node==r){i=this._items[s].call_back(t);break}}else i=this._items;var o=this._buildIQResult(t,n);for(s=0;s<i.length;s++){var u={jid:i[s].jid};i[s].name&&(u.name=i[s].name),i[s].node&&(u.node=i[s].node),o.c("item",u).up()}return this._connection.send(o.tree()),!0}})}),function(e,t){if(typeof define=="function"&&define.amd)define("backbone",["underscore","jquery","exports"],function(n,r,i){e.Backbone=t(e,i,n,r)});else if(typeof exports!="undefined"){var n=require("underscore");t(e,exports,n)}else e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}(this,function(e,t,n,r){var i=e.Backbone,s=[],o=s.push,u=s.slice,a=s.splice;t.VERSION="1.1.2",t.$=r,t.noConflict=function(){return e.Backbone=i,this},t.emulateHTTP=!1,t.emulateJSON=!1;var f=t.Events={on:function(e,t,n){if(!c(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,r){if(!c(this,"once",e,[t,r])||!t)return this;var i=this,s=n.once(function(){i.off(e,s),t.apply(this,arguments)});return s._callback=t,this.on(e,s,r)},off:function(e,t,r){var i,s,o,u,a,f,l,h;if(!this._events||!c(this,"off",e,[t,r]))return this;if(!e&&!t&&!r)return this._events=void 0,this;u=e?[e]:n.keys(this._events);for(a=0,f=u.length;a<f;a++){e=u[a];if(o=this._events[e]){this._events[e]=i=[];if(t||r)for(l=0,h=o.length;l<h;l++)s=o[l],(t&&t!==s.callback&&t!==s.callback._callback||r&&r!==s.context)&&i.push(s);i.length||delete this._events[e]}}return this},trigger:function(e){if(!this._events)return this;var t=u.call(arguments,1);if(!c(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&h(n,t),r&&h(r,arguments),this},stopListening:function(e,t,r){var i=this._listeningTo;if(!i)return this;var s=!t&&!r;!r&&typeof t=="object"&&(r=this),e&&((i={})[e._listenId]=e);for(var o in i)e=i[o],e.off(t,r,this),(s||n.isEmpty(e._events))&&delete this._listeningTo[o];return this}},l=/\s+/,c=function(e,t,n,r){if(!n)return!0;if(typeof n=="object"){for(var i in n)e[t].apply(e,[i,n[i]].concat(r));return!1}if(l.test(n)){var s=n.split(l);for(var o=0,u=s.length;o<u;o++)e[t].apply(e,[s[o]].concat(r));return!1}return!0},h=function(e,t){var n,r=-1,i=e.length,s=t[0],o=t[1],u=t[2];switch(t.length){case 0:while(++r<i)(n=e[r]).callback.call(n.ctx);return;case 1:while(++r<i)(n=e[r]).callback.call(n.ctx,s);return;case 2:while(++r<i)(n=e[r]).callback.call(n.ctx,s,o);return;case 3:while(++r<i)(n=e[r]).callback.call(n.ctx,s,o,u);return;default:while(++r<i)(n=e[r]).callback.apply(n.ctx,t);return}},p={listenTo:"on",listenToOnce:"once"};n.each(p,function(e,t){f[t]=function(t,r,i){var s=this._listeningTo||(this._listeningTo={}),o=t._listenId||(t._listenId=n.uniqueId("l"));return s[o]=t,!i&&typeof r=="object"&&(i=this),t[e](r,i,this),this}}),f.bind=f.on,f.unbind=f.off,n.extend(t,f);var d=t.Model=function(e,t){var r=e||{};t||(t={}),this.cid=n.uniqueId("c"),this.attributes={},t.collection&&(this.collection=t.collection),t.parse&&(r=this.parse(r,t)||{}),r=n.defaults({},r,n.result(this,"defaults")),this.set(r,t),this.changed={},this.initialize.apply(this,arguments)};n.extend(d.prototype,f,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(e){return n.clone(this.attributes)},sync:function(){return t.sync.apply(this,arguments)},get:function(e){return this.attributes[e]},escape:function(e){return n.escape(this.get(e))},has:function(e){return this.get(e)!=null},set:function(e,t,r){var i,s,o,u,a,f,l,c;if(e==null)return this;typeof e=="object"?(s=e,r=t):(s={})[e]=t,r||(r={});if(!this._validate(s,r))return!1;o=r.unset,a=r.silent,u=[],f=this._changing,this._changing=!0,f||(this._previousAttributes=n.clone(this.attributes),this.changed={}),c=this.attributes,l=this._previousAttributes,this.idAttribute in s&&(this.id=s[this.idAttribute]);for(i in s)t=s[i],n.isEqual(c[i],t)||u.push(i),n.isEqual(l[i],t)?delete this.changed[i]:this.changed[i]=t,o?delete c[i]:c[i]=t;if(!a){u.length&&(this._pending=r);for(var h=0,p=u.length;h<p;h++)this.trigger("change:"+u[h],this,c[u[h]],r)}if(f)return this;if(!a)while(this._pending)r=this._pending,this._pending=!1,this.trigger("change",this,r);return this._pending=!1,this._changing=!1,this},unset:function(e,t){return this.set(e,void 0,n.extend({},t,{unset:!0}))},clear:function(e){var t={};for(var r in this.attributes)t[r]=void 0;return this.set(t,n.extend({},e,{unset:!0}))},hasChanged:function(e){return e==null?!n.isEmpty(this.changed):n.has(this.changed,e)},changedAttributes:function(e){if(!e)return this.hasChanged()?n.clone(this.changed):!1;var t,r=!1,i=this._changing?this._previousAttributes:this.attributes;for(var s in e){if(n.isEqual(i[s],t=e[s]))continue;(r||(r={}))[s]=t}return r},previous:function(e){return e==null||!this._previousAttributes?null:this._previousAttributes[e]},previousAttributes:function(){return n.clone(this._previousAttributes)},fetch:function(e){e=e?n.clone(e):{},e.parse===void 0&&(e.parse=!0);var t=this,r=e.success;return e.success=function(n){if(!t.set(t.parse(n,e),e))return!1;r&&r(t,n,e),t.trigger("sync",t,n,e)},I(this,e),this.sync("read",this,e)},save:function(e,t,r){var i,s,o,u=this.attributes;e==null||typeof e=="object"?(i=e,r=t):(i={})[e]=t,r=n.extend({validate:!0},r);if(i&&!r.wait){if(!this.set(i,r))return!1}else if(!this._validate(i,r))return!1;i&&r.wait&&(this.attributes=n.extend({},u,i)),r.parse===void 0&&(r.parse=!0);var a=this,f=r.success;return r.success=function(e){a.attributes=u;var t=a.parse(e,r);r.wait&&(t=n.extend(i||{},t));if(n.isObject(t)&&!a.set(t,r))return!1;f&&f(a,e,r),a.trigger("sync",a,e,r)},I(this,r),s=this.isNew()?"create":r.patch?"patch":"update",s==="patch"&&(r.attrs=i),o=this.sync(s,this,r),i&&r.wait&&(this.attributes=u),o},destroy:function(e){e=e?n.clone(e):{};var t=this,r=e.success,i=function(){t.trigger("destroy",t,t.collection,e)};e.success=function(n){(e.wait||t.isNew())&&i(),r&&r(t,n,e),t.isNew()||t.trigger("sync",t,n,e)};if(this.isNew())return e.success(),!1;I(this,e);var s=this.sync("delete",this,e);return e.wait||i(),s},url:function(){var e=n.result(this,"urlRoot")||n.result(this.collection,"url")||F();return this.isNew()?e:e.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(e,t){return e},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(e){return this._validate({},n.extend(e||{},{validate:!0}))},_validate:function(e,t){if(!t.validate||!this.validate)return!0;e=n.extend({},this.attributes,e);var r=this.validationError=this.validate(e,t)||null;return r?(this.trigger("invalid",this,r,n.extend(t,{validationError:r})),!1):!0}});var v=["keys","values","pairs","invert","pick","omit"];n.each(v,function(e){d.prototype[e]=function(){var t=u.call(arguments);return t.unshift(this.attributes),n[e].apply(n,t)}});var m=t.Collection=function(e,t){t||(t={}),t.model&&(this.model=t.model),t.comparator!==void 0&&(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,n.extend({silent:!0},t))},g={add:!0,remove:!0,merge:!0},y={add:!0,remove:!1};n.extend(m.prototype,f,{model:d,initialize:function(){},toJSON:function(e){return this.map(function(t){return t.toJSON(e)})},sync:function(){return t.sync.apply(this,arguments)},add:function(e,t){return this.set(e,n.extend({merge:!1},t,y))},remove:function(e,t){var r=!n.isArray(e);e=r?[e]:n.clone(e),t||(t={});var i,s,o,u;for(i=0,s=e.length;i<s;i++){u=e[i]=this.get(e[i]);if(!u)continue;delete this._byId[u.id],delete this._byId[u.cid],o=this.indexOf(u),this.models.splice(o,1),this.length--,t.silent||(t.index=o,u.trigger("remove",u,this,t)),this._removeReference(u,t)}return r?e[0]:e},set:function(e,t){t=n.defaults({},t,g),t.parse&&(e=this.parse(e,t));var r=!n.isArray(e);e=r?e?[e]:[]:n.clone(e);var i,s,o,u,a,f,l,c=t.at,h=this.model,p=this.comparator&&c==null&&t.sort!==!1,v=n.isString(this.comparator)?this.comparator:null,m=[],y=[],b={},w=t.add,E=t.merge,S=t.remove,x=!p&&w&&S?[]:!1;for(i=0,s=e.length;i<s;i++){a=e[i]||{},a instanceof d?o=u=a:o=a[h.prototype.idAttribute||"id"];if(f=this.get(o))S&&(b[f.cid]=!0),E&&(a=a===u?u.attributes:a,t.parse&&(a=f.parse(a,t)),f.set(a,t),p&&!l&&f.hasChanged(v)&&(l=!0)),e[i]=f;else if(w){u=e[i]=this._prepareModel(a,t);if(!u)continue;m.push(u),this._addReference(u,t)}u=f||u,x&&(u.isNew()||!b[u.id])&&x.push(u),b[u.id]=!0}if(S){for(i=0,s=this.length;i<s;++i)b[(u=this.models[i]).cid]||y.push(u);y.length&&this.remove(y,t)}if(m.length||x&&x.length){p&&(l=!0),this.length+=m.length;if(c!=null)for(i=0,s=m.length;i<s;i++)this.models.splice(c+i,0,m[i]);else{x&&(this.models.length=0);var T=x||m;for(i=0,s=T.length;i<s;i++)this.models.push(T[i])}}l&&this.sort({silent:!0});if(!t.silent){for(i=0,s=m.length;i<s;i++)(u=m[i]).trigger("add",u,this,t);(l||x&&x.length)&&this.trigger("sort",this,t)}return r?e[0]:e},reset:function(e,t){t||(t={});for(var r=0,i=this.models.length;r<i;r++)this._removeReference(this.models[r],t);return t.previousModels=this.models,this._reset(),e=this.add(e,n.extend({silent:!0},t)),t.silent||this.trigger("reset",this,t),e},push:function(e,t){return this.add(e,n.extend({at:this.length},t))},pop:function(e){var t=this.at(this.length-1);return this.remove(t,e),t},unshift:function(e,t){return this.add(e,n.extend({at:0},t))},shift:function(e){var t=this.at(0);return this.remove(t,e),t},slice:function(){return u.apply(this.models,arguments)},get:function(e){return e==null?void 0:this._byId[e]||this._byId[e.id]||this._byId[e.cid]},at:function(e){return this.models[e]},where:function(e,t){return n.isEmpty(e)?t?void 0:[]:this[t?"find":"filter"](function(t){for(var n in e)if(e[n]!==t.get(n))return!1;return!0})},findWhere:function(e){return this.where(e,!0)},sort:function(e){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return e||(e={}),n.isString(this.comparator)||this.comparator.length===1?this.models=this.sortBy(this.comparator,this):this.models.sort(n.bind(this.comparator,this)),e.silent||this.trigger("sort",this,e),this},pluck:function(e){return n.invoke(this.models,"get",e)},fetch:function(e){e=e?n.clone(e):{},e.parse===void 0&&(e.parse=!0);var t=e.success,r=this;return e.success=function(n){var i=e.reset?"reset":"set";r[i](n,e),t&&t(r,n,e),r.trigger("sync",r,n,e)},I(this,e),this.sync("read",this,e)},create:function(e,t){t=t?n.clone(t):{};if(!(e=this._prepareModel(e,t)))return!1;t.wait||this.add(e,t);var r=this,i=t.success;return t.success=function(e,n){t.wait&&r.add(e,t),i&&i(e,n,t)},e.save(null,t),e},parse:function(e,t){return e},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(e,t){if(e instanceof d)return e;t=t?n.clone(t):{},t.collection=this;var r=new this.model(e,t);return r.validationError?(this.trigger("invalid",this,r.validationError,t),!1):r},_addReference:function(e,t){this._byId[e.cid]=e,e.id!=null&&(this._byId[e.id]=e),e.collection||(e.collection=this),e.on("all",this._onModelEvent,this)},_removeReference:function(e,t){this===e.collection&&delete e.collection,e.off("all",this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){if((e==="add"||e==="remove")&&n!==this)return;e==="destroy"&&this.remove(t,r),t&&e==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],t.id!=null&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments)}});var b=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];n.each(b,function(e){m.prototype[e]=function(){var t=u.call(arguments);return t.unshift(this.models),n[e].apply(n,t)}});var w=["groupBy","countBy","sortBy","indexBy"];n.each(w,function(e){m.prototype[e]=function(t,r){var i=n.isFunction(t)?t:function(e){return e.get(t)};return n[e](this.models,i,r)}});var E=t.View=function(e){this.cid=n.uniqueId("view"),e||(e={}),n.extend(this,n.pick(e,x)),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},S=/^(\S+)\s*(.*)$/,x=["model","collection","el","id","attributes","className","tagName","events"];n.extend(E.prototype,f,{tagName:"div",$:function(e){return this.$el.find(e)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},setElement:function(e,n){return this.$el&&this.undelegateEvents(),this.$el=e instanceof t.$?e:t.$(e),this.el=this.$el[0],n!==!1&&this.delegateEvents(),this},delegateEvents:function(e){if(!e&&!(e=n.result(this,"events")))return this;this.undelegateEvents();for(var t in e){var r=e[t];n.isFunction(r)||(r=this[e[t]]);if(!r)continue;var i=t.match(S),s=i[1],o=i[2];r=n.bind(r,this),s+=".delegateEvents"+this.cid,o===""?this.$el.on(s,r):this.$el.on(s,o,r)}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this.cid),this},_ensureElement:function(){if(!this.el){var e=n.extend({},n.result(this,"attributes"));this.id&&(e.id=n.result(this,"id")),this.className&&(e["class"]=n.result(this,"className"));var r=t.$("<"+n.result(this,"tagName")+">").attr(e);this.setElement(r,!1)}else this.setElement(n.result(this,"el"),!1)}}),t.sync=function(e,r,i){var s=N[e];n.defaults(i||(i={}),{emulateHTTP:t.emulateHTTP,emulateJSON:t.emulateJSON});var o={type:s,dataType:"json"};i.url||(o.url=n.result(r,"url")||F()),i.data==null&&r&&(e==="create"||e==="update"||e==="patch")&&(o.contentType="application/json",o.data=JSON.stringify(i.attrs||r.toJSON(i))),i.emulateJSON&&(o.contentType="application/x-www-form-urlencoded",o.data=o.data?{model:o.data}:{});if(i.emulateHTTP&&(s==="PUT"||s==="DELETE"||s==="PATCH")){o.type="POST",i.emulateJSON&&(o.data._method=s);var u=i.beforeSend;i.beforeSend=function(e){e.setRequestHeader("X-HTTP-Method-Override",s);if(u)return u.apply(this,arguments)}}o.type!=="GET"&&!i.emulateJSON&&(o.processData=!1),o.type==="PATCH"&&T&&(o.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")});var a=i.xhr=t.ajax(n.extend(o,i));return r.trigger("request",r,a,i),a};var T=typeof window!="undefined"&&!!window.ActiveXObject&&(!window.XMLHttpRequest||!(new XMLHttpRequest).dispatchEvent),N={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};t.ajax=function(){return t.$.ajax.apply(t.$,arguments)};var C=t.Router=function(e){e||(e={}),e.routes&&(this.routes=e.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},k=/\((.*?)\)/g,L=/(\(\?)?:\w+/g,A=/\*\w+/g,O=/[\-{}\[\]+?.,\\\^$|#\s]/g;n.extend(C.prototype,f,{initialize:function(){},route:function(e,r,i){n.isRegExp(e)||(e=this._routeToRegExp(e)),n.isFunction(r)&&(i=r,r=""),i||(i=this[r]);var s=this;return t.history.route(e,function(n){var o=s._extractParameters(e,n);s.execute(i,o),s.trigger.apply(s,["route:"+r].concat(o)),s.trigger("route",r,o),t.history.trigger("route",s,r,o)}),this},execute:function(e,t){e&&e.apply(this,t)},navigate:function(e,n){return t.history.navigate(e,n),this},_bindRoutes:function(){if(!this.routes)return;this.routes=n.result(this,"routes");var e,t=n.keys(this.routes);while((e=t.pop())!=null)this.route(e,this.routes[e])},_routeToRegExp:function(e){return e=e.replace(O,"\\$&").replace(k,"(?:$1)?").replace(L,function(e,t){return t?e:"([^/?]+)"}).replace(A,"([^?]*?)"),new RegExp("^"+e+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(e,t){var r=e.exec(t).slice(1);return n.map(r,function(e,t){return t===r.length-1?e||null:e?decodeURIComponent(e):null})}});var M=t.History=function(){this.handlers=[],n.bindAll(this,"checkUrl"),typeof window!="undefined"&&(this.location=window.location,this.history=window.history)},_=/^[#\/]|\s+$/g,D=/^\/+|\/+$/g,P=/msie [\w.]+/,H=/\/$/,B=/#.*$/;M.started=!1,n.extend(M.prototype,f,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(e){var t=(e||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(e,t){if(e==null)if(this._hasPushState||!this._wantsHashChange||t){e=decodeURI(this.location.pathname+this.location.search);var n=this.root.replace(H,"");e.indexOf(n)||(e=e.slice(n.length))}else e=this.getHash();return e.replace(_,"")},start:function(e){if(M.started)throw new Error("Backbone.history has already been started");M.started=!0,this.options=n.extend({root:"/"},this.options,e),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment(),i=document.documentMode,s=P.exec(navigator.userAgent.toLowerCase())&&(!i||i<=7);this.root=("/"+this.root+"/").replace(D,"/");if(s&&this._wantsHashChange){var o=t.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=o.hide().appendTo("body")[0].contentWindow,this.navigate(r)}this._hasPushState?t.$(window).on("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!s?t.$(window).on("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=r;var u=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot())return this.fragment=this.getFragment(null,!0),this.location.replace(this.root+"#"+this.fragment),!0;this._hasPushState&&this.atRoot()&&u.hash&&(this.fragment=this.getHash().replace(_,""),this.history.replaceState({},document.title,this.root+this.fragment))}if(!this.options.silent)return this.loadUrl()},stop:function(){t.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),M.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(e){var t=this.getFragment();t===this.fragment&&this.iframe&&(t=this.getFragment(this.getHash(this.iframe)));if(t===this.fragment)return!1;this.iframe&&this.navigate(t),this.loadUrl()},loadUrl:function(e){return e=this.fragment=this.getFragment(e),n.any(this.handlers,function(t){if(t.route.test(e))return t.callback(e),!0})},navigate:function(e,t){if(!M.started)return!1;if(!t||t===!0)t={trigger:!!t};var n=this.root+(e=this.getFragment(e||""));e=e.replace(B,"");if(this.fragment===e)return;this.fragment=e,e===""&&n!=="/"&&(n=n.slice(0,-1));if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,n);else{if(!this._wantsHashChange)return this.location.assign(n);this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,e,t.replace))}if(t.trigger)return this.loadUrl(e)},_updateHash:function(e,t,n){if(n){var r=e.href.replace(/(javascript:|#).*$/,"");e.replace(r+"#"+t)}else e.hash="#"+t}}),t.history=new M;var j=function(e,t){var r=this,i;e&&n.has(e,"constructor")?i=e.constructor:i=function(){return r.apply(this,arguments)},n.extend(i,r,t);var s=function(){this.constructor=i};return s.prototype=r.prototype,i.prototype=new s,e&&n.extend(i.prototype,e),i.__super__=r.prototype,i};d.extend=m.extend=C.extend=E.extend=M.extend=j;var F=function(){throw new Error('A "url" property or function must be specified')},I=function(e,t){var n=t.error;t.error=function(r){n&&n(e,r,t),e.trigger("error",e,r,t)}};return t}),function(e,t){typeof exports=="object"&&typeof require=="function"?module.exports=t(require("backbone"),require("underscore")):typeof define=="function"&&define.amd?define("backbone.browserStorage",["backbone","underscore"],function(n,r){return t(n||e.Backbone,r||e._)}):t(Backbone,_)}(this,function(e,t){function n(){return((1+Math.random())*65536|0).toString(16).substring(1)}function r(){return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()}function i(e,t){var n=e.length;while(n--)if(e[n]===t)return!0;return!1}function s(e,t){for(var n in t)e[n]=t[n];return e}function o(e,n,r){var i;if(r==="local"&&!window.localStorage)throw"Backbone.browserStorage: Environment does not support localStorage.";if(r==="session"&&!window.sessionStorage)throw"Backbone.browserStorage: Environment does not support sessionStorage.";this.name=e,this.serializer=n||{serialize:function(e){return t.isObject(e)?JSON.stringify(e):e},deserialize:function(e){return e&&JSON.parse(e)}};if(r==="session")this.store=window.sessionStorage;else{if(r!=="local")throw"Backbone.browserStorage: No storage type was specified";this.store=window.localStorage}i=this.store.getItem(this.name),this.records=i&&i.split(",")||[]}e.BrowserStorage={local:function(e,t){return o.bind(this,e,t,"local")()},session:function(e,t){return o.bind(this,e,t,"session")()}};var u={save:function(){this.store.setItem(this.name,this.records.join(","))},create:function(e){return e.id||(e.id=r(),e.set(e.idAttribute,e.id)),this.store.setItem(this._itemName(e.id),this.serializer.serialize(e)),this.records.push(e.id.toString()),this.save(),this.find(e)!==!1},update:function(e){this.store.setItem(this._itemName(e.id),this.serializer.serialize(e));var t=e.id.toString();return i(this.records,t)||(this.records.push(t),this.save()),this.find(e)!==!1},find:function(e){return this.serializer.deserialize(this.store.getItem(this._itemName(e.id)))},findAll:function(){var e=[];for(var t=0,n,r;t<this.records.length;t++)n=this.records[t],r=this.serializer.deserialize(this.store.getItem(this._itemName(n))),r!==null&&e.push(r);return e},destroy:function(e){this.store.removeItem(this._itemName(e.id));var t=e.id.toString();for(var n=0,r;n<this.records.length;n++)this.records[n]===t&&this.records.splice(n,1);return this.save(),e},browserStorage:function(){return{session:sessionStorage,local:localStorage}},_clear:function(){var e=this.store,t=new RegExp("^"+this.name+"-");e.removeItem(this.name);for(var n in e)t.test(n)&&e.removeItem(n);this.records.length=0},_storageSize:function(){return this.store.length},_itemName:function(e){return this.name+"-"+e}};return s(e.BrowserStorage.session.prototype,u),s(e.BrowserStorage.local.prototype,u),e.BrowserStorage.sync=e.localSync=function(t,n,r){var i=n.browserStorage||n.collection.browserStorage,s,o,u=e.$?e.$.Deferred&&e.$.Deferred():e.Deferred&&e.Deferred();try{switch(t){case"read":s=n.id!==undefined?i.find(n):i.findAll();break;case"create":s=i.create(n);break;case"update":s=i.update(n);break;case"delete":s=i.destroy(n)}}catch(a){a.code===22&&i._storageSize()===0?o="Private browsing is unsupported":o=a.message}return s?(r&&r.success&&(e.VERSION==="0.9.10"?r.success(n,s,r):r.success(s)),u&&u.resolve(s)):(o=o?o:"Record Not Found",r&&r.error&&(e.VERSION==="0.9.10"?r.error(n,o,r):r.error(o)),u&&u.reject(o)),r&&r.complete&&r.complete(s),u&&u.promise()},e.ajaxSync=e.sync,e.getSyncMethod=function(t){return t.browserStorage||t.collection&&t.collection.browserStorage?e.localSync:e.ajaxSync},e.sync=function(t,n,r){return e.getSyncMethod(n).apply(this,[t,n,r])},e.BrowserStorage}),function(e,t){typeof define=="function"&&define.amd?define("backbone.overview",["underscore","backbone"],function(n,r){return t(n||e._,r||e.Backbone)}):t(_,Backbone)}(this,function(e,t){var n=t.Overview=function(n){var r={};this.keys=function(){return e.keys(r)},this.getAll=function(){return r},this.get=function(e){return r[e]},this.add=function(e,t){return r[e]=t,t},this.remove=function(e){var t=r[e];if(t)return delete r[e],t.remove(),t},this.removeAll=function(t){e.each(e.keys(r),this.remove)},t.View.apply(this,Array.prototype.slice.apply(arguments))};return e.extend(n.prototype,t.View.prototype),n.extend=t.View.extend,t.Overview}),function(e,t){typeof define=="function"&&define.amd?define("jquery.browser",["jquery"],function(n){t(n,e)}):t(jQuery,e)}(this,function(e,t){var n,r;e.uaMatch=function(e){e=e.toLowerCase();var t=/(edge)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],n=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(silk)/.exec(e)||/(android)/.exec(e)||/(windows phone)/.exec(e)||/(win)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||/(playbook)/.exec(e)||/(bb)/.exec(e)||/(blackberry)/.exec(e)||[];return{browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",versionNumber:t[4]||t[2]||"0",platform:n[0]||""}},n=e.uaMatch(t.navigator.userAgent),r={},n.browser&&(r[n.browser]=!0,r.version=n.version,r.versionNumber=parseInt(n.versionNumber,10)),n.platform&&(r[n.platform]=!0);if(r.android||r.bb||r.blackberry||r.ipad||r.iphone||r.ipod||r.kindle||r.playbook||r.silk||r["windows phone"])r.mobile=!0;if(r.cros||r.mac||r.linux||r.win)r.desktop=!0;if(r.chrome||r.opr||r.safari)r.webkit=!0;if(r.rv||r.edge){var i="msie";n.browser=i,r[i]=!0}if(r.safari&&r.blackberry){var s="blackberry";n.browser=s,r[s]=!0}if(r.safari&&r.playbook){var o="playbook";n.browser=o,r[o]=!0}if(r.bb){var u="blackberry";n.browser=u,r[u]=!0}if(r.opr){var a="opera";n.browser=a,r[a]=!0}if(r.safari&&r.android){var f="android";n.browser=f,r[f]=!0}if(r.safari&&r.kindle){var l="kindle";n.browser=l,r[l]=!0}if(r.safari&&r.silk){var c="silk";n.browser=c,r[c]=!0}return r.name=n.browser,r.platform=n.platform,e.browser=r,r}),function(e,t){typeof define=="function"&&define.amd?define("typeahead",["jquery"],function(n){t(n,e)}):t(jQuery,e)}(this,function(e,t){var n=function(){return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},isBlankString:function(e){return!e||/^\s*$/.test(e)},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(e){return typeof e=="string"},isNumber:function(e){return typeof e=="number"},isArray:e.isArray,isFunction:e.isFunction,isObject:e.isPlainObject,isUndefined:function(e){return typeof e=="undefined"},toStr:function(t){return n.isUndefined(t)||t===null?"":t+""},bind:e.proxy,each:function(t,n){function r(e,t){return n(t,e)}e.each(t,r)},map:e.map,filter:e.grep,every:function(t,n){var r=!0;return t?(e.each(t,function(e,i){if(!(r=n.call(null,i,e,t)))return!1}),!!r):r},some:function(t,n){var r=!1;return t?(e.each(t,function(e,i){if(r=n.call(null,i,e,t))return!1}),!!r):r},mixin:e.extend,getUniqueId:function(){var e=0;return function(){return e++}}(),templatify:function(n){function r(){return String(n)}return e.isFunction(n)?n:r},defer:function(e){setTimeout(e,0)},debounce:function(e,t,n){var r,i;return function(){var s=this,o=arguments,u,a;return u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r,clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},throttle:function(e,t){var n,r,i,s,o,u;return o=0,u=function(){o=new Date,i=null,s=e.apply(n,r)},function(){var a=new Date,f=t-(a-o);return n=this,r=arguments,f<=0?(clearTimeout(i),i=null,o=a,s=e.apply(n,r)):i||(i=setTimeout(u,f)),s}},noop:function(){}}}(),r=function(){return{wrapper:'<span class="twitter-typeahead"></span>',dropdown:'<span class="tt-dropdown-menu"></span>',dataset:'<div class="tt-dataset-%CLASS%"></div>',suggestions:'<span class="tt-suggestions"></span>',suggestion:'<div class="tt-suggestion"></div>'}}(),i=function(){var e={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return n.isMsie()&&n.mixin(e.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),n.isMsie()&&n.isMsie()<=7&&n.mixin(e.input,{marginTop:"-1px"}),e}(),s=function(){function r(t){(!t||!t.el)&&e.error("EventBus initialized without el"),this.$el=e(t.el)}var t="typeahead:";return n.mixin(r.prototype,{trigger:function(e){var n=[].slice.call(arguments,1);this.$el.trigger(t+e,n)}}),r}(),o=function(){function r(t,n,r,i){var s;if(!r)return this;n=n.split(e),r=i?l(r,i):r,this._callbacks=this._callbacks||{};while(s=n.shift())this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][t].push(r);return this}function i(e,t,n){return r.call(this,"async",e,t,n)}function s(e,t,n){return r.call(this,"sync",e,t,n)}function o(t){var n;if(!this._callbacks)return this;t=t.split(e);while(n=t.shift())delete this._callbacks[n];return this}function u(t){var r,i,s,o,u;if(!this._callbacks)return this;t=t.split(e),s=[].slice.call(arguments,1);while((r=t.shift())&&(i=this._callbacks[r]))o=a(i.sync,this,[r].concat(s)),u=a(i.async,this,[r].concat(s)),o()&&n(u);return this}function a(e,t,n){function r(){var r;for(var i=0,s=e.length;!r&&i<s;i+=1)r=e[i].apply(t,n)===!1;return!r}return r}function f(){var e;return t.setImmediate?e=function(t){setImmediate(function(){t()})}:e=function(t){setTimeout(function(){t()},0)},e}function l(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}var e=/\s+/,n=f();return{onSync:s,onAsync:i,off:o,trigger:u}}(),u=function(e){function r(e,t,r){var i=[],s;for(var o=0,u=e.length;o<u;o++)i.push(n.escapeRegExChars(e[o]));return s=r?"\\b("+i.join("|")+")\\b":"("+i.join("|")+")",t?new RegExp(s):new RegExp(s,"i")}var t={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:!1,caseSensitive:!1};return function(s){function u(t){var n,r,i;if(n=o.exec(t.data))i=e.createElement(s.tagName),s.className&&(i.className=s.className),r=t.splitText(n.index),r.splitText(n[0].length),i.appendChild(r.cloneNode(!0)),t.parentNode.replaceChild(i,r);return!!n}function a(e,t){var n,r=3;for(var i=0;i<e.childNodes.length;i++)n=e.childNodes[i],n.nodeType===r?i+=t(n)?1:0:a(n,t)}var o;s=n.mixin({},t,s);if(!s.node||!s.pattern)return;s.pattern=n.isArray(s.pattern)?s.pattern:[s.pattern],o=r(s.pattern,s.caseSensitive,s.wordsOnly),a(s.node,u)}}(t.document),a=function(){function r(r){var s=this,o,u,a,f;r=r||{},r.input||e.error("input is missing"),o=n.bind(this._onBlur,this),u=n.bind(this._onFocus,this),a=n.bind(this._onKeydown,this),f=n.bind(this._onInput,this),this.$hint=e(r.hint),this.$input=e(r.input).on("blur.tt",o).on("focus.tt",u).on("keydown.tt",a),this.$hint.length===0&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=n.noop),n.isMsie()?this.$input.on("keydown.tt keypress.tt cut.tt paste.tt",function(e){if(t[e.which||e.keyCode])return;n.defer(n.bind(s._onInput,s,e))}):this.$input.on("input.tt",f),this.query=this.$input.val(),this.$overflowHelper=i(this.$input)}function i(t){return e('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:t.css("font-family"),fontSize:t.css("font-size"),fontStyle:t.css("font-style"),fontVariant:t.css("font-variant"),fontWeight:t.css("font-weight"),wordSpacing:t.css("word-spacing"),letterSpacing:t.css("letter-spacing"),textIndent:t.css("text-indent"),textRendering:t.css("text-rendering"),textTransform:t.css("text-transform")}).insertAfter(t)}function s(e,t){return r.normalizeQuery(e)===r.normalizeQuery(t)}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}var t;return t={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"},r.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},n.mixin(r.prototype,o,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(n){var r=t[n.which||n.keyCode];this._managePreventDefault(r,n),r&&this._shouldTrigger(r,n)&&this.trigger(r+"Keyed",n)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,n){var r,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),r=i&&i!==s&&!u(n);break;case"up":case"down":r=!u(n);break;default:r=!1}r&&n.preventDefault()},_shouldTrigger:function(t,n){var r;switch(t){case"tab":r=!u(n);break;default:r=!0}return r},_checkInputValue:function(){var t,n,r;t=this.getInputValue(),n=s(t,this.query),r=n?this.query.length!==t.length:!1,this.query=t,n?r&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,n){this.$input.val(t),n?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,n,r,i;t=this.getInputValue(),n=this.getHint(),r=t!==n&&n.indexOf(t)===0,i=t!==""&&r&&!this.hasOverflow(),!i&&this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var e,t,r;return e=this.$input.val().length,t=this.$input[0].selectionStart,n.isNumber(t)?t===e:document.selection?(r=document.selection.createRange(),r.moveStart("character",-e),e===r.text.length):!0},destroy:function(){this.$hint.off(".tt"),this.$input.off(".tt"),this.$hint=this.$input=this.$overflowHelper=null}}),r}(),f=function(){function f(t){t=t||{},t.templates=t.templates||{},t.source||e.error("missing source"),t.name&&!h(t.name)&&e.error("invalid dataset name: "+t.name),this.query=null,this.highlight=!!t.highlight,this.name=t.name||n.getUniqueId(),this.source=t.source,this.displayFn=l(t.display||t.displayKey),this.templates=c(t.templates,this.displayFn),this.$el=e(r.dataset.replace("%CLASS%",this.name))}function l(e){function t(t){return t[e]}return e=e||"value",n.isFunction(e)?e:t}function c(e,t){function r(e){return"<p>"+t(e)+"</p>"}return{empty:e.empty&&n.templatify(e.empty),header:e.header&&n.templatify(e.header),footer:e.footer&&n.templatify(e.footer),suggestion:e.suggestion||r}}function h(e){return/^[_a-zA-Z0-9-]+$/.test(e)}var t="ttDataset",s="ttValue",a="ttDatum";return f.extractDatasetName=function(r){return e(r).data(t)},f.extractValue=function(n){return e(n).data(s)},f.extractDatum=function(n){return e(n).data(a)},n.mixin(f.prototype,o,{_render:function(f,l){function p(){return c.templates.empty({query:f,isEmpty:!0})}function d(){function p(n){var o;return o=e(r.suggestion).append(c.templates.suggestion(n)).data(t,c.name).data(s,c.displayFn(n)).data(a,n),o.children().each(function(){e(this).css(i.suggestionChild)}),o}var o,h;return o=e(r.suggestions).css(i.suggestions),h=n.map(l,p),o.append.apply(o,h),c.highlight&&u({className:"tt-highlight",node:o[0],pattern:f}),o}function v(){return c.templates.header({query:f,isEmpty:!h})}function m(){return c.templates.footer({query:f,isEmpty:!h})}if(!this.$el)return;var c=this,h;this.$el.empty(),h=l&&l.length,!h&&this.templates.empty?this.$el.html(p()).prepend(c.templates.header?v():null).append(c.templates.footer?m():null):h&&this.$el.html(d()).prepend(c.templates.header?v():null).append(c.templates.footer?m():null),this.trigger("rendered")},getRoot:function(){return this.$el},update:function(t){function r(e){!n.canceled&&t===n.query&&n._render(t,e)}var n=this;this.query=t,this.canceled=!1,this.source(t,r)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=null}}),f}(),l=function(){function t(t){var i=this,s,o,u;t=t||{},t.menu||e.error("menu is required"),this.isOpen=!1,this.isEmpty=!0,this.datasets=n.map(t.datasets,r),s=n.bind(this._onSuggestionClick,this),o=n.bind(this._onSuggestionMouseEnter,this),u=n.bind(this._onSuggestionMouseLeave,this),this.$menu=e(t.menu).on("click.tt",".tt-suggestion",s).on("mouseenter.tt",".tt-suggestion",o).on("mouseleave.tt",".tt-suggestion",u),n.each(this.datasets,function(e){i.$menu.append(e.getRoot()),e.onSync("rendered",i._onRendered,i)})}function r(e){return new f(e)}return n.mixin(t.prototype,o,{_onSuggestionClick:function(n){this.trigger("suggestionClicked",e(n.currentTarget))},_onSuggestionMouseEnter:function(n){this._removeCursor(),this._setCursor(e(n.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function t(e){return e.isEmpty()}this.isEmpty=n.every(this.datasets,t),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger("datasetRendered")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css("display","block")},_getSuggestions:function(){return this.$menu.find(".tt-suggestion")},_getCursor:function(){return this.$menu.find(".tt-cursor").first()},_setCursor:function(t,n){t.first().addClass("tt-cursor"),!n&&this.trigger("cursorMoved")},_removeCursor:function(){this._getCursor().removeClass("tt-cursor")},_moveCursor:function(t){var n,r,i,s;if(!this.isOpen)return;r=this._getCursor(),n=this._getSuggestions(),this._removeCursor(),i=n.index(r)+t,i=(i+1)%(n.length+1)-1;if(i===-1){this.trigger("cursorRemoved");return}i<-1&&(i=n.length-1),this._setCursor(s=n.eq(i)),this._ensureVisible(s)},_ensureVisible:function(t){var n,r,i,s;n=t.position().top,r=n+t.outerHeight(!0),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),n<0?this.$menu.scrollTop(i+n):s<r&&this.$menu.scrollTop(i+(r-s))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,!this.isEmpty&&this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css(t==="ltr"?i.ltr:i.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var n=null;return t.length&&(n={raw:f.extractDatum(t),value:f.extractValue(t),datasetName:f.extractDatasetName(t)}),n},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(t){function r(e){e.update(t)}n.each(this.datasets,r)},empty:function(){function t(e){e.clear()}n.each(this.datasets,t),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function t(e){e.destroy()}this.$menu.off(".tt"),this.$menu=null,n.each(this.datasets,t)}}),t}(),c=function(){function o(t){var r,i,o;t=t||{},t.input||e.error("missing input"),this.isActivated=!1,this.autoselect=!!t.autoselect,this.minLength=n.isNumber(t.minLength)?t.minLength:1,this.$node=u(t.input,t.withHint),r=this.$node.find(".tt-dropdown-menu"),i=this.$node.find(".tt-input"),o=this.$node.find(".tt-hint"),i.on("blur.tt",function(e){var t,s,o;t=document.activeElement,s=r.is(t),o=r.has(t).length>0,n.isMsie()&&(s||o)&&(e.preventDefault(),e.stopImmediatePropagation(),n.defer(function(){i.focus()}))}),r.on("mousedown.tt",function(e){e.preventDefault()}),this.eventBus=t.eventBus||new s({el:i}),this.dropdown=(new l({menu:r,datasets:t.datasets})).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=(new a({input:i,hint:o})).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._setLanguageDirection()}function u(n,s){var o,u,a,l;o=e(n),u=e(r.wrapper).css(i.wrapper),a=e(r.dropdown).css(i.dropdown),l=o.clone().css(i.hint).css(f(o)),l.val("").removeData().addClass("tt-hint").removeAttr("id name placeholder required").prop("readonly",!0).attr({autocomplete:"off",spellcheck:"false",tabindex:-1}),o.data(t,{dir:o.attr("dir"),autocomplete:o.attr("autocomplete"),spellcheck:o.attr("spellcheck"),style:o.attr("style")}),o.addClass("tt-input").attr({autocomplete:"off",spellcheck:!1}).css(s?i.input:i.inputWithNoHint);try{!o.attr("dir")&&o.attr("dir","auto")}catch(c){}return o.wrap(u).parent().prepend(s?l:null).append(a)}function f(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}function c(e){var r=e.find(".tt-input");n.each(r.data(t),function(e,t){n.isUndefined(e)?r.removeAttr(t):r.attr(t,e)}),r.detach().removeData(t).removeClass("tt-input").insertAfter(e),e.remove()}var t="ttAttrs";return n.mixin(o.prototype,{_onSuggestionClicked:function(t,n){var r;(r=this.dropdown.getDatumForSuggestion(n))&&this._select(r)},_onCursorMoved:function(){var t=this.dropdown.getDatumForCursor();this.input.setInputValue(t.value,!0),this.eventBus.trigger("cursorchanged",t.raw,t.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint()},_onOpened:function(){this._updateHint(),this.eventBus.trigger("opened")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger("closed")},_onFocused:function(){this.isActivated=!0,this.dropdown.open()},_onBlurred:function(){this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()},_onEnterKeyed:function(t,n){var r,i;r=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion(),r?(this._select(r),n.preventDefault()):this.autoselect&&i&&(this._select(i),n.preventDefault())},_onTabKeyed:function(t,n){var r;(r=this.dropdown.getDatumForCursor())?(this._select(r),n.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){this.dir==="rtl"&&this._autocomplete()},_onRightKeyed:function(){this.dir==="ltr"&&this._autocomplete()},_onQueryChanged:function(t,n){this.input.clearHintIfInvalid(),n.length>=this.minLength?this.dropdown.update(n):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t;this.dir!==(t=this.input.getLanguageDirection())&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,r,i,s,o,u;t=this.dropdown.getDatumForTopSuggestion(),t&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(r=this.input.getInputValue(),i=a.normalizeQuery(r),s=n.escapeRegExChars(i),o=new RegExp("^(?:"+s+")(.+$)","i"),u=o.exec(t.value),u?this.input.setHint(r+u[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var n,r,i,s;n=this.input.getHint(),r=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),n&&r!==n&&i&&(s=this.dropdown.getDatumForTopSuggestion(),s&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t){this.input.setQuery(t.value),this.input.setInputValue(t.value,!0),this._setLanguageDirection(),this.eventBus.trigger("selected",t.raw,t.datasetName),this.dropdown.close(),n.defer(n.bind(this.dropdown.empty,this.dropdown))},open:function(){this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=n.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),c(this.$node),this.$node=null}}),o}();return function(){var t,r,i;t=e.fn.typeahead,r="ttTypeahead",i={initialize:function(i,o){function u(){var t=e(this),u,a;n.each(o,function(e){e.highlight=!!i.highlight}),a=new c({input:t,eventBus:u=new s({el:t}),withHint:n.isUndefined(i.hint)?!0:!!i.hint,minLength:i.minLength,autoselect:i.autoselect,datasets:o}),t.data(r,a)}return o=n.isArray(o)?o:[].slice.call(arguments,1),i=i||{},this.each(u)},open:function(){function n(){var t=e(this),n;(n=t.data(r))&&n.open()}return this.each(n)},close:function(){function n(){var t=e(this),n;(n=t.data(r))&&n.close()}return this.each(n)},val:function(n){function i(){var t=e(this),i;(i=t.data(r))&&i.setVal(n)}function s(e){var t,n;if(t=e.data(r))n=t.getVal();return n}return arguments.length?this.each(i):s(this.first())},destroy:function(){function n(){var t=e(this),n;if(n=t.data(r))n.destroy(),t.removeData(r)}return this.each(n)}},e.fn.typeahead=function(t){var n;return i[t]&&t!=="initialize"?(n=this.filter(function(){return!!e(this).data(r)}),i[t].apply(n,[].slice.call(arguments,1))):i.initialize.apply(this,arguments)},e.fn.typeahead.noConflict=function(){return e.fn.typeahead=t,this}}(),{}}),define("converse-dependencies",["jquery","utils","moment","strophe","strophe.roster","strophe.vcard","strophe.disco","backbone.browserStorage","backbone.overview","jquery.browser","typeahead"],function(e,t,n,r){return _.extend({underscore:_,jQuery:e,otr:undefined,moment:n,utils:t},r)}),function(e,t){typeof define=="function"&&define.amd?define("converse",["converse-dependencies","converse-templates"],function(e,n){return t(n,e.jQuery,e.$iq,e.$msg,e.$pres,e.$build,e.otr?e.otr.DSA:undefined,e.otr?e.otr.OTR:undefined,e.Strophe,e.underscore,e.moment,e.utils,e.SHA1.b64_sha1)}):e.converse=t(templates,jQuery,$iq,$msg,$pres,$build,DSA,OTR,Strophe,_,moment,utils,b64_sha1)}(this,function(e,t,n,r,i,s,o,u,a,f,l,c,h){if(typeof console=="undefined"||typeof console.log=="undefined")console={log:function(){},error:function(){}};f.templateSettings={evaluate:/\{\[([\s\S]+?)\]\}/g,interpolate:/\{\{([\s\S]+?)\}\}/g};var p=function(e,t){return function(n){if(typeof e=="object"){var r=!1;return f.each(e,function(e){r=r||n.get(e).toLowerCase().indexOf(t.toLowerCase())!==-1}),r}if(typeof e=="string")return n.get(e).toLowerCase().indexOf(t.toLowerCase())!==-1;throw new TypeError("contains: wrong attribute type. Must be string or array.")}};p.not=function(e,t){return function(n){return!p(e,t)(n)}},String.prototype.splitOnce=function(e){var t=this.split(e);return[t.shift(),t.join(e)]},t.fn.addEmoticons=function(){return d.visible_toolbar_buttons.emoticons&&this.length>0&&this.each(function(e,n){var r=t(n).html();r=r.replace(/>:\)/g,'<span class="emoticon icon-evil"></span>'),r=r.replace(/:\)/g,'<span class="emoticon icon-smiley"></span>'),r=r.replace(/:\-\)/g,'<span class="emoticon icon-smiley"></span>'),r=r.replace(/;\)/g,'<span class="emoticon icon-wink"></span>'),r=r.replace(/;\-\)/g,'<span class="emoticon icon-wink"></span>'),r=r.replace(/:D/g,'<span class="emoticon icon-grin"></span>'),r=r.replace(/:\-D/g,'<span class="emoticon icon-grin"></span>'),r=r.replace(/:P/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:\-P/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:p/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/:\-p/g,'<span class="emoticon icon-tongue"></span>'),r=r.replace(/8\)/g,'<span class="emoticon icon-cool"></span>'),r=r.replace(/:S/g,'<span class="emoticon icon-confused"></span>'),r=r.replace(/:\\/g,'<span class="emoticon icon-wondering"></span>'),r=r.replace(/:\/ /g,'<span class="emoticon icon-wondering"></span>'),r=r.replace(/>:\(/g,'<span class="emoticon icon-angry"></span>'),r=r.replace(/:\(/g,'<span class="emoticon icon-sad"></span>'),r=r.replace(/:\-\(/g,'<span class="emoticon icon-sad"></span>'),r=r.replace(/:O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/:\-O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/\=\-O/g,'<span class="emoticon icon-shocked"></span>'),r=r.replace(/\(\^.\^\)b/g,'<span class="emoticon icon-thumbs-up"></span>'),r=r.replace(/<3/g,'<span class="emoticon icon-heart"></span>'),t(n).html(r)}),this};var d={plugins:{},templates:e,emit:function(e,n){t(this).trigger(e,n)},once:function(e,n){t(this).one(e,n)},on:function(e,n){t(this).bind(e,n)},off:function(e,n){t(this).unbind(e,n)},refreshWebkit:function(){if(t.browser.webkit){var e=document.getElementById("conversejs");e.style.display="none",e.offsetHeight=e.offsetHeight,e.style.display="block"}}};d.initialize=function(e,d){var v=this;a.log=function(e,t){v.log(e+" "+t,e)},a.error=function(e){v.log(e,"error")},a.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates"),a.addNamespace("MUC_ADMIN",a.NS.MUC+"#admin"),a.addNamespace("MUC_OWNER",a.NS.MUC+"#owner"),a.addNamespace("MUC_REGISTER","jabber:iq:register"),a.addNamespace("MUC_ROOMCONF",a.NS.MUC+"#roomconfig"),a.addNamespace("MUC_USER",a.NS.MUC+"#user"),a.addNamespace("REGISTER","jabber:iq:register"),a.addNamespace("XFORM","jabber:x:data");var m=0;Object.keys(a.Status).forEach(function(e){m=Math.max(m,a.Status[e])}),a.Status.REGIFAIL=m+1,a.Status.REGISTERED=m+2,a.Status.CONFLICT=m+3,a.Status.NOTACCEPTABLE=m+5;var g=0,y=1,b=2,w=3,E={ENTER:13,FORWARD_SLASH:47},S={offline:6,unavailable:5,xa:4,away:3,dnd:2,online:1},x="inactive",T="active",N="composing",C="paused",k="gone";this.TIMEOUTS={PAUSED:2e4,INACTIVE:9e4};var L=typeof crypto!="undefined"&&(typeof crypto.randomBytes=="function"||typeof crypto.getRandomValues=="function"),A=L&&typeof CryptoJS!="undefined"&&typeof u!="undefined"&&typeof o!="undefined",O="opened",M="closed";this.i18n=e.i18n?e.i18n:locales.en;var D=t.proxy(c.__,this),P=c.___;this.default_settings={allow_contact_removal:!0,allow_contact_requests:!0,allow_dragresize:!0,allow_logout:!0,allow_muc:!0,allow_otr:!0,allow_registration:!0,animate:!0,auto_list_rooms:!1,auto_reconnect:!1,auto_subscribe:!1,bosh_service_url:undefined,cache_otr_key:!1,debug:!1,domain_placeholder:D(" e.g. conversejs.org"),default_box_height:400,expose_rid_and_sid:!1,forward_messages:!1,hide_muc_server:!1,hide_offline_users:!1,jid:undefined,keepalive:!1,message_carbons:!1,no_trimming:!1,play_sounds:!1,prebind:!1,prebind_url:null,providers_link:"https://xmpp.net/directory.php",rid:undefined,roster_groups:!1,show_controlbox_by_default:!1,show_only_online_users:!1,show_toolbar:!0,sid:undefined,storage:"session",use_otr_by_default:!1,use_vcards:!0,visible_toolbar_buttons:{emoticons:!0,call:!1,clear:!0,toggle_participants:!0},websocket_url:undefined,xhr_custom_status:!1,xhr_custom_status_url:"",xhr_user_search:!1,xhr_user_search_url:""},f.extend(this,this.default_settings),f.extend(this,f.pick(e,Object.keys(this.default_settings))),e.visible_toolbar_buttons&&f.extend(this.visible_toolbar_buttons,f.pick(e.visible_toolbar_buttons,["emoticons","call","clear","toggle_participants"])),t.fx.off=!this.animate,this.allow_otr=this.allow_otr&&A,this.use_otr_by_default=this.use_otr_by_default&&this.allow_otr;var H={};H[g]="unencrypted",H[y]="unverified",H[b]="verified",H[w]="finished";var B={};B[g]=D("unencrypted"),B[y]=D("unverified"),B[b]=D("verified"),B[w]=D("finished");var j={dnd:D("This contact is busy"),online:D("This contact is online"),offline:D("This contact is offline"),unavailable:D("This contact is unavailable"),xa:D("This contact is away for an extended period"),away:D("This contact is away")},F=D("Click to hide these contacts"),I=D("My contacts"),q=D("Pending contacts"),R=D("Contact requests"),U=D("Ungrouped"),z=D("Contacts"),W=D("Groups"),X={};X[I]=0,X[U]=1,X[R]=2,X[q]=3,this.callback=d||function(){},this.initial_presence_sent=0,this.msg_counter=0,this.playNotification=function(){var e;v.play_sounds&&typeof Audio!="undefined"&&(e=new Audio("sounds/msg_received.ogg"),e.canPlayType("/audio/ogg")?e.play():(e=new Audio("/sounds/msg_received.mp3"),e.play()))},this.giveFeedback=function(e,n){t(".conn-feedback").each(function(r,i){var s=t(i);s.addClass("conn-feedback").text(e),n?s.addClass(n):s.removeClass("error")})},this.log=function(e,t){this.debug&&(t=="error"?console.log("ERROR: "+e):console.log(e))},this.getVCard=function(e,n,r){if(!this.use_vcards){n&&n(e,e);return}v.connection.vcard.get(t.proxy(function(r){var i=t(r).find("vCard"),s=i.find("FN").text(),o=i.find("BINVAL").text(),u=i.find("TYPE").text(),a=i.find("URL").text();if(e){var c=v.roster.get(e);c&&(s=f.isEmpty(s)?c.get("fullname")||e:s,c.save({fullname:s,image_type:u,image:o,url:a,vcard_updated:l().format()}))}n&&n(e,s,o,u,a)},this),e,function(t){var n=v.roster.get(e);n&&n.save({vcard_updated:l().format()}),r&&r(e,t)})},this.reconnect=function(){v.giveFeedback(D("Reconnecting"),"error"),v.prebind?v.prebind_url&&(this.clearSession(),this._tearDown(),this.startNewBOSHSession()):this.connection.connect(this.connection.jid,this.connection.pass,function(e,t){v.onConnect(e,t,!0)},this.connection.wait,this.connection.hold,this.connection.route)},this.renderLoginPanel=function(){v._tearDown();var e=v.chatboxviews.get("controlbox");e.model.set({connected:!1}),e.renderLoginPanel()},this.onConnect=function(e,t,n){e===a.Status.CONNECTED||e===a.Status.ATTACHED?typeof n!="undefined"&&n?(v.log(e===a.Status.CONNECTED?"Reconnected":"Reattached"),v.onReconnected()):(v.log(e===a.Status.CONNECTED?"Connected":"Attached"),v.onConnected()):e===a.Status.DISCONNECTED?v.auto_reconnect?v.reconnect():v.renderLoginPanel():e===a.Status.Error?v.giveFeedback(D("Error"),"error"):e===a.Status.CONNECTING?v.giveFeedback(D("Connecting")):e===a.Status.AUTHENTICATING?v.giveFeedback(D("Authenticating")):e===a.Status.AUTHFAIL?(v.giveFeedback(D("Authentication Failed"),"error"),v.connection.disconnect(D("Authentication Failed"))):e===a.Status.DISCONNECTING&&(v.connection.connected||v.renderLoginPanel(),t&&v.giveFeedback(t,"error"))},this.applyHeightResistance=function(e){if(typeof e=="undefined")return v.default_box_height;var t=10;return e!==v.default_box_height&&Math.abs(e-v.default_box_height)<t?v.default_box_height:e},this.updateMsgCounter=function(){this.msg_counter>0?(document.title.search(/^Messages \(\d+\) /)==-1?document.title="Messages ("+this.msg_counter+") "+document.title:document.title=document.title.replace(/^Messages \(\d+\) /,"Messages ("+this.msg_counter+") "),window.blur(),window.focus()):document.title.search(/^Messages \(\d+\) /)!=-1&&(document.title=document.title.replace(/^Messages \(\d+\) /,""))},this.incrementMsgCounter=function(){this.msg_counter+=1,this.updateMsgCounter()},this.clearMsgCounter=function(){this.msg_counter=0,this.updateMsgCounter()},this.initStatus=function(e){this.xmppstatus=new this.XMPPStatus;var t=h("converse.xmppstatus-"+v.bare_jid);this.xmppstatus.id=t,this.xmppstatus.browserStorage=new Backbone.BrowserStorage[v.storage](t),this.xmppstatus.fetch({success:e,error:e})},this.initSession=function(){this.session=new this.BOSHSession;var e=h("converse.bosh-session");this.session.id=e,this.session.browserStorage=new Backbone.BrowserStorage[v.storage](e),this.session.fetch(),t(window).on("beforeunload",t.proxy(function(){v.connection.authenticated?this.setSession():this.clearSession()},this))},this.clearSession=function(){this.roster.browserStorage._clear(),this.session.browserStorage._clear();var e=v.chatboxes.get("controlbox");e.save({connected:!1})},this.setSession=function(){this.keepalive&&this.session.save({jid:this.connection.jid,rid:this.connection._proto.rid,sid:this.connection._proto.sid})},this.logOut=function(){v.chatboxviews.closeAllChatBoxes(!1),v.clearSession(),v.connection.disconnect()},this.registerGlobalEventHandlers=function(){t(document).click(function(){t(".toggle-otr ul").is(":visible")&&t(".toggle-otr ul",this).slideUp(),t(".toggle-smiley ul").is(":visible")&&t(".toggle-smiley ul",this).slideUp()}),t(document).on("mousemove",t.proxy(function(e){if(!this.resized_chatbox||!this.allow_dragresize)return!0;e.preventDefault(),this.resized_chatbox.resizeChatBox(e)},this)),t(document).on("mouseup",t.proxy(function(e){if(!this.resized_chatbox||!this.allow_dragresize)return!0;e.preventDefault();var t=this.applyHeightResistance(this.resized_chatbox.height);this.connection.connected?this.resized_chatbox.model.save({height:t}):this.resized_chatbox.model.set({height:t}),this.resized_chatbox=null},this)),t(window).on("blur focus",t.proxy(function(e){this.windowState!=e.type&&e.type=="focus"&&v.clearMsgCounter(),this.windowState=e.type},this)),t(window).on("resize",f.debounce(t.proxy(function(e){this.chatboxviews.trimChats()},this),200))},this.onReconnected=function(){this.initStatus(t.proxy(function(){this.registerRosterXHandler(),this.registerPresenceHandler(),this.chatboxes.registerMessageHandler(),v.xmppstatus.sendPresence(),this.giveFeedback(D("Contacts"))},this))},this.enableCarbons=function(){if(!this.message_carbons||this.session.get("carbons_enabled"))return;var e=(new a.Builder("iq",{from:this.connection.jid,id:"enablecarbons",type:"set"})).c("enable",{xmlns:"urn:xmpp:carbons:2"});this.connection.addHandler(t.proxy(function(e){t(e).find("error").length>0?v.log("ERROR: An error occured while trying to enable message carbons."):(this.session.save({carbons_enabled:!0}),v.log("Message carbons have been enabled."))},this),null,"iq",null,"enablecarbons"),this.connection.send(e)},this.onConnected=function(){this.chatboxviews.closeAllChatBoxes(),this.setSession(),this.jid=this.connection.jid,this.bare_jid=a.getBareJidFromJid(this.connection.jid),this.domain=a.getDomainFromJid(this.connection.jid),this.minimized_chats=new v.MinimizedChats({model:this.chatboxes}),this.features=new this.Features,this.enableCarbons(),this.initStatus(t.proxy(function(){this.chatboxes.onConnected(),this.giveFeedback(D("Contacts")),this.callback&&(this.connection.service==="jasmine tests"?this.callback(this):this.callback())},this)),v.emit("ready")},this.OTR=Backbone.Model.extend({getSessionPassphrase:function(){if(v.prebind){var e=h(v.connection.jid),t=window.sessionStorage[e];return typeof t=="undefined"&&(t=Math.floor(Math.random()*4294967295).toString(),window.sessionStorage[e]=t),t}return v.connection.pass},generatePrivateKey:function(){var e=new o,t=v.connection.jid;if(v.cache_otr_key){var n=CryptoJS.lib.PasswordBasedCipher,r=this.getSessionPassphrase();typeof r!="undefined"&&(window.sessionStorage[h(t+"priv_key")]=n.encrypt(CryptoJS.algo.AES,e.packPrivate(),r).toString(),window.sessionStorage[h(t+"instance_tag")]=instance_tag,window.sessionStorage[h(t+"pass_check")]=n.encrypt(CryptoJS.algo.AES,"match",r).toString())}return e}}),this.Message=Backbone.Model,this.Messages=Backbone.Collection.extend({model:v.Message}),this.ChatBox=Backbone.Model.extend({initialize:function(){var e=v.applyHeightResistance(this.get("height"));this.get("box_id")!=="controlbox"?(this.messages=new v.Messages,this.messages.browserStorage=new Backbone.BrowserStorage[v.storage](h("converse.messages"+this.get("jid")+v.bare_jid)),this.save({chat_state:undefined,box_id:h(this.get("jid")),height:e,minimized:this.get("minimized")||!1,num_unread:this.get("num_unread")||0,otr_status:this.get("otr_status")||g,time_minimized:this.get("time_minimized")||l(),time_opened:this.get("time_opened")||l().valueOf(),url:"",user_id:a.getNodeFromJid(this.get("jid"))})):this.set({height:e,time_opened:l(0).valueOf(),num_unread:this.get("num_unread")||0})},maximize:function(){this.save({minimized:!1,time_opened:l().valueOf()})},minimize:function(){this.save({minimized:!0,time_minimized:l().format()})},getSession:function(e){var t=CryptoJS.lib.PasswordBasedCipher,n,r,i,s,a;if(v.cache_otr_key){r=v.otr.getSessionPassphrase();if(typeof r!="undefined"){i=window.sessionStorage[h(this.id+"instance_tag")],s=window.sessionStorage[h(this.id+"priv_key")],a=window.sessionStorage[h(this.connection.jid+"pass_check")];if(s&&i&&typeof a!="undefined"){var f=t.decrypt(CryptoJS.algo.AES,s,r),l=o.parsePrivate(f.toString(CryptoJS.enc.Latin1));if(t.decrypt(CryptoJS.algo.AES,a,r).toString(CryptoJS.enc.Latin1)==="match"){this.trigger("showHelpMessages",[D("Re-establishing encrypted session")]),e({key:l,instance_tag:i});return}}}}this.trigger("showHelpMessages",[D("Generating private key."),D("Your browser might become unresponsive.")],null,!0),setTimeout(function(){e({key:v.otr.generatePrivateKey.apply(this),instance_tag:u.makeInstanceTag()})},500)},updateOTRStatus:function(e){switch(e){case u.CONST.STATUS_AKE_SUCCESS:this.otr.msgstate===u.CONST.MSGSTATE_ENCRYPTED&&this.save({otr_status:y});break;case u.CONST.STATUS_END_OTR:this.otr.msgstate===u.CONST.MSGSTATE_FINISHED?this.save({otr_status:w}):this.otr.msgstate===u.CONST.MSGSTATE_PLAINTEXT&&this.save({otr_status:g})}},onSMP:function(e,t){switch(e){case"question":this.otr.smpSecret(prompt(D("Authentication request from %1$s\n\nYour chat contact is attempting to verify your identity, by asking you the question below.\n\n%2$s",[this.get("fullname"),t])));break;case"trust":t===!0?this.save({otr_status:b}):(this.trigger("showHelpMessages",[D("Could not verify this user's identify.")],"error"),this.save({otr_status:y}));break;default:throw new TypeError("ChatBox.onSMP: Unknown type for SMP")}},initiateOTR:function(e){this.save({otr_status:g});var n=this.getSession(t.proxy(function(n){this.otr=new u({fragment_size:140,send_interval:200,priv:n.key,instance_tag:n.instance_tag,debug:this.debug}),this.otr.on("status",t.proxy(this.updateOTRStatus,this)),this.otr.on("smp",t.proxy(this.onSMP,this)),this.otr.on("ui",t.proxy(function(e){this.trigger("showReceivedOTRMessage",e)},this)),this.otr.on("io",t.proxy(function(e){this.trigger("sendMessageStanza",e)},this)),this.otr.on("error",t.proxy(function(e){this.trigger("showOTRError",e)},this)),this.trigger("showHelpMessages",[D("Exchanging private key with contact.")]),e?this.otr.receiveMsg(e):this.otr.sendQueryMsg()},this))},endOTR:function(){this.otr&&this.otr.endOtr(),this.save({otr_status:g})},createMessage:function(e){var t=e.children("body").text(),n=e.find("delay").length>0,r=this.get("fullname"),i=e.attr("type")==="groupchat",s=e.attr("id"),o=e.find(N).length&&N||e.find(C).length&&C||e.find(x).length&&x||e.find(T).length&&T||e.find(k).length&&k,u,c,h,p,d;i?p=a.unescapeNode(a.getResourceFromJid(e.attr("from"))):p=a.getBareJidFromJid(e.attr("from")),r=(f.isEmpty(r)?p:r).split(" ")[0],n?(u=e.find("delay").attr("stamp"),c=u):c=l().format(),i&&p===this.get("nick")||!i&&p==v.bare_jid?h="me":h="them",t?d=this.messages.create:d=this.messages.add,this.messages.create({chat_state:o,delayed:n,fullname:r,message:t||undefined,msgid:s,sender:h,time:c})},receiveMessage:function(e){var t=e.children("body"),n=t.length>0?t.text():undefined;if(!n||!v.allow_otr)return this.createMessage(e);n.match(/^\?OTRv23?/)?this.initiateOTR(n):f.contains([y,b],this.get("otr_status"))?this.otr.receiveMsg(n):n.match(/^\?OTR/)?this.otr?this.otr.receiveMsg(n):this.initiateOTR(n):this.createMessage(e)}}),this.ChatBoxView=Backbone.View.extend({length:200,tagName:"div",className:"chatbox",is_chatroom:!1,events:{"click .close-chatbox-button":"close","click .toggle-chatbox-button":"minimize","keypress textarea.chat-textarea":"keyPressed","focus textarea.chat-textarea":"chatBoxFocused","blur textarea.chat-textarea":"chatBoxBlurred","click .toggle-smiley":"toggleEmoticonMenu","click .toggle-smiley ul li":"insertEmoticon","click .toggle-clear":"clearMessages","click .toggle-otr":"toggleOTRMenu","click .start-otr":"startOTRFromToolbar","click .end-otr":"endOTR","click .auth-otr":"authOTR","click .toggle-call":"toggleCall","mousedown .dragresize-tm":"onDragResizeStart"},initialize:function(){this.model.messages.on("add",this.onMessageAdded,this),this.model.on("show",this.show,this),this.model.on("destroy",this.hide,this),this.model.on("change:chat_state",this.sendChatState,this),this.model.on("change:chat_status",this.onChatStatusChanged,this),this.model.on("change:image",this.renderAvatar,this),this.model.on("change:otr_status",this.onOTRStatusChanged,this),this.model.on("change:minimized",this.onMinimizedChanged,this),this.model.on("change:status",this.onStatusChanged,this),this.model.on("showOTRError",this.showOTRError,this),this.model.on("showHelpMessages",this.showHelpMessages,this),this.model.on("sendMessageStanza",this.sendMessageStanza,this),this.model.on("showSentOTRMessage",function(e){this.showMessage({message:e,sender:"me"})},this),this.model.on("showReceivedOTRMessage",function(e){this.showMessage({message:e,sender:"them"})},this),this.updateVCard(),this.$el.insertAfter(v.chatboxviews.get("controlbox").$el),this.hide().render().model.messages.fetch({add:!0}),(f.contains([y,b],this.model.get("otr_status"))||v.use_otr_by_default)&&this.model.initiateOTR()},render:function(){return this.$el.attr("id",this.model.get("box_id")).html(v.templates.chatbox(f.extend(this.model.toJSON(),{show_toolbar:v.show_toolbar,label_personal_message:D("Personal message")}))),this.renderToolbar().renderAvatar(),v.emit("chatBoxOpened",this),setTimeout(function(){v.refreshWebkit()},50),this.showStatusMessage()},initDragResize:function(){return this.prev_pageY=0,v.connection.connected&&(this.height=this.model.get("height")),this},showStatusNotification:function(e,n){var r=this.$el.find(".chat-content");n||r.find("div.chat-event").remove(),r.append(t('<div class="chat-event"></div>').text(e)),this.scrollDown()},clearChatRoomMessages:function(e){typeof e!="undefined"&&e.stopPropagation();var t=confirm(D("Are you sure you want to clear the messages from this room?"));return t===!0&&this.$el.find(".chat-content").empty(),this},showMessage:function(e){var n=this.$el.find(".chat-content"),r=l(e.time)||l,i=e.message,s=i.match(/^\/(.*?)(?: (.*))?$/),o=this.model.get("fullname")||e.fullname,u=e.delayed&&"delayed"||"",a,f;s&&s[1]==="me"?(i=i.replace(/^\/me/,""),a=v.templates.action,f=o):(a=v.templates.message,f=e.sender==="me"&&D("me")||o),n.find("div.chat-event").remove(),this.is_chatroom&&e.sender=="them"&&(new RegExp("\\b"+this.model.get("nick")+"\\b")).test(i)&&(u+=" mentioned");var c=a({sender:e.sender,time:r.format("hh:mm"),username:f,message:"",extra_classes:u});n.append(t(c).children(".chat-message-content").first().text(i).addHyperlinks().addEmoticons().parent()),this.scrollDown()},showHelpMessages:function(e,n,r){var i=this.$el.find(".chat-content"),s,o=e.length;for(s=0;s<o;s++)i.append(t('<div class="chat-'+(n||"info")+'">'+e[s]+"</div>"));return r===!0?i.append('<span class="spinner"/>'):r===!1&&i.find("span.spinner").remove(),this.scrollDown()},onMessageAdded:function(e){var t=e.get("time"),n=this.model.messages.pluck("time"),r,i,s,o,u,a;i=f.indexOf(n,t)-1,i>=0&&(r=this.model.messages.at(i),o=l(r.get("time")),o.isBefore(t,"day")&&(s=l(t),this.$el.find(".chat-content").append(v.templates.new_day({isodate:s.format("YYYY-MM-DD"),datestring:s.format("dddd MMM Do YYYY")}))));if(!e.get("message")){if(e.get("chat_state")===N){this.showStatusNotification(e.get("fullname")+" "+D("is typing"));return}if(e.get("chat_state")===C){this.showStatusNotification(e.get("fullname")+" "+D("has stopped typing"));return}if(f.contains([x,T],e.get("chat_state"))){this.$el.find(".chat-content div.chat-event").remove();return}if(e.get("chat_state")===k){this.showStatusNotification(e.get("fullname")+" "+D("has gone away"));return}}else this.showMessage(f.clone(e.attributes));e.get("sender")!="me"&&v.windowState=="blur"&&v.incrementMsgCounter(),this.scrollDown(),!this.model.get("minimized")&&!this.$el.is(":visible")&&this.show()},sendMessageStanza:function(e){var t=(new Date).getTime(),n=this.model.get("jid"),i=r({from:v.connection.jid,to:n,type:"chat",id:t}).c("body").t(e).up().c(T,{xmlns:a.NS.CHATSTATES});v.connection.send(i);if(v.forward_messages){var s=r({to:v.bare_jid,type:"chat",id:t}).c("forwarded",{xmlns:"urn:xmpp:forward:0"}).c("delay",{xmns:"urn:xmpp:delay",stamp:t}).up().cnode(i.tree());v.connection.send(s)}},sendMessage:function(e){var t=e.replace(/^\s*/,"").match(/^\/(.*)\s*$/),n;if(t){if(t[1]==="clear")return this.clearMessages();if(t[1]==="help"){n=["<strong>/help</strong>:"+D("Show this menu")+"","<strong>/me</strong>:"+D("Write in the third person")+"","<strong>/clear</strong>:"+D("Remove messages")+""],this.showHelpMessages(n);return}if(v.allow_otr&&t[1]==="endotr")return this.endOTR();if(v.allow_otr&&t[1]==="otr")return this.model.initiateOTR()}if(f.contains([y,b],this.model.get("otr_status")))this.model.otr.sendMsg(e),this.model.trigger("showSentOTRMessage",e);else{var r=v.xmppstatus.get("fullname");r=f.isEmpty(r)?v.bare_jid:r,this.model.messages.create({fullname:r,sender:"me",time:l().format(),message:e}),this.sendMessageStanza(e)}},sendChatState:function(){v.connection.send(r({to:this.model.get("jid"),type:"chat"}).c(this.model.get("chat_state"),{xmlns:a.NS.CHATSTATES}))},setChatState:function(e,n){return typeof this.chat_state_timeout!="undefined"&&(clearTimeout(this.chat_state_timeout),delete this.chat_state_timeout),e===N?this.chat_state_timeout=setTimeout(t.proxy(this.setChatState,this),v.TIMEOUTS.PAUSED,C):e===C&&(this.chat_state_timeout=setTimeout(t.proxy(this.setChatState,this),v.TIMEOUTS.INACTIVE,x)),!n&&this.model.get("chat_state")!=e&&this.model.set("chat_state",e),this},keyPressed:function(e){var n=t(e.target),r;e.keyCode==E.ENTER?(e.preventDefault(),r=n.val(),n.val("").focus(),r!==""&&(this.model.get("chatroom")?this.sendChatRoomMessage(r):this.sendMessage(r),v.emit("messageSend",r)),this.setChatState(T)):this.model.get("chatroom")||this.setChatState(N,e.keyCode==E.FORWARD_SLASH)},chatBoxFocused:function(e){e.preventDefault(),this.setChatState(T)},chatBoxBlurred:function(e){e.preventDefault(),this.setChatState(x)},onDragResizeStart:function(e){if(!v.allow_dragresize)return!0;this.height=this.$el.children(".box-flyout").height(),v.resized_chatbox=this,this.prev_pageY=e.pageY},setChatBoxHeight:function(e){this.model.get("minimized")||(this.$el.children(".box-flyout")[0].style.height=v.applyHeightResistance(e)+"px")},resizeChatBox:function(e){var t=e.pageY-this.prev_pageY;if(!t)return;this.height-=t,this.prev_pageY=e.pageY,this.setChatBoxHeight(this.height)},clearMessages:function(e){e&&e.preventDefault&&e.preventDefault();var t=confirm(D("Are you sure you want to clear the messages from this chat box?"));return t===!0&&(this.$el.find(".chat-content").empty(),this.model.messages.reset(),this.model.messages.browserStorage._clear()),this},insertEmoticon:function(e){e.stopPropagation(),this.$el.find(".toggle-smiley ul").slideToggle(200);var n=this.$el.find("textarea.chat-textarea"),r=n.val(),i=t(e.target);i=i.is("a")?i:i.children("a"),r&&r[r.length-1]!==" "&&(r+=" "),n.focus().val(r+i.data("emoticon")+" ")},toggleEmoticonMenu:function(e){e.stopPropagation(),this.$el.find(".toggle-smiley ul").slideToggle(200)},toggleOTRMenu:function(e){e.stopPropagation(),this.$el.find(".toggle-otr ul").slideToggle(200)},showOTRError:function(e){e=="Message cannot be sent at this time."?this.showHelpMessages([D("Your message could not be sent")],"error"):e=="Received an unencrypted message."?this.showHelpMessages([D("We received an unencrypted message")],"error"):e=="Received an unreadable encrypted message."?this.showHelpMessages([D("We received an unreadable encrypted message")],"error"):this.showHelpMessages(["Encryption error occured: "+e],"error"),console.log("OTR ERROR:"+e)},startOTRFromToolbar:function(e){t(e.target).parent().parent().slideUp(),e.stopPropagation(),this.model.initiateOTR()},endOTR:function(e){typeof e!="undefined"&&(e.preventDefault(),e.stopPropagation()),this.model.endOTR()},authOTR:function(e){var n=t(e.target).data().scheme,r,i,s;n==="fingerprint"?(r=confirm(D("Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.",[this.model.get("fullname"),v.xmppstatus.get("fullname")||v.bare_jid,this.model.otr.priv.fingerprint(),this.model.otr.their_priv_pk.fingerprint()])),r===!0?this.model.save({otr_status:b}):this.model.save({otr_status:y})):n==="smp"?(alert(D("You will be prompted to provide a security question and then an answer to that question.\n\nYour contact will then be prompted the same question and if they type the exact same answer (case sensitive), their identity will be verified.")),i=prompt(D("What is your security question?")),i&&(s=prompt(D("What is the answer to the security question?")),this.model.otr.smpSecret(s,i))):this.showHelpMessages([D("Invalid authentication scheme provided")],"error")},toggleCall:function(e){e.stopPropagation(),v.emit("callButtonClicked",{connection:v.connection,model:this.model})},onChatStatusChanged:function(e){var t=e.get("chat_status"),n=e.get("fullname");n=f.isEmpty(n)?e.get("jid"):n,this.$el.is(":visible")&&(t==="offline"?this.showStatusNotification(n+" "+D("has gone offline")):t==="away"?this.showStatusNotification(n+" "+D("has gone away")):t==="dnd"?this.showStatusNotification(n+" "+D("is busy")):t==="online"&&this.$el.find("div.chat-event").remove()),v.emit("contactStatusChanged",e.attributes,e.get("chat_status"))},onStatusChanged:function(e){this.showStatusMessage(),v.emit("contactStatusMessageChanged",e.attributes,e.get("status"))},onOTRStatusChanged:function(e){this.renderToolbar().informOTRChange()},onMinimizedChanged:function(e){e.get("minimized")?this.hide():this.maximize()},showStatusMessage:function(e){return e=e||this.model.get("status"),typeof e=="string"&&this.$el.find("p.user-custom-message").text(e).attr("title",e),this},close:function(e){return e&&e.preventDefault&&e.preventDefault(),v.connection.connected?(this.model.destroy(),this.setChatState(x)):this.hide(),v.emit("chatBoxClosed",this),this},maximize:function(){this.$el.insertAfter(v.chatboxviews.get("controlbox").$el).show("fast",t.proxy(function(){v.refreshWebkit(),this.setChatState(T).focus(),v.emit("chatBoxMaximized",this)},this))},minimize:function(e){e&&e.preventDefault&&e.preventDefault(),this.setChatState(x).model.minimize(),this.$el.hide("fast",v.refreshwebkit),v.emit("chatBoxMinimized",this)},updateVCard:function(){var e=this.model.get("jid"),n=v.roster.get(e);n&&!n.get("vcard_updated")&&v.getVCard(e,t.proxy(function(e,t,n,r,i){this.model.save({fullname:t||e,url:i,image_type:r,image:n})},this),t.proxy(function(e){v.log("ChatBoxView.initialize: An error occured while fetching vcard")},this))},informOTRChange:function(){var e=this.model.toJSON(),t=[];return e.otr_status==g?t.push(D("Your messages are not encrypted anymore")):e.otr_status==y?t.push(D("Your messages are now encrypted but your contact's identity has not been verified.")):e.otr_status==b?t.push(D("Your contact's identify has been verified.")):e.otr_status==w&&t.push(D("Your contact has ended encryption on their end, you should do the same.")),this.showHelpMessages(t,"info",!1)},renderToolbar:function(){if(v.show_toolbar){var e=this.model.toJSON();e.otr_status==g?e.otr_tooltip=D("Your messages are not encrypted. Click here to enable OTR encryption."):e.otr_status==y?e.otr_tooltip=D("Your messages are encrypted, but your contact has not been verified."):e.otr_status==b?e.otr_tooltip=D("Your messages are encrypted and your contact verified."):e.otr_status==w&&(e.otr_tooltip=D("Your contact has closed their end of the private session, you should do the same")),this.$el.find(".chat-toolbar").html(v.templates.toolbar(f.extend(e,{FINISHED:w,UNENCRYPTED:g,UNVERIFIED:y,VERIFIED:b,allow_otr:v.allow_otr&&!this.is_chatroom,label_clear:D("Clear all messages"),label_end_encrypted_conversation:D("End encrypted conversation"),label_hide_participants:D("Hide the list of participants"),label_refresh_encrypted_conversation:D("Refresh encrypted conversation"),label_start_call:D("Start a call"),label_start_encrypted_conversation:D("Start encrypted conversation"),label_verify_with_fingerprints:D("Verify with fingerprints"),label_verify_with_smp:D("Verify with SMP"),label_whats_this:D("What's this?"),otr_status_class:H[e.otr_status],otr_translated_status:B[e.otr_status],show_call_button:v.visible_toolbar_buttons.call,show_clear_button:v.visible_toolbar_buttons.clear,show_emoticons:v.visible_toolbar_buttons.emoticons,show_participants_toggle:this.is_chatroom&&v.visible_toolbar_buttons.toggle_participants})))}return this},renderAvatar:function(){if(!this.model.get("image"))return;var e="data:"+this.model.get("image_type")+";base64,"+this.model.get("image"),n=t('<canvas height="32px" width="32px" class="avatar"></canvas>').get(0);if(!n.getContext||!n.getContext("2d"))return this;var r=n.getContext("2d"),i=new Image;return i.onload=function(){var e=i.width/i.height;r.drawImage(i,0,0,35*e,35)},i.src=e,this.$el.find(".chat-title").before(n),this},focus:function(){return this.$el.find(".chat-textarea").focus(),v.emit("chatBoxFocused",this),this},hide:function(){return this.$el.is(":visible")&&this.$el.css("opacity")=="1"&&(this.$el.hide(),v.refreshWebkit()),this},show:function(e){return this.$el.is(":visible")&&this.$el.css("opacity")=="1"?this.focus():(this.$el.fadeIn(e),v.connection.connected&&(this.model.save(),this.initDragResize()),this.setChatState(T),this.focus())},scrollDown:function(){var e=this.$(".chat-content");return e.is(":visible")&&e.scrollTop(e[0].scrollHeight),this}}),this.ContactsPanel=Backbone.View.extend({tagName:"div",className:"controlbox-pane",id:"users",events:{"click a.toggle-xmpp-contact-form":"toggleContactForm","submit form.add-xmpp-contact":"addContactFromForm","submit form.search-xmpp-contact":"searchContacts","click a.subscribe-to-user":"addContactFromList"},initialize:function(e){e.$parent.append(this.$el),this.$tabs=e.$parent.parent().find("#controlbox-tabs")},render:function(){var e,t=v.templates.contacts_panel({label_online:D("Online"),label_busy:D("Busy"),label_away:D("Away"),label_offline:D("Offline"),label_logout:D("Log out"),allow_logout:v.allow_logout});return this.$tabs.append(v.templates.contacts_tab({label_contacts:z})),v.xhr_user_search?e=v.templates.search_contact({label_contact_name:D("Contact name"),label_search:D("Search")}):e=v.templates.add_contact_form({label_contact_username:D("Contact username"),label_add:D("Add")}),v.allow_contact_requests&&(t+=v.templates.add_contact_dropdown({label_click_to_chat:D("Click to add new chat contacts"),label_add_contact:D("Add a contact")})),this.$el.html(t),this.$el.find(".search-xmpp ul").append(e),this},toggleContactForm:function(e){e.preventDefault(),this.$el.find(".search-xmpp").toggle("fast",function(){t(this).is(":visible")&&t(this).find("input.username").focus()})},searchContacts:function(e){e.preventDefault(),t.getJSON(v.xhr_user_search_url+"?q="+t(e.target).find("input.username").val(),function(e){var n=t(".search-xmpp ul");n.find("li.found-user").remove(),n.find("li.chat-info").remove(),e.length||n.append('<li class="chat-info">'+D("No users found")+"</li>"),t(e).each(function(e,r){n.append(t('<li class="found-user"></li>').append(t('<a class="subscribe-to-user" href="#" title="'+D("Click to add as a chat contact")+'"></a>').attr("data-recipient",a.escapeNode(r.id)+"@"+v.domain).text(r.fullname)))})})},addContactFromForm:function(e){e.preventDefault();var n=t(e.target).find("input"),r=n.val();if(!r){n.addClass("error");return}this.addContact(r),t(".search-xmpp").hide()},addContactFromList:function(e){e.preventDefault();var n=t(e.target),r=n.attr("data-recipient"),i=n.text();this.addContact(r,i),n.parent().remove(),t(".search-xmpp").hide()},addContact:function(e,t){t=f.isEmpty(t)?e:t,v.connection.roster.add(e,t,[],function(t){v.connection.roster.subscribe(e,null,v.xmppstatus.get("fullname"))})}}),this.RoomsPanel=Backbone.View.extend({tagName:"div",className:"controlbox-pane",id:"chatrooms",events:{"submit form.add-chatroom":"createChatRoom","click input#show-rooms":"showRooms","click a.open-room":"createChatRoom","click a.room-info":"showRoomInfo","change input[name=server]":"setDomain","change input[name=nick]":"setNick"},initialize:function(e){this.$parent=e.$parent,this.model.on("change:muc_domain",this.onDomainChange,this),this.model.on("change:nick",this.onNickChange,this)},render:function(){return this.$parent.append(this.$el.html(v.templates.room_panel({server_input_type:v.hide_muc_server&&"hidden"||"text",server_label_global_attr:v.hide_muc_server&&" hidden"||"",label_room_name:D("Room name"),label_nickname:D("Nickname"),label_server:D("Server"),label_join:D("Join Room"),label_show_rooms:D("Show rooms")})).hide()),this.$tabs=this.$parent.parent().find("#controlbox-tabs"),this.$tabs.append(v.templates.chatrooms_tab({label_rooms:D("Rooms")})),this},onDomainChange:function(e){var t=this.$el.find("input.new-chatroom-server");t.val(e.get("muc_domain")),v.auto_list_rooms&&this.updateRoomsList()},onNickChange:function(e){var t=this.$el.find("input.new-chatroom-nick");t.val(e.get("nick"))},informNoRoomsFound:function(){var e=this.$el.find("#available-chatrooms");e.html("<dt>"+D("No rooms on %1$s",this.model.get("muc_domain"))+"</dt>"),t("input#show-rooms").show().siblings("span.spinner").remove()},onRoomsFound:function(e){var n,r,i,s,o=this,u=this.$el.find("#available-chatrooms");this.rooms=t(e).find("query").find("item");if(this.rooms.length){u.html("<dt>"+D("Rooms on %1$s",this.model.get("muc_domain"))+"</dt>"),s=document.createDocumentFragment();for(i=0;i<this.rooms.length;i++)n=a.unescapeNode(t(this.rooms[i]).attr("name")||t(this.rooms[i]).attr("jid")),r=t(this.rooms[i]).attr("jid"),s.appendChild(t(v.templates.room_item({name:n,jid:r,open_title:D("Click to open this room"),info_title:D("Show more information on this room")}))[0]);u.append(s),t("input#show-rooms").show().siblings("span.spinner").remove()}else this.informNoRoomsFound();return!0},updateRoomsList:function(){v.connection.sendIQ(n({to:this.model.get("muc_domain"),from:v.connection.jid,type:"get"}).c("query",{xmlns:a.NS.DISCO_ITEMS}),this.onRoomsFound.bind(this),this.informNoRoomsFound.bind(this))},showRooms:function(e){var n=this.$el.find("#available-chatrooms"),r=this.$el.find("input.new-chatroom-server"),i=r.val();if(!i){r.addClass("error");return}this.$el.find("input.new-chatroom-name").removeClass("error"),r.removeClass("error"),n.empty(),t("input#show-rooms").hide().after('<span class="spinner"/>'),this.model.save({muc_domain:i}),this.updateRoomsList()},showRoomInfo:function(e){var n=e.target,r=t(n).parent("dd"),i=r.find("div.room-info");i.length?i.remove():(r.find("span.spinner").remove(),r.append('<span class="spinner hor_centered"/>'),v.connection.disco.info(t(n).attr("data-room-jid"),null,t.proxy(function(e){var n=t(e);r.find("span.spinner").replaceWith(v.templates.room_description({desc:n.find('field[var="muc#roominfo_description"] value').text(),occ:n.find('field[var="muc#roominfo_occupants"] value').text(),hidden:n.find('feature[var="muc_hidden"]').length,membersonly:n.find('feature[var="muc_membersonly"]').length,moderated:n.find('feature[var="muc_moderated"]').length,nonanonymous:n.find('feature[var="muc_nonanonymous"]').length,open:n.find('feature[var="muc_open"]').length,passwordprotected:n.find('feature[var="muc_passwordprotected"]').length,persistent:n.find('feature[var="muc_persistent"]').length,publicroom:n.find('feature[var="muc_public"]').length,semianonymous:n.find('feature[var="muc_semianonymous"]').length,temporary:n.find('feature[var="muc_temporary"]').length,unmoderated:n.find('feature[var="muc_unmoderated"]').length,label_desc:D("Description:"),label_occ:D("Occupants:"),label_features:D("Features:"),label_requires_auth:D("Requires authentication"),label_hidden:D("Hidden"),label_requires_invite:D("Requires an invitation"),label_moderated:D("Moderated"),label_non_anon:D("Non-anonymous"),label_open_room:D("Open room"),label_permanent_room:D("Permanent room"),label_public:D("Public"),label_semi_anon:f("Semi-anonymous"),label_temp_room:f("Temporary room"),label_unmoderated:D("Unmoderated")}))},this)))},createChatRoom:function(e){e.preventDefault();var n,r,i,s,o,u=this.$el.find("input.new-chatroom-nick"),f=u.val(),l;f?u.removeClass("error"):u.addClass("error");if(e.type==="click")o=t(e.target).attr("data-room-jid");else{r=this.$el.find("input.new-chatroom-name"),s=this.$el.find("input.new-chatroom-server"),i=s.val(),n=r.val().trim().toLowerCase(),r.val("");if(!n||!i){n||r.addClass("error"),i||s.addClass("error");return}o=a.escapeNode(n)+"@"+i,r.removeClass("error"),s.removeClass("error"),this.model.save({muc_domain:i})}if(!f)return;l=v.chatboxviews.showChat({id:o,jid:o,name:a.unescapeNode(a.getNodeFromJid(o)),nick:f,chatroom:!0,box_id:h(o)})},setDomain:function(e){this.model.save({muc_domain:e.target.value})},setNick:function(e){this.model.save({nick:e.target.value})}}),this.ControlBoxView=v.ChatBoxView.extend({tagName:"div",className:"chatbox",id:"controlbox",events:{"click a.close-chatbox-button":"close","click ul#controlbox-tabs li a":"switchTab","mousedown .dragresize-tm":"onDragResizeStart"},initialize:function(){this.$el.insertAfter(v.controlboxtoggle.$el),this.model.on("change:connected",this.onConnected,this),this.model.on("destroy",this.hide,this),this.model.on("hide",this.hide,this),this.model.on("show",this.show,this),this.model.on("change:closed",this.ensureClosedState,this),this.render(),this.model.get("connected")&&this.initRoster(),this.model.get("closed")?this.hide():this.show()},giveFeedback:function(e,t){var n=this.$(".conn-feedback");n.addClass("conn-feedback").text(e),t&&n.addClass(t)},onConnected:function(){if(this.model.get("connected")){this.render().initRoster(),v.features.off("add",this.featureAdded,this),v.features.on("add",this.featureAdded,this);var e=v.features.findWhere({"var":"http://jabber.org/protocol/muc"});e&&this.featureAdded(e)}},initRoster:function(){v.roster=new v.RosterContacts,v.roster.browserStorage=new Backbone.BrowserStorage[v.storage](h("converse.contacts-"+v.bare_jid));var e=new v.RosterGroups;return e.browserStorage=new Backbone.BrowserStorage[v.storage](h("converse.roster.groups"+v.bare_jid)),v.rosterview=new v.RosterView({model:e}),this.contactspanel.$el.append(v.rosterview.$el),v.rosterview.render().fetch().update(),this},render:function(){return!v.connection.connected||!v.connection.authenticated||v.connection.disconnecting?this.renderLoginPanel():(!this.contactspanel||!this.contactspanel.$el.is(":visible"))&&this.renderContactsPanel(),this},renderLoginPanel:function(){var e=this.$(".conn-feedback");this.$el.html(v.templates.controlbox(this.model.toJSON()));var t={$parent:this.$el.find(".controlbox-panes"),model:this};return this.loginpanel?(this.loginpanel.delegateEvents().initialize(t),v.allow_registration&&this.registerpanel.delegateEvents().initialize(t)):(this.loginpanel=new v.LoginPanel(t),v.allow_registration&&(this.registerpanel=new v.RegisterPanel(t))),this.loginpanel.render(),v.allow_registration&&this.registerpanel.render().$el.hide(),this.initDragResize(),e.length&&this.$(".conn-feedback").replaceWith(e),this},renderContactsPanel:function(){var e;this.$el.html(v.templates.controlbox(this.model.toJSON())),this.contactspanel=new v.ContactsPanel({$parent:this.$el.find(".controlbox-panes")}),this.contactspanel.render(),v.xmppstatusview=new v.XMPPStatusView({model:v.xmppstatus}),v.xmppstatusview.render(),v.allow_muc&&(this.roomspanel=new v.RoomsPanel({$parent:this.$el.find(".controlbox-panes"),model:new(Backbone.Model.extend({id:h("converse.roomspanel"+v.bare_jid),browserStorage:new Backbone.BrowserStorage[v.storage](h("converse.roomspanel"+v.bare_jid))}))}),this.roomspanel.render().model.fetch(),this.roomspanel.model.get("nick")||this.roomspanel.model.save({nick:a.getNodeFromJid(v.bare_jid)})),this.initDragResize()},close:function(e){return e&&e.preventDefault&&e.preventDefault(),v.connection.connected?this.model.save({closed:!0}):this.model.trigger("hide"),v.emit("controlBoxClosed",this),this},ensureClosedState:function(){this.model.get("closed")?this.hide():this.show()},hide:function(e){return this.$el.hide("fast",function(){v.refreshWebkit(),v.emit("chatBoxClosed",this),v.controlboxtoggle.show(function(){typeof e=="function"&&e()})}),this},show:function(){return v.controlboxtoggle.hide(t.proxy(function(){this.$el.show("fast",function(){v.rosterview&&v.rosterview.update(),v.refreshWebkit()}.bind(this)),v.emit("controlBoxOpened",this)},this)),this},featureAdded:function(e){if(e.get("var")=="http://jabber.org/protocol/muc"&&v.allow_muc){this.roomspanel.model.save({muc_domain:e.get("from")});var t=this.$el.find("input.new-chatroom-server");t.is(":focus")||t.val(this.roomspanel.model.get("muc_domain"))}},switchTab:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target),r=n.parent().siblings("li").children("a"),i=t(n.attr("href"));return t(r.attr("href")).hide(),r.removeClass("current"),n.addClass("current"),i.show(),this},showHelpMessages:function(e){return}}),this.ChatRoomOccupant=Backbone.Model,this.ChatRoomOccupantView=Backbone.View.extend({tagName:"li",initialize:function(){this.model.on("add",this.render,this),this.model.on("change",this.render,this),this.model.on("destroy",this.destroy,this)},render:function(){var e=v.templates.occupant(f.extend(this.model.toJSON(),{desc_moderator:D("This user is a moderator"),desc_participant:D("This user can send messages in this room"),desc_visitor:D("This user can NOT send messages in this room")}));return this.$el.replaceWith(e),this.setElement(e,!0),this},destroy:function(){this.$el.remove()}}),this.ChatRoomOccupants=Backbone.Collection.extend({model:v.ChatRoomOccupant}),this.ChatRoomOccupantsView=Backbone.Overview.extend({tagName:"div",className:"participants",initialize:function(){this.model.on("add",this.onOccupantAdded,this)},render:function(){return this.$el.html(v.templates.chatroom_sidebar({label_invitation:D("Invite..."),label_occupants:D("Occupants")})),this.initInviteWidget()},onOccupantAdded:function(e){var t=this.get(e.get("id"));t?(delete t.model,t.model=e,t.initialize()):t=this.add(e.get("id"),new v.ChatRoomOccupantView({model:e})),this.$(".participant-list").append(t.render().$el)},parsePresence:function(e){var t=a.getResourceFromJid(e.getAttribute("from")),n={id:t,nick:t,type:e.getAttribute("type"),states:[]};return f.each(e.childNodes,function(e){switch(e.nodeName){case"status":n.status=e.textContent||null;break;case"show":n.show=e.textContent||null;break;case"x":e.getAttribute("xmlns")===a.NS.MUC_USER&&f.each(e.childNodes,function(e){switch(e.nodeName){case"item":n.affiliation=e.getAttribute("affiliation"),n.role=e.getAttribute("role"),n.jid=e.getAttribute("jid"),n.nick=e.getAttribute("nick")||n.nick;break;case"status":e.getAttribute("code")&&n.states.push(e.getAttribute("code"))}})}}),n},updateOccupantsOnPresence:function(e){var t,n=this.parsePresence(e);switch(n.type){case"error":return!0;case"unavailable":t=this.model.get(n.id),t&&t.destroy();break;default:t=this.model.get(n.id),t?t.save(n):this.model.create(n)}},initInviteWidget:function(){var e=this.$("input.invited-contact");return e.typeahead({minLength:1,highlight:!0},{name:"contacts-dataset",source:function(e,t){var n=[];f.each(v.roster.filter(p(["fullname","jid"],e)),function(e){n.push({value:e.get("fullname"),jid:e.get("jid")})}),t(n)},templates:{suggestion:f.template('<p data-jid="{{jid}}">{{value}}</p>')}}),e.on("typeahead:selected",t.proxy(function(e,n,r){var i=prompt(D(P('You are about to invite %1$s to the chat room "%2$s". '),n.value,this.model.get("id"))+D("You may optionally include a message, explaining the reason for the invitation."));i!==null&&this.chatroomview.directInvite(n.jid,i),t(e.target).typeahead("val","")},this)),this}}),this.ChatRoomView=v.ChatBoxView.extend({length:300,tagName:"div",className:"chatroom",events:{"click .close-chatbox-button":"close","click .toggle-chatbox-button":"minimize","click .configure-chatroom-button":"configureChatRoom","click .toggle-smiley":"toggleEmoticonMenu","click .toggle-smiley ul li":"insertEmoticon","click .toggle-clear":"clearChatRoomMessages","click .toggle-participants a":"toggleOccupants","keypress textarea.chat-textarea":"keyPressed","mousedown .dragresize-tm":"onDragResizeStart"},is_chatroom:!0,initialize:function(){this.model.messages.on("add",this.onMessageAdded,this),this.model.on("change:minimized",function(e){e.get("minimized")?this.hide():this.maximize()},this),this.model.on("destroy",function(e,t,n){this.hide().leave()},this),this.occupantsview=new v.ChatRoomOccupantsView({model:new v.ChatRoomOccupants({nick:this.model.get("nick")})});var e=h("converse.occupants"+v.bare_jid+this.model.get("id")+this.model.get("nick"));this.occupantsview.model.id=e,this.occupantsview.model.browserStorage=new Backbone.BrowserStorage[v.storage](e),this.occupantsview.chatroomview=this,this.render(),this.occupantsview.model.fetch({add:!0}),this.join(null),v.emit("chatRoomOpened",this),this.$el.insertAfter(v.chatboxviews.get("controlbox").$el),this.model.messages.fetch({add:!0}),this.model.get("minimized")?this.hide():this.show()},render:function(){return this.$el.attr("id",this.model.get("box_id")).html(v.templates.chatroom(this.model.toJSON())),this.renderChatArea(),setTimeout(function(){v.refreshWebkit()},50),this},renderChatArea:function(){return this.$(".chat-area").length||(this.$(".chat-body").empty().append(v.templates.chatarea({show_toolbar:v.show_toolbar,label_message:D("Message")})).append(this.occupantsview.render().$el),this.renderToolbar()),this.model.set({hidden_occupants:!this.model.get("hidden_occupants")}),this.toggleOccupants(),this},toggleOccupants:function(e){e&&(e.preventDefault(),e.stopPropagation());var n=this.$(".icon-hide-users");this.model.get("hidden_occupants")?(this.model.save({hidden_occupants:!1}),n.removeClass("icon-show-users").addClass("icon-hide-users"),this.$(".chat-area, form.sendXMPPMessage").css({width:""}),this.$("div.participants").show().animate({width:"auto"},t.proxy(function(){this.scrollDown()},this))):(this.model.save({hidden_occupants:!0}),n.removeClass("icon-hide-users").addClass("icon-show-users"),this.$("form.sendXMPPMessage, .chat-area").animate({width:"100%"}),this.$("div.participants").animate({width:0},t.proxy(function(){this.scrollDown()},this)))},directInvite:function(e,t){var n={xmlns:"jabber:x:conference",jid:this.model.get("jid")};t!==null&&(n.reason=t),this.model.get("password")&&(n.password=this.model.get("password"));var i=r({from:v.connection.jid,to:e,id:v.connection.getUniqueId()}).c("x",n);v.connection.send(i),v.emit("roomInviteSent",this,e,t)},onCommandError:function(e){this.showStatusNotification(D("Error: could not execute the command"),!0)},createChatRoomMessage:function(e){var t=v.connection.getUniqueId(),n=r({to:this.model.get("jid"),from:v.connection.jid,type:"groupchat",id:t}).c("body").t(e).up().c("x",{xmlns:"jabber:x:event"}).c("composing");v.connection.send(n);var i=v.xmppstatus.get("fullname");this.model.messages.create({fullname:f.isEmpty(i)?v.bare_jid:i,sender:"me",time:l().format(),message:e,msgid:t})},setAffiliation:function(e,t,r,i,o,u){var f=s("item",{jid:t,affiliation:r}),l=n({to:e,type:"set"}).c("query",{xmlns:a.NS.MUC_ADMIN}).cnode(f.node);return i!==null&&l.c("reason",i),v.connection.sendIQ(l.tree(),o,u)},modifyRole:function(e,t,r,i,o,u){var f=s("item",{nick:t,role:r}),l=n({to:e,type:"set"}).c("query",{xmlns:a.NS.MUC_ADMIN}).cnode(f.node);return i!==null&&l.c("reason",i),v.connection.sendIQ(l.tree(),o,u)},member:function(e,t,n,r,i){return this.setAffiliation(e,t,"member",n,r,i)},revoke:function(e,t,n,r,i){return this.setAffiliation(e,t,"none",n,r,i)},owner:function(e,t,n,r,i){return this.setAffiliation(e,t,"owner",n,r,i)},admin:function(e,t,n,r,i){return this.setAffiliation(e,t,"admin",n,r,i)},sendChatRoomMessage:function(e){var n=e.replace(/^\s*/,"").match(/^\/(.*?)(?: (.*))?$/)||[!1,"",""],s=n[2].splitOnce(" ");switch(n[1]){case"admin":this.setAffiliation(this.model.get("jid"),s[0],"admin",s[1],undefined,t.proxy(this.onCommandError,this));break;case"ban":this.setAffiliation(this.model.get("jid"),s[0],"outcast",s[1],undefined,t.proxy(this.onCommandError,this));break;case"clear":this.clearChatRoomMessages();break;case"deop":this.modifyRole(this.model.get("jid"),s[0],"participant",s[1],undefined,t.proxy(this.onCommandError,this));break;case"help":this.showHelpMessages(["<strong>/admin</strong>: "+D("Change user's affiliation to admin"),"<strong>/ban</strong>: "+D("Ban user from room"),"<strong>/clear</strong>: "+D("Remove messages"),"<strong>/deop</strong>: "+D("Change user role to participant"),"<strong>/help</strong>: "+D("Show this menu"),"<strong>/kick</strong>: "+D("Kick user from room"),"<strong>/me</strong>: "+D("Write in 3rd person"),"<strong>/member</strong>: "+D("Grant membership to a user"),"<strong>/mute</strong>: "+D("Remove user's ability to post messages"),"<strong>/nick</strong>: "+D("Change your nickname"),"<strong>/op</strong>: "+D("Grant moderator role to user"),"<strong>/owner</strong>: "+D("Grant ownership of this room"),"<strong>/revoke</strong>: "+D("Revoke user's membership"),"<strong>/topic</strong>: "+D("Set room topic"),"<strong>/voice</strong>: "+D("Allow muted user to post messages")]);break;case"kick":this.modifyRole(this.model.get("jid"),s[0],"none",s[1],undefined,t.proxy(this.onCommandError,this));break;case"mute":this.modifyRole(this.model.get("jid"),s[0],"visitor",s[1],undefined,t.proxy(this.onCommandError,this));break;case"member":this.setAffiliation(this.model.get("jid"),s[0],"member",s[1],undefined,t.proxy(this.onCommandError,this));break;case"nick":v.connection.send(i({from:v.connection.jid,to:this.getRoomJIDAndNick(n[2]),id:v.connection.getUniqueId()}).tree());break;case"owner":this.setAffiliation(this.model.get("jid"),s[0],"owner",s[1],undefined,t.proxy(this.onCommandError,this));break;case"op":this.modifyRole(this.model.get("jid"),s[0],"moderator",s[1],undefined,t.proxy(this.onCommandError,this));break;case"revoke":this.setAffiliation(this.model.get("jid"),s[0],"none",s[1],undefined,t.proxy(this.onCommandError,this));break;case"topic":v.connection.send(r({to:this.model.get("jid"),from:v.connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(n[2]).tree());break;case"voice":this.modifyRole(this.model.get("jid"),s[0],"participant",s[1],undefined,t.proxy(this.onCommandError,this));break;default:this.createChatRoomMessage(e)}},handleMUCStanza:function(e){var t,n,r,i=e.getAttribute("from");if(!i||this.model.get("id")!==i.split("/")[0])return!0;if(e.nodeName==="message")this.onChatRoomMessage(e);else if(e.nodeName==="presence"){n=e.getElementsByTagName("x");if(n.length>0)for(r=0;r<n.length;r++){t=n[r].getAttribute("xmlns");if(t&&t.match(a.NS.MUC)){this.onChatRoomPresence(e);break}}}return!0},getRoomJIDAndNick:function(e){e=e||this.model.get("nick");var t=this.model.get("jid"),n=a.escapeNode(a.getNodeFromJid(t)),r=a.getDomainFromJid(t);return n+"@"+r+(e!==null?"/"+e:"")},join:function(e,n,r){var s=i({from:v.connection.jid,to:this.getRoomJIDAndNick()}).c("x",{xmlns:a.NS.MUC});return typeof n=="object"&&n.length&&(s=s.c("history",n).up()),e&&s.cnode(a.xmlElement("password",[],e)),typeof r!="undefined"&&r!==null&&s.up.cnode(r),this.handler||(this.handler=v.connection.addHandler(t.proxy(this.handleMUCStanza,this))),this.model.set("connection_status",a.Status.CONNECTING),v.connection.send(s)},leave:function(e){var n=v.connection.getUniqueId(),r=i({type:"unavailable",id:n,from:v.connection.jid,to:this.getRoomJIDAndNick()});e!==null&&r.c("status",e),v.connection.addHandler(t.proxy(function(){this.model.set("connection_status",a.Status.DISCONNECTED)},this),null,"presence",null,n),v.connection.send(r)},renderConfigurationForm:function(e){var n=this.$el.find("form.chatroom-form"),r=t(e),i=r.find("field"),s=r.find("title").text(),o=r.find("instructions").text();n.find("span.spinner").remove(),n.append(t("<legend>").text(s)),o&&o!=s&&n.append(t('<p class="instructions">').text(o)),f.each(i,function(e){n.append(c.xForm2webForm(t(e),r))}),n.append('<input type="submit" class="save-submit" value="'+D("Save")+'"/>'),n.append('<input type="button" class="cancel-submit" value="'+D("Cancel")+'"/>'),n.on("submit",this.saveConfiguration.bind(this)),n.find("input[type=button]").on("click",t.proxy(this.cancelConfiguration,this))},sendConfiguration:function(e,t,r){var i=n({to:this.model.get("jid"),type:"set"}).c("query",{xmlns:a.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"submit"});return f.each(e,function(e){i.cnode(e).up()}),v.connection.sendIQ(i.tree(),t,r)},saveConfiguration:function(e){e.preventDefault();var n=this,r=t(e.target).find(":input:not([type=button]):not([type=submit])"),i=r.length,s=[];r.each(function(){s.push(c.webForm2xForm(this)),--i||n.sendConfiguration(s,t.proxy(n.onConfigSaved,n),t.proxy(n.onErrorConfigSaved,n))}),this.$el.find("div.chatroom-form-container").hide(function(){t(this).remove(),n.$el.find(".chat-area").show(),n.$el.find(".participants").show()})},onConfigSaved:function(e){},onErrorConfigSaved:function(e){this.showStatusNotification(D("An error occurred while trying to save the form."))},cancelConfiguration:function(e){e.preventDefault();var n=this;this.$el.find("div.chatroom-form-container").hide(function(){t(this).remove(),n.$el.find(".chat-area").show(),n.$el.find(".participants").show()})},configureChatRoom:function(e){e.preventDefault();if(this.$el.find("div.chatroom-form-container").length)return;this.$(".chat-body").children().hide(),this.$(".chat-body").append(t('<div class="chatroom-form-container"><form class="chatroom-form"><span class="spinner centered"/></form></div>')),v.connection.sendIQ(n({to:this.model.get("jid"),type:"get"}).c("query",{xmlns:a.NS.MUC_OWNER}).tree(),this.renderConfigurationForm.bind(this))},submitPassword:function(e){e.preventDefault();var t=this.$el.find(".chatroom-form").find("input[type=password]").val();this.$el.find(".chatroom-form-container").replaceWith('<span class="spinner centered"/>'),this.join(t)},renderPasswordForm:function(){this.$(".chat-body").children().hide(),this.$("span.centered.spinner").remove(),this.$(".chat-body").append(v.templates.chatroom_password_form({heading:D("This chatroom requires a password"),label_password:D("Password: "),label_submit:D("Submit")})),this.$(".chatroom-form").on("submit",t.proxy(this.submitPassword,this))},showDisconnectMessage:function(e){this.$(".chat-area").hide(),this.$(".participants").hide(),this.$("span.centered.spinner").remove(),this.$(".chat-body").append(t("<p>"+e+"</p>"))},infoMessages:{100:D("This room is not anonymous"),102:D("This room now shows unavailable members"),103:D("This room does not show unavailable members"),104:D("Non-privacy-related room configuration has changed"),170:D("Room logging is now enabled"),171:D("Room logging is now disabled"),172:D("This room is now non-anonymous"),173:D("This room is now semi-anonymous"),174:D("This room is now fully-anonymous"),201:D("A new room has been created")},disconnectMessages:{301:D("You have been banned from this room"),307:D("You have been kicked from this room"),321:D("You have been removed from this room because of an affiliation change"),322:D("You have been removed from this room because the room has changed to members-only and you're not a member"),332:D("You have been removed from this room because the MUC (Multi-user chat) service is being shut down.")},actionInfoMessages:{301:P("<strong>%1$s</strong> has been banned"),303:P("<strong>%1$s</strong>'s nickname has changed"),307:P("<strong>%1$s</strong> has been kicked out"),321:P("<strong>%1$s</strong> has been removed because of an affiliation change"),322:P("<strong>%1$s</strong> has been removed for not being a member")},newNicknameMessages:{210:P("Your nickname has been automatically changed to: <strong>%1$s</strong>"),303:P("Your nickname has been changed to: <strong>%1$s</strong>")},showStatusMessages:function(e,n){var r,i=[],s=[],o=[];e.find('x[xmlns="'+a.NS.MUC_USER+'"]').each(t.proxy(function(r,u){var l=t(u).find("item");a.getBareJidFromJid(l.attr("jid"))===v.bare_jid&&l.attr("affiliation")==="owner"&&this.$el.find("a.configure-chatroom-button").show(),t(u).find("item reason").each(function(e,n){t(n).text()&&o.push(t(n).text())}),t(u).find("status").each(t.proxy(function(r,o){var u=o.getAttribute("code"),c=a.unescapeNode(a.getResourceFromJid(e.attr("from")));n&&u==="210"?s.push(D(this.newNicknameMessages[u],c)):n&&u==="303"?s.push(D(this.newNicknameMessages[u],l.attr("nick"))):n&&f.contains(f.keys(this.disconnectMessages),u)?i.push(this.disconnectMessages[u]):!n&&f.contains(f.keys(this.actionInfoMessages),u)?s.push(D(this.actionInfoMessages[u],c)):f.contains(f.keys(this.infoMessages),u)?s.push(this.infoMessages[u]):u!=="110"&&t(o).text()&&s.push(t(o).text())},this))},this));if(i.length>0){for(m=0;m<i.length;m++)this.showDisconnectMessage(i[m]);for(m=0;m<o.length;m++)this.showDisconnectMessage(D('The reason given is: "'+o[m]+'"'),!0);this.model.set("connection_status",a.Status.DISCONNECTED);return}r=this.$el.find(".chat-content");for(m=0;m<s.length;m++)r.append(v.templates.info({message:s[m]}));for(m=0;m<o.length;m++)this.showStatusNotification(D('The reason given is: "'+o[m]+'"'),!0);return this.scrollDown()},showErrorMessage:function(e){e.attr("type")=="auth"?e.find("not-authorized").length?this.renderPasswordForm():e.find("registration-required").length?this.showDisconnectMessage(D("You are not on the member list of this room")):e.find("forbidden").length&&this.showDisconnectMessage(D("You have been banned from this room")):e.attr("type")=="modify"?e.find("jid-malformed").length&&this.showDisconnectMessage(D("No nickname was specified")):e.attr("type")=="cancel"&&(e.find("not-allowed").length?this.showDisconnectMessage(D("You are not allowed to create new rooms")):e.find("not-acceptable").length?this.showDisconnectMessage(D("Your nickname doesn't conform to this room's policies")):e.find("conflict").length?this.showDisconnectMessage(D("Your nickname is already taken")):e.find("item-not-found").length?this.showDisconnectMessage(D("This room does not (yet) exist")):e.find("service-unavailable").length&&this.showDisconnectMessage(D("This room has reached it's maximum number of occupants")))},onChatRoomPresence:function(e){var n=t(e),r,i=this.model.get("nick");n.attr("type")==="error"?(this.model.set("connection_status",a.Status.DISCONNECTED),this.showErrorMessage(n.find("error"))):(r=n.find("status[code='110']").length||n.attr("from")==this.model.get("id")+"/"+a.escapeNode(i),this.model.get("connection_status")!==a.Status.CONNECTED&&(this.model.set("connection_status",a.Status.CONNECTED),this.$("span.centered.spinner").remove(),this.$el.find(".chat-body").children().show()),this.showStatusMessages(n,r)),this.occupantsview.updateOccupantsOnPresence(e)},onChatRoomMessage:function(e){var n=t(e),r=n.children("body").text(),i=n.attr("from"),s=n.attr("id"),o=a.getResourceFromJid(i),u=o&&a.unescapeNode(o)||"",f=n.find("delay").length>0,l=n.children("subject").text();return s&&this.model.messages.findWhere({msgid:s})?!0:(this.showStatusMessages(n),l&&(this.$el.find(".chatroom-topic").text(l).attr("title",l),this.$el.find(".chat-content").append(v.templates.info({message:D("Topic set by %1$s to: %2$s",u,l)}))),u===""?!0:(this.model.createMessage(n),!f&&u!==this.model.get("nick")&&(new RegExp("\\b"+this.model.get("nick")+"\\b")).test(r)&&v.playNotification(),u!==this.model.get("nick")&&v.emit("message",e),!0))}}),this.ChatBoxes=Backbone.Collection.extend({model:v.ChatBox,comparator:"time_opened",registerMessageHandler:function(){v.connection.addHandler(t.proxy(function(e){return this.onMessage(e),!0},this),null,"message","chat"),v.connection.addHandler(t.proxy(function(e){return this.onInvite(e),!0},this),"jabber:x:conference","message")},onConnected:function(){this.browserStorage=new Backbone.BrowserStorage[v.storage](h("converse.chatboxes-"+v.bare_jid)),this.registerMessageHandler(),this.fetch({add:!0,success:t.proxy(function(e,t){f.include(f.pluck(t,"id"),"controlbox")||this.add({id:"controlbox",box_id:"controlbox"}),this.get("controlbox").save({connected:!0})},this)})},isOnlyChatStateNotification:function(e){return e.find("body").length===0&&(e.find(T).length!==0||e.find(N).length!==0||e.find(x).length!==0||e.find(C).length!==0||e.find(k).length!==0)},onInvite:function(e){var n=t(e),r=n.children('x[xmlns="jabber:x:conference"]'),i=a.getBareJidFromJid(n.attr("from")),s=r.attr("jid"),o=r.attr("reason"),u=v.roster.get(i),l;o?l=confirm(D(P('%1$s has invited you to join a chat room: %2$s, and left the following reason: "%3$s"'),u.get("fullname"),s,o)):l=confirm(D(P("%1$s has invited you to join a chat room: %2$s"),u.get("fullname"),s));if(l===!0){var c=v.chatboxviews.showChat({id:s,jid:s,name:a.unescapeNode(a.getNodeFromJid(s)),nick:a.unescapeNode(a.getNodeFromJid(v.connection.jid)),chatroom:!0,box_id:h(s),password:r.attr("password")});f.contains([a.Status.CONNECTING,a.Status.CONNECTED],c.get("connection_status"))||v.chatboxviews.get(s).join(null)}},onMessage:function(e){var n=t(e),r,i,s,o,u=n.attr("id"),l,c,h,p=n.attr("from");if(p===v.connection.jid)return!0;i=n.children("forwarded"),s=n.children('received[xmlns="urn:xmpp:carbons:2"]'),o=n.children('sent[xmlns="urn:xmpp:carbons:2"]'),i.length?n=i.children("message"):s.length?(n=s.children("forwarded").children("message"),p=n.attr("from")):o.length&&(n=o.children("forwarded").children("message"),p=n.attr("from"));var d=a.getBareJidFromJid(p),m=a.getBareJidFromJid(n.attr("to"));d==v.bare_jid?(r=m,c=a.getResourceFromJid(n.attr("to"))):(r=d,c=a.getResourceFromJid(p)),h=v.roster.get(r);if(h===undefined)return v.log("Could not get roster item for JID "+r,"error"),!0;l=this.get(r);if(!l){if(n.find("body").length===0)return!0;var g=h.get("fullname");g=f.isEmpty(g)?r:g,l=this.create({id:r,jid:r,fullname:g,image_type:h.get("image_type"),image:h.get("image"),url:h.get("url")})}return u&&l.messages.findWhere({msgid:u})?!0:(!this.isOnlyChatStateNotification(n)&&d!==v.bare_jid&&v.playNotification(),l.receiveMessage(n),v.roster.addResource(r,c),v.emit("message",e),!0)}}),this.ChatBoxViews=Backbone.Overview.extend({initialize:function(){this.model.on("add",this.onChatBoxAdded,this),this.model.on("change:minimized",function(e){e.get("minimized")===!1?this.trimChats(this.get(e.get("id"))):this.trimChats()},this)},_ensureElement:function(){if(!this.el){var e=t("#conversejs");e.length||(e=t('<div id="conversejs">'),t("body").append(e)),e.html(v.templates.chats_panel()),this.setElement(e,!1)}else this.setElement(f.result(this,"el"),!1)},onChatBoxAdded:function(e){var t=this.get(e.get("id"));t?(delete t.model,t.model=e,t.initialize()):(e.get("chatroom")?t=new v.ChatRoomView({model:e}):e.get("box_id")==="controlbox"?t=new v.ControlBoxView({model:e}):t=new v.ChatBoxView({model:e}),this.add(e.get("id"),t)),this.trimChats(t)},trimChats:function(e){if(v.no_trimming||this.model.length<=1)return;var t,n=0,r=v.minimized_chats.$el,i=f.contains(this.model.pluck("minimized"),!0)?r.outerWidth(!0):0,s=e?e.$el.outerWidth(!0):0,o=e?e.model.get("id"):null,u=this.get("controlbox");!u||!u.$el.is(":visible")?n=v.controlboxtoggle.$el.outerWidth(!0):n=u.$el.outerWidth(!0),f.each(this.getAll(),function(e){var t=e.model.get("id");t!=="controlbox"&&t!==o&&!e.model.get("minimized")&&e.$el.is(":visible")&&(s+=e.$el.outerWidth(!0))}),i+s+n>this.$el.outerWidth(!0)&&(t=this.getOldestMaximizedChat(),t&&t.get("id")!==o&&t.minimize())},getOldestMaximizedChat:function(){var e=0,t=this.model.sort().at(e);while(t.get("id")==="controlbox"||t.get("minimized")===!0){e++,t=this.model.at(e);if(!t)return null}return t},closeAllChatBoxes:function(e){var n,r;return this.model.each(t.proxy(function(t){var n=t.get("id");(e||n!=="controlbox")&&this.get(n)&&this.get(n).close()},this)),this},showChat:function(e){var t=this.model.get(e.jid);return t||(t=this.model.create(e,{error:function(e,t){v.log(t.responseText)}})),t.get("minimized")?t.maximize():t.trigger("show"),t}}),this.MinimizedChatBoxView=Backbone.View.extend({tagName:"div",className:"chat-head",events:{"click .close-chatbox-button":"close","click .restore-chat":"restore"},initialize:function(){this.model.messages.on("add",function(e){e.get("message")&&this.updateUnreadMessagesCounter()},this),this.model.on("change:minimized",this.clearUnreadMessagesCounter,this),this.model.on("showReceivedOTRMessage",this.updateUnreadMessagesCounter,this),this.model.on("showSentOTRMessage",this.updateUnreadMessagesCounter,this)},render:function(){var e=f.extend(this.model.toJSON(),{tooltip:D("Click to restore this chat")});return this.model.get("chatroom")?(e.title=this.model.get("name"),this.$el.addClass("chat-head-chatroom")):(e.title=this.model.get("fullname"),this.$el.addClass("chat-head-chatbox")),this.$el.html(v.templates.trimmed_chat(e))},clearUnreadMessagesCounter:function(){this.model.set({num_unread:0}),this.render()},updateUnreadMessagesCounter:function(){this.model.set({num_unread:this.model.get("num_unread")+1}),this.render()},close:function(e){return e&&e.preventDefault&&e.preventDefault(),this.remove(),this.model.destroy(),v.emit("chatBoxClosed",this),this},restore:f.debounce(function(e){e&&e.preventDefault&&e.preventDefault(),this.model.messages.off("add",null,this),this.remove(),this.model.maximize()},200,!0)}),this.MinimizedChats=Backbone.Overview.extend({el:"#minimized-chats",events:{"click #toggle-minimized-chats":"toggle"},initialize:function(){this.initToggle(),this.model.on("add",this.onChanged,this),this.model.on("destroy",this.removeChat,this),this.model.on("change:minimized",this.onChanged,this),this.model.on("change:num_unread",this.updateUnreadMessagesCounter,this)},tearDown:function(){return this.model.off("add",this.onChanged),this.model.off("destroy",this.removeChat),this.model.off("change:minimized",this.onChanged),this.model.off("change:num_unread",this.updateUnreadMessagesCounter),this},initToggle:function(){this.toggleview=new v.MinimizedChatsToggleView({model:new v.MinimizedChatsToggle});var e=h("converse.minchatstoggle"+v.bare_jid);this.toggleview.model.id=e,this.toggleview.model.browserStorage=new Backbone.BrowserStorage[v.storage](e),this.toggleview.model.fetch()},render:function(){return this.keys().length===0?this.$el.hide("fast"):this.keys().length===1&&this.$el.show("fast"),this.$el},toggle:function(e){e&&e.preventDefault&&e.preventDefault(),this.toggleview.model.save({collapsed:!this.toggleview.model.get("collapsed")}),this.$(".minimized-chats-flyout").toggle()},onChanged:function(e){e.get("id")!=="controlbox"&&e.get("minimized")?this.addChat(e):this.get(e.get("id"))&&this.removeChat(e)},addChat:function(e){var t=this.get(e.get("id"));if(t&&t.$el.parent().length!==0)return;var n=new v.MinimizedChatBoxView({model:e});this.$(".minimized-chats-flyout").append(n.render()),this.add(e.get("id"),n),this.toggleview.model.set({num_minimized:this.keys().length}),this.render()},removeChat:function(e){this.remove(e.get("id")),this.toggleview.model.set({num_minimized:this.keys().length}),this.render()},updateUnreadMessagesCounter:function(){var e=this.model.pluck("num_unread"),t=0,n;for(n=0;n<e.length;n++)t+=e[n];this.toggleview.model.set({num_unread:t}),this.render()}}),this.MinimizedChatsToggle=Backbone.Model.extend({initialize:function(){this.set({collapsed:this.get("collapsed")||!1,num_minimized:this.get("num_minimized")||0,num_unread:this.get("num_unread")||0})}}),this.MinimizedChatsToggleView=Backbone.View.extend({el:"#toggle-minimized-chats",initialize:function(){this.model.on("change:num_minimized",this.render,this),this.model.on("change:num_unread",this.render,this),this.$flyout=this.$el.siblings(".minimized-chats-flyout")},render:function(){return this.$el.html(v.templates.toggle_chats(f.extend(this.model.toJSON(),{Minimized:D("Minimized")}))),this.model.get("collapsed")?this.$flyout.hide():this.$flyout.show(),this.$el}}),this.RosterContact=Backbone.Model.extend({initialize:function(e,t){var n=e.jid,r=f.extend({id:n,fullname:n,chat_status:"offline",user_id:a.getNodeFromJid(n),resources:[],groups:[],image_type:"image/png",image:"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAIAAABt+uBvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gwHCy455JBsggAABkJJREFUeNrtnM1PE1sUwHvvTD8otWLHST/Gimi1CEgr6M6FEWuIBo2pujDVsNDEP8GN/4MbN7oxrlipG2OCgZgYlxAbkRYw1KqkIDRCSkM7nXvvW8x7vjyNeQ9m7p1p3z1LQk/v/Dhz7vkEXL161cHl9wI5Ag6IA+KAOCAOiAPigDggLhwQB2S+iNZ+PcYY/SWEEP2HAAAIoSAIoihCCP+ngDDGtVotGAz29/cfOXJEUZSOjg6n06lp2sbGRqlUWlhYyGazS0tLbrdbEASrzgksyeYJId3d3el0uqenRxRFAAAA4KdfIIRgjD9+/Pj8+fOpqSndslofEIQwHA6Pjo4mEon//qmFhYXHjx8vLi4ihBgDEnp7e9l8E0Jo165dQ0NDd+/eDYVC2/qsJElDQ0OEkKWlpa2tLZamxAhQo9EIBoOjo6MXL17csZLe3l5FUT59+lQul5l5JRaAVFWNRqN37tw5ceKEQVWRSOTw4cOFQuHbt2+iKLYCIISQLMu3b99OJpOmKAwEAgcPHszn8+vr6wzsiG6UQQhxuVyXLl0aGBgwUW0sFstkMl6v90fo1KyAMMYDAwPnzp0zXfPg4GAqlWo0Gk0MiBAiy/L58+edTqf5Aa4onj59OhaLYYybFRCEMBaL0fNxBw4cSCQStN0QRUBut3t4eJjq6U+dOiVJElVPRBFQIBDo6+ujCqirqyscDlONGykC2lYyYSR6pBoQQapHZwAoHo/TuARYAOrs7GQASFEUqn6aIiBJkhgA6ujooFpUo6iaTa7koFwnaoWadLNe81tbWwzoaJrWrICWl5cZAFpbW6OabVAEtLi4yABQsVjUNK0pAWWzWQaAcrlcswKanZ1VVZUqHYRQEwOq1Wpv3ryhCmh6erpcLjdrNl+v1ycnJ+l5UELI27dvv3//3qxxEADgy5cvExMT9Mznw4cPtFtAdAPFarU6Pj5eKpVM17yxsfHy5cvV1VXazXu62gVBKBQKT58+rdVqJqrFGL948eLdu3dU8/g/H4FBUaJYLAqC0NPTY9brMD4+PjY25mDSracOCABACJmZmXE6nUePHjWu8NWrV48ePSKEsGlAs7Agfd5nenq6Wq0mk0kjDzY2NvbkyRMIIbP2PLvhBUEQ8vl8NpuNx+M+n29bzhVjvLKycv/+/YmJCcazQuwA6YzW1tYmJyf1SY+2trZ/rRk1Go1SqfT69esHDx4UCgVmNaa/zZ/9ABUhRFXVYDB48uTJeDweiUQkSfL7/T9MA2NcqVTK5fLy8vL8/PzU1FSxWHS5XJaM4wGr9sUwxqqqer3eUCgkSZJuUBBCfTRvc3OzXC6vrKxUKhWn02nhCJ5lM4oQQo/HgxD6+vXr58+fHf8sDOp+HQDg8XgclorFU676dKLlo6yWRdItIBwQB8QBcUCtfosRQjRNQwhhjPUC4w46WXryBSHU1zgEQWBz99EFhDGu1+t+v//48ePxeFxRlD179ng8nh0Efgiher2+vr6ur3HMzMysrq7uTJVdACGEurq6Ll++nEgkPB7Pj9jPoDHqOxyqqubz+WfPnuVyuV9XPeyeagAAAoHArVu3BgcHab8CuVzu4cOHpVKJUnfA5GweY+xyuc6cOXPv3r1IJMLAR8iyPDw8XK/Xi8Wiqqqmm5KZgBBC7e3tN27cuHbtGuPVpf7+/lAoNDs7W61WzfVKpgHSSzw3b95MpVKW3MfRaDQSiczNzVUqFRMZmQOIEOL1eq9fv3727FlL1t50URRFluX5+flqtWpWEGAOIFEUU6nUlStXLKSjy759+xwOx9zcnKZpphzGHMzhcDiTydgk9r1w4YIp7RPTAAmCkMlk2FeLf/tIEKbTab/fbwtAhJBoNGrutpNx6e7uPnTokC1eMU3T0um0DZPMkZER6wERQnw+n/FFSxpy7Nix3bt3WwwIIcRgIWnHkkwmjecfRgGx7DtuV/r6+iwGhDHev3+/bQF1dnYaH6E2CkiWZdsC2rt3r8WAHA5HW1ubbQGZcjajgOwTH/4qNko1Wlg4IA6IA+KAOKBWBUQIsfNojyliKIoRRfH9+/dut9umf3wzpoUNNQ4BAJubmwz+ic+OxefzWWlBhJD29nbug7iT5sIBcUAcEAfEAXFAHBAHxOVn+QMrmWpuPZx12gAAAABJRU5ErkJggg==",status:""},e);this.set(r)},showInRoster:function(){var e=this.get("chat_status");return v.show_only_online_users&&e!=="online"||v.hide_offline_users&&e==="offline"?this.get("ask")==="subscribe"||this.get("subscription")==="from"||this.get("requesting")===!0?!0:!1:!0}}),this.RosterContactView=Backbone.View.extend({tagName:"dd",events:{"click .accept-xmpp-request":"acceptRequest","click .decline-xmpp-request":"declineRequest","click .open-chat":"openChat","click .remove-xmpp-contact":"removeContact"},initialize:function(){this.model.on("change",this.render,this),this.model.on("remove",this.remove,this),this.model.on("destroy",this.remove,this),this.model.on("open",this.openChat,this)},render:function(){if(!this.model.showInRoster())return this.$el.hide(),this;this.$el[0].style.display==="none"&&this.$el.show();var e=this.model,t=e.get("ask"),n=e.get("chat_status"),r=e.get("requesting"),i=e.get("subscription"),s=["current-xmpp-contact","pending-xmpp-contact","requesting-xmpp-contact"].concat(f.keys(j));f.each(s,function(e){this.el.className.indexOf(e)!==-1&&this.$el.removeClass(e)},this),this.$el.addClass(n).data("status",n);if(t==="subscribe"||i==="from")this.$el.addClass("pending-xmpp-contact"),this.$el.html(v.templates.pending_contact(f.extend(e.toJSON(),{desc_remove:D("Click to remove this contact")})));else if(r===!0)this.$el.addClass("requesting-xmpp-contact"),this.$el.html(v.templates.requesting_contact(f.extend(e.toJSON(),{desc_accept:D("Click to accept this contact request"),desc_decline:D("Click to decline this contact request")}))),v.controlboxtoggle.showControlBox();else if(i==="both"||i==="to")this.$el.addClass("current-xmpp-contact"),this.$el.html(v.templates.roster_item(f.extend(e.toJSON(),{desc_status:j[n||"offline"],desc_chat:D("Click to chat with this contact"),desc_remove:D("Click to remove this contact"),allow_contact_removal:v.allow_contact_removal})));return this},openChat:function(e){return e&&e.preventDefault&&e.preventDefault(),v.chatboxviews.showChat(this.model.attributes)},removeContact:function(e){e&&e.preventDefault&&e.preventDefault();if(!v.allow_contact_removal)return;var n=confirm(D("Are you sure you want to remove this contact?"));if(n===!0){var r=this.model.get("jid");v.connection.roster.remove(r,t.proxy(function(e){v.connection.roster.unauthorize(r),v.rosterview.model.remove(r),this.model.destroy(),this.remove()},this))}},acceptRequest:function(e){e&&e.preventDefault&&e.preventDefault();var t=this.model.get("jid");v.connection.roster.authorize(t),v.connection.roster.add(t,this.model.get("fullname"),[],function(e){v.connection.roster.subscribe(t,null,v.xmppstatus.get("fullname"))})},declineRequest:function(e){e&&e.preventDefault&&e.preventDefault();var t=confirm(D("Are you sure you want to decline this contact request?"));return t===!0&&(v.connection.roster.unauthorize(this.model.get("jid")),this.model.destroy()),this}}),this.RosterContacts=Backbone.Collection.extend({model:v.RosterContact,comparator:function(e,t){var n,r,i=e.get("chat_status")||"offline",s=t.get("chat_status")||"offline";return S[i]===S[s]?(n=e.get("fullname").toLowerCase(),r=t.get("fullname").toLowerCase(),n<r?-1:n>r?1:0):S[i]<S[s]?-1:1},subscribeToSuggestedItems:function(e){return t(e).find("item").each(function(e,n){var r=t(this),i=r.attr("jid"),s=r.attr("action"),o=r.attr("name");s==="add"&&v.connection.roster.subscribe(i,null,v.xmppstatus.get("fullname"))}),!0},isSelf:function(e){return a.getBareJidFromJid(e)===a.getBareJidFromJid(v.connection.jid)},addResource:function(e,t){var n=this.get(e),r;n&&(r=n.get("resources"),r?f.indexOf(r,t)==-1&&(r.push(t),n.set({resources:r})):n.set({resources:[t]}))},removeResource:function(e,t){var n=this.get(e),r,i;if(n){r=n.get("resources"),i=f.indexOf(r,t);if(i!==-1)return r.splice(i,1),n.save({resources:r}),r.length}return 0},subscribeBack:function(e){var t=a.getBareJidFromJid(e);v.connection.roster.findItem(t)?(v.connection.roster.authorize(t),v.connection.roster.subscribe(e,null,v.xmppstatus.get("fullname"))):v.connection.roster.add(e,"",[],function(n){v.connection.roster.authorize(t),v.connection.roster.subscribe(e,null,v.xmppstatus.get("fullname"))})},unsubscribe:function(e){v.xmppstatus.sendPresence("unsubscribe"),v.connection.roster.findItem(e)&&v.connection.roster.remove(e,function(t){v.rosterview.model.remove(e)})},getNumOnlineContacts:function(){var e=0,t=["offline","unavailable"],n=this.models,r=n.length,i;v.show_only_online_users&&(t=f.union(t,["dnd","xa","away"]));for(i=0;i<r;i++)f.indexOf(t,n[i].get("chat_status"))===-1&&e++;return e},clearCache:function(e){f.each(f.difference(this.pluck("jid"),f.pluck(e,"jid")),t.proxy(function(e){var t=this.get(e);t&&!t.get("requesting")&&t.destroy()},this))},rosterHandler:function(e,t){v.emit("roster",e),this.clearCache(e);var n=t?[t]:e;f.each(n,function(e,t,n){if(this.isSelf(e.jid))return;var r=this.get(e.jid);if(!r){var i=t===n.length-1?!0:!1;if(e.subscription==="none"&&e.ask===null&&!i)return;this.create({ask:e.ask,fullname:e.name||e.jid,groups:e.groups,jid:e.jid,subscription:e.subscription},{sort:!1})}else e.subscription==="none"&&e.ask===null?r.destroy():r.save({subscription:e.subscription,ask:e.ask,requesting:null,groups:e.groups})},this),v.initial_presence_sent||(v.initial_presence_sent=1,v.xmppstatus.sendPresence())},handleIncomingSubscription:function(e){var n=a.getBareJidFromJid(e),r=this.get(n);if(!v.allow_contact_requests)return v.connection.roster.unauthorize(n),!0;if(v.auto_subscribe)!r||r.get("subscription")!="to"?this.subscribeBack(e):v.connection.roster.authorize(n);else if(r&&r.get("subscription")!="none")v.connection.roster.authorize(n);else{if(!!this.get(n))return!0;v.getVCard(n,t.proxy(function(e,t,r,i,s){this.create({jid:n,subscription:"none",ask:null,requesting:!0,fullname:t||e,image:r,image_type:i,url:s,vcard_updated:l().format()})},this),t.proxy(function(e,t){v.log("Error while retrieving vcard"),this.create({jid:n,subscription:"none",ask:null,requesting:!0,fullname:n,vcard_updated:l().format()})},this))}return!0},presenceHandler:function(e){var n=t(e),r=n.attr("type");if(r==="error")return!0;var i=n.attr("from"),s=a.getBareJidFromJid(i),o=a.getResourceFromJid(i),u=n.find("show"),f=u.text()||"online",l=n.find("status"),c;return this.isSelf(s)?(v.connection.jid!==i&&r!=="unavailable"&&v.xmppstatus.save({status:f}),!0):(n.find("x").attr("xmlns")||"").indexOf(a.NS.MUC)===0?!0:(c=this.get(s),c&&l.text()!=c.get("status")&&c.save({status:l.text()}),r==="subscribed"||r==="unsubscribe"?!0:r==="subscribe"?this.handleIncomingSubscription(i):(r==="unsubscribed"?this.unsubscribe(s):r==="unavailable"?(this.removeResource(s,o)===0&&(f="offline"),c&&f&&c.save({chat_status:f})):c&&(this.addResource(s,o),c.save({chat_status:f})),!0))}}),this.RosterGroup=Backbone.Model.extend({initialize:function(e,t){this.set(f.extend({description:F,state:O},e)),this.contacts=new v.RosterContacts}}),this.RosterGroupView=Backbone.Overview.extend({tagName:"dt",className:"roster-group",events:{"click a.group-toggle":"toggle"},initialize:function(){this.model.contacts.on("add",this.addContact,this),this.model.contacts.on("change:subscription",this.onContactSubscriptionChange,this),this.model.contacts.on("change:requesting",this.onContactRequestChange,this),this.model.contacts.on("change:chat_status",function(e){this.model.contacts.sort(),this.positionContact(e).render()},this),this.model.contacts.on("destroy",this.onRemove,this),this.model.contacts.on("remove",this.onRemove,this),v.roster.on("change:groups",this.onContactGroupChange,this)},render:function(){return this.$el.attr("data-group",this.model.get("name")),this.$el.html(t(v.templates.group_header({label_group:this.model.get("name"),desc_group_toggle:this.model.get("description"),toggle_state:this.model.get("state")}))),this},addContact:function(e){var t=new v.RosterContactView({model:e});this.add(e.get("id"),t),t=this.positionContact(e).render(),e.showInRoster()&&(this.model.get("state")===M?(t.$el[0].style.display!=="none"&&t.$el.hide(),this.$el[0].style.display==="none"&&this.$el.show()):this.$el[0].style.display!=="block"&&this.show())},positionContact:function(e){var t=this.get(e.get("id")),n=this.model.contacts.indexOf(e);return t.$el.detach(),n===0?this.$el.after(t.$el):n==this.model.contacts.length-1?this.$el.nextUntil("dt").last().after(t.$el):this.$el.nextUntil("dt").eq(n).before(t.$el),t},show:function(){this.$el.nextUntil("dt").addBack().show()},hide:function(){this.$el.nextUntil("dt").addBack().hide()},filter:function(e){var n,r;e.length===0?(this.model.get("state")===O&&this.model.contacts.each(t.proxy(function(e){e.showInRoster()&&this.get(e.get("id")).$el.show()},this)),this.showIfNecessary()):(e=e.toLowerCase(),n=this.model.contacts.filter(p.not("fullname",e)),n.length===this.model.contacts.length?this.hide():(f.each(n,t.proxy(function(e){this.get(e.get("id")).$el.hide()},this)),f.each(this.model.contacts.reject(p.not("fullname",e)),t.proxy(function(e){this.get(e.get("id")).$el.show()},this)),this.showIfNecessary()))},showIfNecessary:function(){!this.$el.is(":visible")&&this.model.contacts.length>0&&this.$el.show()},toggle:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target);n.hasClass("icon-opened")?(this.$el.nextUntil("dt").slideUp(),this.model.save({state:M}),n.removeClass("icon-opened").addClass("icon-closed")):(n.removeClass("icon-closed").addClass("icon-opened"),this.model.save({state:O}),this.filter(v.rosterview.$(".roster-filter").val(),v.rosterview.$(".filter-type").val()))},onContactGroupChange:function(e){var t=f.contains(e.get("groups"),this.model.get("name")),n=e.get("id"),r=!this.get(n);t&&!r?this.model.contacts.remove(n):!t&&r&&this.addContact(e)},onContactSubscriptionChange:function(e){this.model.get("name")===q&&e.get("subscription")!=="from"&&this.model.contacts.remove(e.get("id"))},onContactRequestChange:function(e){this.model.get("name")===R&&!e.get("requesting")&&this.model.contacts.remove(e.get("id"))},onRemove:function(e){this.remove(e.get("id")),this.model.contacts.length===0&&this.$el.hide()}}),this.RosterGroups=Backbone.Collection.extend({model:v.RosterGroup,comparator:function(e,t){e=e.get("name"),t=t.get("name");var n=f.keys(X),r=f.contains(n,e),i=f.contains(n,t);if(!r&&!i)return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0;if(r&&i)return X[e]<X[t]?-1:X[e]>X[t]?1:0;if(!r&&i)return t===I?1:-1;if(r&&!i)return e===I?-1:1}}),this.RosterView=Backbone.Overview.extend({tagName:"div",id:"converse-roster",events:{"keydown .roster-filter":"liveFilter","click .onX":"clearFilter","mousemove .x":"togglePointer","change .filter-type":"changeFilterType"},initialize:function(){this.registerRosterHandler(),this.registerRosterXHandler(),this.registerPresenceHandler(),v.roster.on("add",this.onContactAdd,this),v.roster.on("change",this.onContactChange,this),v.roster.on("destroy",this.update,this),v.roster.on("remove",this.update,this),this.model.on("add",this.onGroupAdd,this),this.model.on("reset",this.reset,this),this.$roster=t('<dl class="roster-contacts" style="display: none;"></dl>')},update:f.debounce(function(){var e=t("#online-count");return e.text("("+v.roster.getNumOnlineContacts()+")"),e.is(":visible")||e.show(),this.$roster.parent().length===0&&this.$el.append(this.$roster.show()),this.showHideFilter()},v.animate?100:0),render:function(){return this.$el.html(v.templates.roster({placeholder:D("Type to filter"),label_contacts:z,label_groups:W})),v.allow_contact_requests||this.$el.addClass("no-contact-requests"),this},fetch:function(){return this.model.fetch({silent:!0,success:t.proxy(function(e,t,n){e.length!==0&&this.positionFetchedGroups(e,t,n),v.roster.fetch({add:!0,success:function(e){e.length>0?(e.each(function(e){v.connection.roster.items.push({name:e.get("fullname"),jid:e.get("jid"),subscription:e.get("subscription"),ask:e.get("ask"),groups:e.get("groups"),resources:e.get("resources")})}),v.initial_presence_sent=1,v.xmppstatus.sendPresence()):v.connection.roster.get()}})},this)}),this},changeFilterType:function(e){e&&e.preventDefault&&e.preventDefault(),this.clearFilter(),this.filter(this.$(".roster-filter").val(),e.target.value)},tog:function(e){return e?"addClass":"removeClass"},togglePointer:function(e){e&&e.preventDefault&&e.preventDefault();var n=e.target;t(n)[this.tog(n.offsetWidth-18<e.clientX-n.getBoundingClientRect().left)]("onX")},filter:function(e,t){var n;e=e.toLowerCase(),t==="groups"?f.each(this.getAll(),function(t,n){t.model.get("name").toLowerCase().indexOf(e.toLowerCase())===-1?t.hide():t.model.contacts.length>0&&t.show()}):f.each(this.getAll(),function(n){n.filter(e,t)})},liveFilter:f.debounce(function(e){e&&e.preventDefault&&e.preventDefault();var t=this.$(".roster-filter"),n=t.val(),r=this.$(".filter-type").val();t[this.tog(n)]("x"),this.filter(n,r)},300),clearFilter:function(e){e&&e.preventDefault&&(e.preventDefault(),t(e.target).removeClass("x onX").val("")),this.filter("")},showHideFilter:function(){if(!this.$el.is(":visible"))return;var e=this.$(".roster-filter"),t=this.$(".filter-type"),n=e.is(":visible");if(n&&e.val().length>0)return;return this.$roster.hasScrollBar()?n||(e.show(),t.show()):(e.hide(),t.hide()),this},reset:function(){return v.roster.reset(),this.removeAll(),this.$roster=t('<dl class="roster-contacts" style="display: none;"></dl>'),this.render().update(),this},registerRosterHandler:function(){v.connection.roster.registerCallback(t.proxy(v.roster.rosterHandler,v.roster))},registerRosterXHandler:function(){var e=0;v.connection.addHandler(function(n){return window.setTimeout(function(){v.connection.flush(),t.proxy(v.roster.subscribeToSuggestedItems,v.roster)(n)},e),e+=t(n).find("item").length*250,!0},"http://jabber.org/protocol/rosterx","message",null)},registerPresenceHandler:function(){v.connection.addHandler(t.proxy(function(e){return v.roster.presenceHandler(e),!0},this),null,"presence",null)},onGroupAdd:function(e){var t=new v.RosterGroupView({model:e});this.add(e.get("name"),t.render()),this.positionGroup(t)},onContactAdd:function(e){this.addRosterContact(e).update(),e.get("vcard_updated")||v.getVCard(e.get("jid"))},onContactChange:function(e){this.updateChatBox(e).update(),f.has(e.changed,"subscription")&&(e.changed.subscription=="from"?this.addContactToGroup(e,q):e.get("subscription")==="both"&&this.addExistingContact(e)),f.has(e.changed,"ask")&&e.changed.ask=="subscribe"&&this.addContactToGroup(e,q),f.has(e.changed,"subscription")&&e.changed.requesting=="true"&&this.addContactToGroup(e,R),this.liveFilter()},updateChatBox:function(e){var t=v.chatboxes.get(e.get("jid")),n={};return t?(f.has(e.changed,"chat_status")&&(n.chat_status=e.get("chat_status")),f.has(e.changed,"status")&&(n.status=e.get("status")),t.save(n),this):this},positionFetchedGroups:function(e,n,r){e.sort(),e.each(t.proxy(function(e,t){var n=this.get(e.get("name"));n||(n=new v.RosterGroupView({model:e}),this.add(e.get("name"),n.render())),t===0?this.$roster.append(n.$el):this.appendGroup(n)},this))},positionGroup:function(e){var n=this.$roster.find(".roster-group"),r=n.length?this.model.indexOf(e.model):0;return r===0?this.$roster.prepend(e.$el):r==this.model.length-1?this.appendGroup(e):t(n.eq(r)).before(e.$el),this},appendGroup:function(e){var t=this.$roster.find(".roster-group").last(),n=t.siblings("dd");return n.length>0?n.last().after(e.$el):t.after(e.$el),this},getGroup:function(e){var t=this.get(e);return t?t.model:this.model.create({name:e,id:h(e)})},addContactToGroup:function(e,t){this.getGroup(t).contacts.add(e)},addExistingContact:function(e){var n;v.roster_groups?(n=e.get("groups"),n.length===0&&(n=[U])):n=[I],f.each(n,t.proxy(function(t){this.addContactToGroup(e,t)},this))},addRosterContact:function(e){return e.get("subscription")==="both"||e.get("subscription")==="to"?this.addExistingContact(e):e.get("ask")==="subscribe"||e.get("subscription")==="from"?this.addContactToGroup(e,q):e.get("requesting")===!0&&this.addContactToGroup(e,R),this}}),this.XMPPStatus=Backbone.Model.extend({initialize:function(){this.set({status:this.getStatus()}),this.on("change",t.proxy(function(e){this.get("fullname")===undefined&&v.getVCard(null,t.proxy(function(e,t,n,r,i){this.save({fullname:t})},this)),f.has(e.changed,"status")&&v.emit("statusChanged",this.get("status")),f.has(e.changed,"status_message")&&v.emit("statusMessageChanged",this.get("status_message"))},this))},sendPresence:function(e,t){typeof e=="undefined"&&(e=this.get("status")||"online"),typeof t=="undefined"&&(t=this.get("status_message"));var n;e==="unavailable"||e==="probe"||e==="error"||e==="unsubscribe"||e==="unsubscribed"||e==="subscribe"||e==="subscribed"?n=i({type:e}):e==="offline"?(n=i({type:"unavailable"}),t&&n.c("show").t(e)):(e==="online"?n=i():n=i().c("show").t(e).up(),t&&n.c("status").t(t)),v.connection.send(n)},setStatus:function(e){this.sendPresence(e),this.save({status:e})},getStatus:function(){return this.get("status")||"online"},setStatusMessage:function(e){this.sendPresence(this.getStatus(),e);var n=this.get("status_message");this.save({status_message:e}),this.xhr_custom_status&&t.ajax({url:this.xhr_custom_status_url,type:"POST",data:{msg:e}}),n===e&&this.trigger("update-status-ui",this)}}),this.XMPPStatusView=Backbone.View.extend({el:"span#xmpp-status-holder",events:{"click a.choose-xmpp-status":"toggleOptions","click #fancy-xmpp-status-select a.change-xmpp-status-message":"renderStatusChangeForm","submit #set-custom-xmpp-status":"setStatusMessage","click .dropdown dd ul li a":"setStatus"},initialize:function(){this.model.on("change:status",this.updateStatusUI,this),this.model.on("change:status_message",this.updateStatusUI,this),this.model.on("update-status-ui",this.updateStatusUI,this)},render:function(){var e=this.$el.find("select#select-xmpp-status"),n=this.model.get("status")||"offline",r=t("option",e),i,s=[],o=this;return this.$el.html(v.templates.choose_status()),this.$el.find("#fancy-xmpp-status-select").html(v.templates.chat_status({status_message:this.model.get("status_message")||D("I am %1$s",this.getPrettyStatus(n)),chat_status:n,desc_custom_status:D("Click here to write a custom status message"),desc_change_status:D("Click to change your chat status")})),r.each(function(){s.push(v.templates.status_option({value:t(this).val(),text:this.text}))}),i=this.$el.find("#target dd ul").hide(),i.append(s.join("")),e.remove(),this},toggleOptions:function(e){e.preventDefault(),t(e.target).parent().parent().siblings("dd").find("ul").toggle("fast")},renderStatusChangeForm:function(e){e.preventDefault();var t=this.model.get("status")||"offline",n=v.templates.change_status_message({status_message:t,label_custom_status:D("Custom status"),label_save:D("Save")});this.$el.find(".xmpp-status").replaceWith(n),this.$el.find(".custom-xmpp-status").focus().focus()},setStatusMessage:function(e){e.preventDefault(),this.model.setStatusMessage(t(e.target).find("input").val())},setStatus:function(e){e.preventDefault();var n=t(e.target),r=n.attr("data-value");r==="logout"?(this.$el.find(".dropdown dd ul").hide(),v.logOut()):(this.model.setStatus(r),this.$el.find(".dropdown dd ul").hide())},getPrettyStatus:function(e){var t;return e==="chat"?t=D("online"):e==="dnd"?t=D("busy"):e==="xa"?t=D("away for long"):e==="away"?t=D("away"):t=D(e)||D("online"),t},updateStatusUI:function(e){var t=e.get("status"),n=e.get("status_message")||D("I am %1$s",this.getPrettyStatus(t));this.$el.find("#fancy-xmpp-status-select").html(v.templates.chat_status({chat_status:t,status_message:n,desc_custom_status:D("Click here to write a custom status message"),desc_change_status:D("Click to change your chat status")}))}}),this.BOSHSession=Backbone.Model,this.Feature=Backbone.Model,this.Features=Backbone.Collection.extend({model:v.Feature,initialize:function(){this.addClientIdentities().addClientFeatures(),this.browserStorage=new Backbone.BrowserStorage[v.storage](h("converse.features"+v.bare_jid)),this.browserStorage.records.length===0?(v.connection.disco.info(v.domain,null,t.proxy(this.onInfo,this)),v.connection.disco.items(v.domain,null,t.proxy(this.onItems,this))):this.fetch({add:!0})},addClientIdentities:function(){return v.connection.disco.addIdentity("client","web","Converse.js"),this},addClientFeatures:function(){return v.connection.disco.addFeature(a.NS.CHATSTATES),v.connection.disco.addFeature("http://jabber.org/protocol/rosterx"),v.connection.disco.addFeature("jabber:x:conference"),v.connection.disco.addFeature("urn:xmpp:carbons:2"),v.connection.disco.addFeature(a.NS.VCARD),v.connection.disco.addFeature(a.NS.BOSH),v.connection.disco.addFeature(a.NS.DISCO_INFO),v.connection.disco.addFeature(a.NS.MUC),this},onItems:function(e){t(e).find("query item").each(t.proxy(function(e,n){v.connection.disco.info(t(n).attr("jid"),null,t.proxy(this.onInfo,this))},this))},onInfo:function(e){var n=t(e);if(n.find("identity[category=server][type=im]").length===0&&n.find("identity[category=conference][type=text]").length===0)return;n.find("feature").each(t.proxy(function(e,r){this.create({"var":t(r).attr("var"),from:n.attr("from")})},this))}}),this.RegisterPanel=Backbone.View.extend({tagName:"div",id:"register",className:"controlbox-pane",events:{"submit form#converse-register":"onProviderChosen"},initialize:function(e){this.reset(),this.$parent=e.$parent,this.$tabs=e.$parent.parent().find("#controlbox-tabs"),this.registerHooks()},render:function(){return this.$parent.append(this.$el.html(v.templates.register_panel({label_domain:D("Your XMPP provider's domain name:"),label_register:D("Fetch registration form"),help_providers:D("Tip: A list of public XMPP providers is available"),help_providers_link:D("here"),href_providers:v.providers_link,domain_placeholder:v.domain_placeholder}))),this.$tabs.append(v.templates.register_tab({label_register:D("Register")})),this},registerHooks:function(){var e=v.connection,n=e._connect_cb.bind(e);e._connect_cb=t.proxy(function(e,t,r){this._registering?this.getRegistrationFields(e,t,r)&&(this._registering=!1):n(e,t,r)},this)},getRegistrationFields:function(e,t,r){v.log("sendQueryStanza was called");var i=v.connection;i.connected=!0;var s=i._proto._reqToData(e);if(!s)return;if(i._proto._connect_cb(s)===a.Status.CONNFAIL)return!1;var o=s.getElementsByTagName("register"),u=s.getElementsByTagName("mechanism");return o.length===0&&u.length===0?(i._proto._no_auth_received(t),!1):o.length===0?(i._changeConnectStatus(a.Status.REGIFAIL,D("Sorry, the given provider does not support in band account registration. Please try with a different provider.")),!0):(i._addSysHandler(this.onRegistrationFields.bind(this),null,"iq",null,null),i.send(n({type:"get"}).c("query",{xmlns:a.NS.REGISTER}).tree()),!0)},onRegistrationFields:function(e){return e.getElementsByTagName("query").length!==1?(v.connection._changeConnectStatus(a.Status.REGIFAIL,"unknown"),!1):(this.setFields(e),this.renderRegistrationForm(e),!1)},reset:function(e){var t={fields:{},urls:[],title:"",instructions:"",registered:!1,_registering:!1,domain:null,form_type:null};f.extend(this,t),e&&f.extend(this,f.pick(e,Object.keys(t)))},onProviderChosen:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target),r=n.find("input[name=domain]"),i=r.val(),s=!1;if(!i){r.addClass("error");return}return n.find("input[type=submit]").hide().after(v.templates.registration_request({cancel:D("Cancel"),info_message:D("Requesting a registration form from the XMPP server")})),n.find("button.cancel").on("click",t.proxy(this.cancelRegistration,this)),this.reset({domain:a.getDomainFromJid(i),_registering:!0}),v.connection.connect(this.domain,"",t.proxy(this.onRegistering,this)),!1},giveFeedback:function(e,n){this.$(".reg-feedback").attr("class","reg-feedback").text(e),n&&t(".reg-feedback").addClass(n)},onRegistering:function(e,n){var r;console.log("onRegistering"),f.contains([a.Status.DISCONNECTED,a.Status.CONNFAIL,a.Status.REGIFAIL,a.Status.NOTACCEPTABLE,a.Status.CONFLICT],e)?(v.log("Problem during registration: Strophe.Status is: "+e),this.cancelRegistration(),n?this.giveFeedback(n,"error"):this.giveFeedback(D('Something went wrong while establishing a connection with "%1$s". Are you sure it exists?',this.domain),"error")):e==a.Status.REGISTERED&&(v.log("Registered successfully."),v.connection.reset(),r=this,this.$("form").hide(function(){t(this).replaceWith('<span class="spinner centered"/>'),r.fields.password&&r.fields.username?(v.connection.connect(r.fields.username+"@"+r.domain,r.fields.password,v.onConnect),v.chatboxviews.get("controlbox").switchTab({target:r.$tabs.find(".current")}).giveFeedback(D("Now logging you in"))):v.chatboxviews.get("controlbox").renderLoginPanel().giveFeedback(D("Registered successfully")),r.reset()}))},renderRegistrationForm:function(e){var n=this.$("form"),r=t(e),i;n.empty().append(v.templates.registration_form({domain:this.domain,title:this.title,instructions:this.instructions})),this.form_type=="xform"?(i=r.find("field"),f.each(i,t.proxy(function(e){n.append(c.xForm2webForm.bind(this,t(e),r))},this))):(f.each(Object.keys(this.fields),t.proxy(function(e){n.append("<label>"+e+"</label>");var r=t('<input placeholder="'+e+'" name="'+e+'"></input>');(e==="password"||e==="email")&&r.attr("type",e),n.append(r)},this)),f.each(this.urls,t.proxy(function(e){n.append(t('<a target="blank"></a>').attr("href",e).text(e))},this))),this.fields?(n.append('<input type="submit" class="save-submit" value="'+D("Register")+'"/>'),n.on("submit",t.proxy(this.submitRegistrationForm,this)),n.append('<input type="button" class="cancel-submit" value="'+D("Cancel")+'"/>'),n.find("input[type=button]").on("click",t.proxy(this.cancelRegistration,this))):(n.append('<input type="button" class="submit" value="'+D("Return")+'"/>'),n.find("input[type=button]").on("click",t.proxy(this.cancelRegistration,this)))},reportErrors:function(e){var n=this.$("form"),r,i=t(e).find("error text"),s=n.find(".form-errors");s.length?s.empty():(r='<legend class="form-errors"></legend>',n.find("p.instructions").length?n.find("p.instructions").append(r):n.prepend(r),s=n.find(".form-errors")),i.each(function(e,n){s.append(t("<p>").text(t(n).text()))}),i.length||s.append(t("<p>").text(D("The provider rejected your registration attempt. Please check the values you entered for correctness."))),s.show()},cancelRegistration:function(e){e&&e.preventDefault&&e.preventDefault(),v.connection.reset(),this.render()},submitRegistrationForm:function(e){e&&e.preventDefault&&e.preventDefault();var r=this.$("input.required:emptyVal");if(r.length){r.addClass("error");return}var i=t(e.target).find(":input:not([type=button]):not([type=submit])"),s=n({type:"set"}).c("query",{xmlns:a.NS.REGISTER}).c("x",{xmlns:a.NS.XFORM,type:"submit"});i.each(function(){s.cnode(c.webForm2xForm(this)).up()}),v.connection._addSysHandler(this._onRegisterIQ.bind(this),null,"iq",null,null),v.connection.send(s),this.setFields(s.tree())},setFields:function(e){var n=t(e).find("query"),r;n.length>0&&(r=n.find('x[xmlns="'+a.NS.XFORM+'"]'),r.length>0?this._setFieldsFromXForm(r):this._setFieldsFromLegacy(n))},_setFieldsFromLegacy:function(e){e.children().each(t.proxy(function(e,n){var r=t(n);if(n.tagName.toLowerCase()==="instructions"){this.instructions=a.getText(n);return}if(n.tagName.toLowerCase()==="x"){r.attr("xmlns")==="jabber:x:oob"&&r.find("url").each(t.proxy(function(e,n){this.urls.push(t(n).text())},this));return}this.fields[n.tagName.toLowerCase()]=a.getText(n)},this)),this.form_type="legacy"},_setFieldsFromXForm:function(e){this.title=e.find("title").text(),this.instructions=e.find("instructions").text(),e.find("field").each(t.proxy(function(e,n){var r=n.getAttribute("var");r?this.fields[r.toLowerCase()]=t(n).children("value").text():console.log("WARNING: Found field we couldn't parse")},this)),this.form_type="xform"},_onRegisterIQ:function(e){var t,n,r=null,i,s=e.getElementsByTagName("query");s.length>0&&(s=s[0]);if(e.getAttribute("type")==="error"){v.log("Registration failed."),r=e.getElementsByTagName("error");if(r.length!==1)return v.connection._changeConnectStatus(a.Status.REGIFAIL,"unknown"),!1;r=r[0].firstChild.tagName.toLowerCase(),r==="conflict"?v.connection._changeConnectStatus(a.Status.CONFLICT,r):r==="not-acceptable"?v.connection._changeConnectStatus(a.Status.NOTACCEPTABLE,r):v.connection._changeConnectStatus(a.Status.REGIFAIL,r),this.reportErrors(e)}else v.connection._changeConnectStatus(a.Status.REGISTERED,null);return!1},remove:function(){this.$tabs.empty(),this.$el.parent().empty()}}),this.LoginPanel=Backbone.View.extend({tagName:"div",id:"login-dialog",className:"controlbox-pane",events:{"submit form#converse-login":"authenticate"},initialize:function(e){e.$parent.html(this.$el.html(v.templates.login_panel({label_username:D("XMPP Username:"),label_password:D("Password:"),label_login:D("Log In")}))),this.$tabs=e.$parent.parent().find("#controlbox-tabs")},render:function(){return this.$tabs.append(v.templates.login_tab({label_sign_in:D("Sign in")})),this.$el.find("input#jid").focus(),this.$el.is(":visible")||this.$el.show(),this},authenticate:function(e){e&&e.preventDefault&&e.preventDefault();var n=t(e.target),r=n.find("input[name=jid]"),i=r.val(),s=n.find("input[name=password]"),o=s.val(),u=null,a=!1;v.bosh_service_url||(u=n.find("input#bosh_service_url"),v.bosh_service_url=u.val(),v.bosh_service_url||(a=!0,u.addClass("error"))),i||(a=!0,r.addClass("error")),o||(a=!0,s.addClass("error"));if(a)return;return this.connect(n,i,o),!1},connect:function(e,t,n){e&&e.find("input[type=submit]").hide().after('<span class="spinner login-submit"/>');var r=a.getResourceFromJid(t);r||(t+="/converse.js-"+Math.floor(Math.random()*139749825).toString()),v.connection.connect(t,n,v.onConnect)},remove:function(){this.$tabs.empty(),this.$el.parent().empty()}}),this.ControlBoxToggle=Backbone.View.extend({tagName:"a",className:"toggle-controlbox",id:"toggle-controlbox",events:{click:"onClick"},attributes:{href:"#"},initialize:function(){this.render()},render:function(){return t("#conversejs").prepend(this.$el.html(v.templates.controlbox_toggle({label_toggle:D("Toggle chat")}))),this.$el.hide(),this},hide:function(e){this.$el.fadeOut("fast",e)},show:function(e){this.$el.show("fast",e)},showControlBox:function(){var e=v.chatboxes.get("controlbox");e||(e=v.addControlBox()),v.connection.connected?e.save({closed:!1}):e.trigger("show")},onClick:function(e){e.preventDefault();if(t("div#controlbox").is(":visible")){var n=v.chatboxes.get("controlbox");v.connection.connected?n.save({closed:!0}):n.trigger("hide")}else this.showControlBox()}}),this.addControlBox=function(){return this.chatboxes.add({id:"controlbox",box_id:"controlbox",height:this.default_box_height,closed:!this.show_controlbox_by_default})},this.setUpXMLLogging=function(){this.debug&&(this.connection.xmlInput=function(e){console.log(e)},this.connection.xmlOutput=function(e){console.log(e)})},this.startNewBOSHSession=function(){t.ajax({url:this.prebind_url,type:"GET",success:function(e){this.session.save({rid:e.rid}),this.connection.attach(e.jid,e.sid,e.rid,this.onConnect)}.bind(this),error:function(e){delete this.connection,this.emit("noResumeableSession")}.bind(this)})},this.initConnection=function(){var e,t,n;if(this.connection&&this.connection.connected)this.setUpXMLLogging(),this.onConnected();else{if(!this.bosh_service_url&&!this.websocket_url)throw new Error("initConnection: you must supply a value for either the bosh_service_url or websocket_url or both.");if(("WebSocket"in window||"MozWebSocket"in window)&&this.websocket_url)this.connection=new a.Connection(this.websocket_url);else{if(!this.bosh_service_url)throw new Error("initConnection: this browser does not support websockets and bosh_service_url wasn't specified.");this.connection=new a.Connection(this.bosh_service_url)}this.setUpXMLLogging();if(this.keepalive){e=this.session.get("rid"),t=this.session.get("sid"),n=this.session.get("jid");if(this.prebind){if(!this.jid)throw new Error("initConnection: when using 'keepalive' with 'prebind, you must supply the JID of the current user.");e&&t&&n&&a.getBareJidFromJid(n)===a.getBareJidFromJid(this.jid)?(this.session.save({rid:e}),this.connection.attach(n,t,e,this.onConnect)):this.prebind_url?this.startNewBOSHSession():(delete this.connection,this.emit("noResumeableSession"))}else e&&t&&n&&(this.session.save({rid:e}),this.connection.attach(n,t,e,this.onConnect))}else if(this.prebind){if(!(this.jid&&this.sid&&this.rid))throw new Error("initConnection: If you use prebind and not keepalive, then you MUST supply JID, RID and SID values");this.connection.attach(this.jid,this.sid,this.rid,this.onConnect)}}},this._tearDown=function(){return this.initial_presence_sent=!1,this.roster&&this.roster.off().reset(),this.connection.roster._callbacks=[],this.rosterview&&(this.rosterview.model.off().reset(),this.rosterview.undelegateEvents().remove()),this.chatboxes.remove(),this.features&&this.features.reset(),this.minimized_chats&&(this.minimized_chats.undelegateEvents().model.reset(),this.minimized_chats.removeAll(),this.minimized_chats.tearDown().remove(),delete this.minimized_chats),this},this._initialize=function(){return this.chatboxes=new this.ChatBoxes,this.chatboxviews=new this.ChatBoxViews({model:this.chatboxes}),this.controlboxtoggle=new this.ControlBoxToggle,this.otr=new this.OTR,this.initSession(),this.initConnection(),this.connection&&this.addControlBox(),this},this._initializePlugins=function(){f.each(this.plugins,t.proxy(function(e){t.proxy(e,this)(this)},this))},e.connection&&(this.connection=e.connection),this._initializePlugins(),this._initialize(),this.registerGlobalEventHandlers(),v.emit("initialized")};var v=function(e){var n=d.chatboxviews.get(e.get("jid"));return{open:t.proxy(n.show,n),close:t.proxy(n.close,n),endOTR:t.proxy(e.endOTR,e),focus:t.proxy(n.focus,n),get:t.proxy(e.get,e),initiateOTR:t.proxy(e.initiateOTR,e),maximize:t.proxy(e.maximize,e),minimize:t.proxy(e.minimize,e),set:t.proxy(e.set,e)}},m=function(e){var t=d.chatboxes.get(e);if(!t){var n=d.roster.get(e);if(n===undefined)return d.log("Could not get roster item for JID "+e,"error"),null;t=d.chatboxes.create({id:e,jid:e,fullname:f.isEmpty(n.get("fullname"))?e:n.get("fullname"),image_type:n.get("image_type"),image:n.get("image"),url:n.get("url")})}return v(t)};return{initialize:function(e,t){d.initialize(e,t)},disconnect:function(){d.connection.disconnect()},account:{logout:function(){d.logOut()}},settings:{get:function(e){if(f.contains(Object.keys(d.default_settings),e))return d[e]},set:function(e,t){var n={};typeof e=="object"?f.extend(d,f.pick(e,Object.keys(d.default_settings))):typeof e=="string"&&(n[e]=t,f.extend(d,f.pick(n,Object.keys(d.default_settings))))}},contacts:{get:function(e){var t=function(e){var t=d.roster.get(a.getBareJidFromJid(e));return t?t.attributes:null};if(typeof e=="undefined")e=d.roster.pluck("jid");else if(typeof e=="string")return t(e);return f.map(e,t)},add:function(e,t){if(typeof e!="string"||e.indexOf("@")<0)throw new TypeError("contacts.add: invalid jid");return d.connection.roster.add(e,f.isEmpty(t)?e:t,[],function(t){d.connection.roster.subscribe(e,null,d.xmppstatus.get("fullname"))}),!0}},chats:{open:function(e){var t;return typeof e=="undefined"?(d.log("chats.open: You need to provide at least one JID","error"),null):typeof e=="string"?(t=m(e),t.open(),t):f.map(e,function(e){var t=m(e);return t.open(),t})},get:function(e){return typeof e=="undefined"?(d.log("chats.get: You need to provide at least one JID","error"),null):typeof e=="string"?m(e):f.map(e,m)}},rooms:{open:function(e,t){t||(t=a.getNodeFromJid(d.bare_jid));if(typeof t!="string")throw new TypeError("rooms.open: invalid nick, must be string");var n=function(e){var n=d.chatboxes.get(e);return d.log("jid"),n||(n=d.chatboxviews.showChat({id:e,jid:e,name:a.unescapeNode(a.getNodeFromJid(e)),nick:t,chatroom:!0,box_id:h(e)})),v(n)};if(typeof e=="undefined")throw new TypeError("rooms.open: You need to provide at least one JID");return typeof e=="string"?n(e):f.map(e,n)},get:function(e){if(typeof e=="undefined")throw new TypeError("rooms.get: You need to provide at least one JID");return typeof e=="string"?m(e):f.map(e,m)}},tokens:{get:function(e){if(!d.expose_rid_and_sid||typeof d.connection=="undefined")return null;if(e.toLowerCase()==="rid")return d.connection.rid||d.connection._proto.rid;if(e.toLowerCase()==="sid")return d.connection.sid||d.connection._proto.sid}},listen:{once:function(e,t){d.once(e,t)},on:function(e,t){d.on(e,t)},not:function(e,t){d.off(e,t)}},send:function(e){d.connection.send(e)},plugins:{add:function(e,t){d.plugins[e]=t},remove:function(e){delete d.plugins[e]},extend:function(e,t){e.prototype._super||(e.prototype._super={}),f.each(t,function(t,n){n==="events"?e.prototype[n]=f.extend(t,e.prototype[n]):(typeof t=="function"&&(e.prototype._super[n]=e.prototype[n]),e.prototype[n]=t)})}},env:{jQuery:t,Strophe:a,$build:s,$iq:n,$pres:i,$msg:r,_:f,b64_sha1:h}}});var config;typeof require=="undefined"&&(require={config:function(e){config=e}}),require.config({baseUrl:".",paths:{backbone:"components/backbone/backbone","backbone.browserStorage":"components/backbone.browserStorage/backbone.browserStorage","backbone.overview":"components/backbone.overview/backbone.overview",bootstrap:"components/bootstrap/dist/js/bootstrap",bootstrapJS:"components/bootstrapJS/index","converse-dependencies":"src/deps-website","converse-templates":"src/templates",eventemitter:"components/otr/build/dep/eventemitter",jquery:"components/jquery/dist/jquery","jquery-private":"src/jquery-private","jquery.browser":"components/jquery.browser/dist/jquery.browser","jquery.easing":"components/jquery-easing-original/index",moment:"components/momentjs/moment","strophe-base64":"components/strophejs/src/base64","strophe-bosh":"components/strophejs/src/bosh","strophe-core":"components/strophejs/src/core",strophe:"components/strophejs/src/wrapper","strophe-md5":"components/strophejs/src/md5","strophe-sha1":"components/strophejs/src/sha1","strophe-websocket":"components/strophejs/src/websocket","strophe-polyfill":"components/strophejs/src/polyfills","strophe.disco":"components/strophejs-plugins/disco/strophe.disco","strophe.roster":"src/strophe.roster","strophe.vcard":"src/strophe.vcard",text:"components/requirejs-text/text",tpl:"components/requirejs-tpl-jcbrand/tpl",typeahead:"components/typeahead.js/index",underscore:"components/underscore/underscore",utils:"src/utils",bigint:"src/bigint",crypto:"src/crypto","crypto.aes":"components/otr/vendor/cryptojs/aes","crypto.cipher-core":"components/otr/vendor/cryptojs/cipher-core","crypto.core":"components/otr/vendor/cryptojs/core","crypto.enc-base64":"components/otr/vendor/cryptojs/enc-base64","crypto.evpkdf":"components/crypto-js-evanvosberg/src/evpkdf","crypto.hmac":"components/otr/vendor/cryptojs/hmac","crypto.md5":"components/crypto-js-evanvosberg/src/md5","crypto.mode-ctr":"components/otr/vendor/cryptojs/mode-ctr","crypto.pad-nopadding":"components/otr/vendor/cryptojs/pad-nopadding","crypto.sha1":"components/otr/vendor/cryptojs/sha1","crypto.sha256":"components/otr/vendor/cryptojs/sha256",salsa20:"components/otr/build/dep/salsa20",otr:"src/otr",locales:"src/locales",jed:"components/jed/jed",af:"locale/af/LC_MESSAGES/converse.json",de:"locale/de/LC_MESSAGES/converse.json",en:"locale/en/LC_MESSAGES/converse.json",es:"locale/es/LC_MESSAGES/converse.json",fr:"locale/fr/LC_MESSAGES/converse.json",he:"locale/he/LC_MESSAGES/converse.json",hu:"locale/hu/LC_MESSAGES/converse.json",id:"locale/id/LC_MESSAGES/converse.json",it:"locale/it/LC_MESSAGES/converse.json",ja:"locale/ja/LC_MESSAGES/converse.json",nb:"locale/nb/LC_MESSAGES/converse.json",nl:"locale/nl/LC_MESSAGES/converse.json",pl:"locale/pl/LC_MESSAGES/converse.json",pt_BR:"locale/pt_BR/LC_MESSAGES/converse.json",ru:"locale/ru/LC_MESSAGES/converse.json",zh:"locale/zh/LC_MESSAGES/converse.json",action:"src/templates/action",add_contact_dropdown:"src/templates/add_contact_dropdown",add_contact_form:"src/templates/add_contact_form",change_status_message:"src/templates/change_status_message",chat_status:"src/templates/chat_status",chatarea:"src/templates/chatarea",chatbox:"src/templates/chatbox",chatroom:"src/templates/chatroom",chatroom_password_form:"src/templates/chatroom_password_form",chatroom_sidebar:"src/templates/chatroom_sidebar",chatrooms_tab:"src/templates/chatrooms_tab",chats_panel:"src/templates/chats_panel",choose_status:"src/templates/choose_status",contacts_panel:"src/templates/contacts_panel",contacts_tab:"src/templates/contacts_tab",controlbox:"src/templates/controlbox",controlbox_toggle:"src/templates/controlbox_toggle",field:"src/templates/field",form_captcha:"src/templates/form_captcha",form_checkbox:"src/templates/form_checkbox",form_input:"src/templates/form_input",form_select:"src/templates/form_select",form_textarea:"src/templates/form_textarea",form_username:"src/templates/form_username",group_header:"src/templates/group_header",info:"src/templates/info",login_panel:"src/templates/login_panel",login_tab:"src/templates/login_tab",message:"src/templates/message",new_day:"src/templates/new_day",occupant:"src/templates/occupant",pending_contact:"src/templates/pending_contact",pending_contacts:"src/templates/pending_contacts",register_panel:"src/templates/register_panel",register_tab:"src/templates/register_tab",registration_form:"src/templates/registration_form",registration_request:"src/templates/registration_request",requesting_contact:"src/templates/requesting_contact",requesting_contacts:"src/templates/requesting_contacts",room_description:"src/templates/room_description",room_item:"src/templates/room_item",room_panel:"src/templates/room_panel",roster:"src/templates/roster",roster_item:"src/templates/roster_item",search_contact:"src/templates/search_contact",select_option:"src/templates/select_option",status_option:"src/templates/status_option",toggle_chats:"src/templates/toggle_chats",toolbar:"src/templates/toolbar",trimmed_chat:"src/templates/trimmed_chat"},map:{"*":{jquery:"jquery-private"},"jquery-private":{jquery:"jquery"}},tpl:{templateSettings:{evaluate:/\{\[([\s\S]+?)\]\}/g,interpolate:/\{\{([\s\S]+?)\}\}/g}},shim:{"crypto.aes":{deps:["crypto.cipher-core"]},"crypto.cipher-core":{deps:["crypto.enc-base64","crypto.evpkdf"]},"crypto.enc-base64":{deps:["crypto.core"]},"crypto.evpkdf":{deps:["crypto.md5"]},"crypto.hmac":{deps:["crypto.core"]},"crypto.md5":{deps:["crypto.core"]},"crypto.mode-ctr":{deps:["crypto.cipher-core"]},"crypto.pad-nopadding":{deps:["crypto.cipher-core"]},"crypto.sha1":{deps:["crypto.core"]},"crypto.sha256":{deps:["crypto.core"]},bigint:{deps:["crypto"]},"strophe.disco":{deps:["strophe"]},"strophe.register":{deps:["strophe"]},"strophe.roster":{deps:["strophe"]},"strophe.vcard":{deps:["strophe"]}}}),typeof require=="function"&&require(["converse"],function(e){window.converse=e}),define("main",function(){}); |