Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/jsxc.nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorKlaus <klaus@jsxc.org>2015-11-17 19:05:59 +0300
committerKlaus <klaus@jsxc.org>2015-11-17 19:05:59 +0300
commitb7faa16850c9eb90cca20c5134e3699d3aadfc22 (patch)
tree60e13be8b5f304c8760999b3827ad560cab44a10 /build
parent1822517d4a53a221720b084a0faa008fafcabc84 (diff)
build v2.1.5
Diffstat (limited to 'build')
-rw-r--r--build/appinfo/info.xml2
-rw-r--r--build/appinfo/version2
-rw-r--r--build/css/jquery-ui.min.css4
-rw-r--r--build/css/jsxc.oc.css65
-rw-r--r--build/css/jsxc.oc.lte6.css47
-rw-r--r--build/js/admin.js4
-rw-r--r--build/js/eof.js4
-rw-r--r--build/js/jsxc/css/jquery-ui.min.css4
-rw-r--r--build/js/jsxc/css/jquery.colorbox.css189
-rw-r--r--build/js/jsxc/css/jsxc.css26
-rw-r--r--build/js/jsxc/css/jsxc.webrtc.css8
-rw-r--r--build/js/jsxc/css/magnific-popup.css374
-rw-r--r--build/js/jsxc/jsxc.js15
-rw-r--r--build/js/jsxc/jsxc.min.js16
-rw-r--r--build/js/jsxc/jsxc.min.js.map2
-rw-r--r--build/js/jsxc/lib/jsxc.dep.js2
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js49
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js.map2
-rw-r--r--build/js/ojsxc.js18
19 files changed, 724 insertions, 109 deletions
diff --git a/build/appinfo/info.xml b/build/appinfo/info.xml
index f26e54b..6c218a0 100644
--- a/build/appinfo/info.xml
+++ b/build/appinfo/info.xml
@@ -3,7 +3,7 @@
<id>ojsxc</id>
<name>JavaScript XMPP Chat</name>
<description>XMPP Chat with OTR</description>
- <version>2.1.4</version>
+ <version>2.1.5</version>
<licence>MIT</licence>
<author>Klaus Herberth</author>
<require>5</require>
diff --git a/build/appinfo/version b/build/appinfo/version
index 7d2ed7c..cd57a8b 100644
--- a/build/appinfo/version
+++ b/build/appinfo/version
@@ -1 +1 @@
-2.1.4
+2.1.5
diff --git a/build/css/jquery-ui.min.css b/build/css/jquery-ui.min.css
new file mode 100644
index 0000000..c7f6809
--- /dev/null
+++ b/build/css/jquery-ui.min.css
@@ -0,0 +1,4 @@
+/*! jQuery UI - v1.10.4 - 2014-01-17
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(images/animated-overlay.gif);height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file
diff --git a/build/css/jsxc.oc.css b/build/css/jsxc.oc.css
index b0f89ec..98a4b27 100644
--- a/build/css/jsxc.oc.css
+++ b/build/css/jsxc.oc.css
@@ -1,5 +1,5 @@
/*!
- * ojsxc v2.1.4 - 2015-09-10
+ * ojsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
@@ -645,7 +645,6 @@ img.mfp-img {
#jsxc_dialog .progress.active .progress-bar,
#jsxc_dialog .progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
- -o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite; }
#jsxc_dialog .progress-bar-success {
@@ -2563,70 +2562,70 @@ div.jsxc_transfer, div.jsxc_transfer.jsxc_disabled:hover {
background: url('../js/jsxc/img/emotions/angel.png'); }
.jsxc_angry {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/angry.png'); }
.jsxc_smile {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/smile.png'); }
.jsxc_grin {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/grin.png'); }
.jsxc_sad {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/sad.png'); }
.jsxc_wink {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/wink.png'); }
.jsxc_tonguesmile {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/tonguesmile.png'); }
.jsxc_surpised {
background: url('../js/jsxc/img/emotions/surpised.png'); }
.jsxc_kiss {
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB10RVh0Q29tbWVudABDcmVhdGVkIHdpdGggVGhlIEdJTVDvZCVuAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuMjBZn3ZRAAAG2ElEQVRIS+1WbVCUVRS+rMAqUrQEjCgRypgoEmtA4gqzuVrI+IEr60dZjaONY5o/1HTtS4sp1CA0LScjEXOaMafSQVFUDBUU0RUFlVklRtxcpdV1c9tpZ0l8OufuLowlaR8/e2eeufe959zz3HPuuedeIf7/uo9AHIkWKhTiu/g4cV7zlLBnpgp7wgBxnsdYRmCd/+xTBwWKspysgI7STwajtWEWHJfz4b5eDM/1z+G+ugp282zsKB6CqeMCOpRKUUbM6n/DHkST87NHifa6AxlwXCuF+9ZxeJy1uP2LF55bR+W/h/vUun7aAtOBTGTrRDvPJbCNv/X1ovDtXWlUoO3CXDiv74LLXg73zTJ4HLtw++ddsuV/13XCjXJvyyA9W/OrKHpbAYrUXmLt9aDMQUy6/gMBy7lc8rSEPNkMp3UT3D+VwGPbDM+NzXBdI9C442oJoRS2y5tk3+kbd140YPvHwk/+QJ7nGxcKmKrCYWtdBcePBbCez8PMl/VYMHcS3NYP4bpaAOeVQjgsBbBfLkD9sbcw44XJMC6eIsecV1hnNVyNKhS/J+AL+186rtZmiPbDuwXqq5NhvWiE45IR61frUVhYiLy8PHz75XTYLy2FrcUo0fbDMqx4U4+ioiIYjUZUls2S46zjaEyGu17A8Jzc8+4TjrN37zYiPShgrk2EzTwLzkuzYZg4DAaDQWLBnFS0URZbSSbbplnQjVJ3yo0Lh8PSxPJXYDUlwnFSoGmPgDJYZvs9v7icLNFhrhJoPSJgN4XD1TwR7uYcREX2RnR0tETm8Ei0NemJcBKs5yah9fREhPbuJWVRUVHIye5HuZFDx24immtVsNQItNUJOmqio7tzvrC4gBKKFHmVtxsJF5LgNmfyHnUicVAIrA0jYTmdibaGDJir0++SazVhcrz15FCc/Z68PSTQfFig9CNpg4vM3V8AVZ+z+wWsxwRcJi+xpyEQzsb+UAR0ESclKGE5lSBhOzMELUcG3kU8JrM3HGf6o7U6UBLzttXvE6irEPBVuLuJuQyyt3YKi+cMg87wiV70r0B0ZECnce2IYDTXRKL1eARsJyLlloT07JLP1PeAs14hI8fEpgMCx4i4Zq9A7GPi/J881qQq7Gu+GIFPt2ZjbUkmNiePx7aBWlp5MPRjH0JMTIzE/NkhqN+voPApYKtVwGFSQKd5pFO+YXmwXHxLdRcxk1aVC6Sohf1PxGnqIHt5XCr2xQ7zIiYZFX2H4uv+GiwyDoVOp4NWq8XWz3pID9gbf+Ksf1flk4+AuaLLWw4ze/yXxHzLbHlyHMri07Fh0zQUPj0D+6KHYnc/NSp3R2HR/FisWBolSeVx82U/Z6yFEmjJ3HgUrw6Xi2FZQ2VXmLkuHKY9vmeoeeOLnp6GCvJ2zaLnsWNVOvb1SUTxloGdhtiYJKQEZAJORCa20Sngvp+Q9WRi+ZKKPa7c2U1ycaqPnjwQ5Y+nSE/3RCdhd99kmCrD5XFgo7xvkqjWS8TkfrDcn0hMyP8M/wLWr+zmOPHhfn6C6CgseRbL1qnxWuIELE/ORUuNd8/8+8mJw8T8z54zeGFMwEfGv/9chI5949Ojvj67+wIi+BKvImVe6da1AmnJlBjbvURcVBh/9JYJ/CFmYvaaF7FyiYAu3avfQBnteyB0e1Gox2hFO0/ksO7fIpCVKTB+lMCGd2jPaFEcYibz77P/2FTtIJ1CgZnT6dgkCbw5j3R9WzN+9H0uCd9y8le8TqXucDCVw54wHwqGiRJjY57AnKnehWjJE51GYEwG9UcIaNKopf7sF0mPyJsOBsriw1j9huKBrkXm9j0EqOTVPE7oj+bjsbDVR8LVEEoFI1B6zZ527a0CdZVUWL4Ph/loDKwnB8iy+dW6cC6T/Ap5oIcAk8unz4ol5PGJYWg+OVJeDI5zI+FsyoC9MR3WU6mw1Kei5dRwmI9rqPXq2M6yfCQ25sf+7aePPwHkYy/rmR7tNeWJsDTkwNZkgONiLr0qp6Dt3BS6Fg2wNObKlscc5lw0HdFRBkf+s8deUFCQIjQ0NFilUj1M92yWStW7Tj9WeWfbxiHk5VjYLr5Ej8B5hAXUpwu/0YCyUg1m6PvciXj0oTrvHNXDbINt3fexFxISEpSUlDQhJSXl/bS0tFLCTsJ+wiEaP0WXhIXs3UwcFPwrXSq/MRIHKX+NiAi7yTLWYV3fHJ5byrbYJtvudgFKpTIwISFBS8qLadJawlYfeQW1B31Gj1BbTajxgfs8xoSsw7pMynPXsi22ybbv67mCMosUe4SFhfWMIHfoSRNJ4SOnYgbExsY+ER8fP5gwxIfBPMYy1mFdnsNz2Qbbutf3O/mFJW1ONGIpAAAAAElFTkSuQmCC'); }
+ background: url('../js/jsxc/img/emotions/kiss.png'); }
.jsxc_sunglassess {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/sunglassess.png'); }
.jsxc_crysad {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/crysad.png'); }
.jsxc_doubt {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/doubt.png'); }
.jsxc_zip {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/zip.png'); }
.jsxc_thumbsup {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/thumbsup.png'); }
.jsxc_thumbsdown {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/thumbsdown.png'); }
.jsxc_beer {
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAACXZwQWcAAAAeAAAAHgD4T+E9AAAF90lEQVRIx+WWa4xVVxXHf/s89h1gGDtMGR4SOoUCrWigU5qxip/EpBb9UGOMNY0EzKTG0CZ+aEzQ8qHGxMY0qY8YjK+GGAdbSxPDqwoxWFohGh4SKsIMA1NgWi7z4N4757H32Xv54c4MdyzQwccnd3KSc3b2Wb/1/691Thb8vy11m+fXAJ8GmoFEKZVore/K8/wY8CLg/hdJruru7k4vXbokWZbJwMCAHD58WIqikF27dkl7e/t+pdS3gGX/HUuUeqKrq+toZ2dn/+DgoHjvJc9z8d5L40qSRE6fPi3d3d1jpVLpB0Drf8Jt27x5s/XeS5qmYoyZAmxMYOJMnufS29srHR0dbwDRvwON29raXj5w4MBkYGutZFk2mUCSJJKm6XvUF0UhPT09Hnj0tqlhGD5z6NAhPwFsVOucE2vtlP08zyfvjTFSLpeltbX1t7fLvW/16tXnJwIbY6Qoiim2WmtlbGxMrLXinBPv/eSZNE0lTVNZt27d32+LunLlyqO1Wm2yrhOwCTVJkkiWZeKcm2JvYwIjo6Myb8GCU8CMGzGCG22uWLGifdasWURRhIggIuR5jogQhiEAWmuC4PrrSinSNAVARKgFMT/cuetD7Qs/uAsoTUtxS0tLT7ValaIoJhUnSTKputHWxmWMkbGrx+VCZUzeHByW41Ujv/rjGxJG0XenpbhSqew5cuTIlL2SDiaVuWyQdHA3xhicc/ikDymqxHFMkBxnxOV8/qOdlT/t3S0fXvMg67/4pSeBO98XDBw4ePCgD8OQOI6RooY5uQF7/nmKd16m6NuKtr243i2YM1uw/c9jB3fgvceF7fhgJkmt+so3Nj7+68sXzvPZxx6fCTw8HfDlbdu27R0eHsblZbKTGwjmrkdFLfj0bcI5n0SV5hO3PkDU2kXQ+gnc6GHSs99GBp6rRxAkHRvb8sqLP/f3rrqfMIo+Mh0w5XJ5R39/P85cISgtBFdDvAUV4X2B2GHEXEXMEGKHCFs6iZvmEsy6Z7zbABi40Hv23ebZs4m1nt0Y/1a/tDatNQqFt8NQ1EAK8AnYMkIICOAbZMwCN9YYY97CxXe151mGK4p8WuBSqdSxZMkSkuQ0urgG2UVQCrxBIcgEKNCoYgRREai07krdauJYP/PolzeG/Wf/gTXm7LSszvN83xNPPlV914O4DHFJ3Vo7jPcOsSNIPgDJGcSUEXMFyd+GYhSAWOvPbP3Rtq/dveJe9r+60wGvTdfq106eOvU3Bx/HXgEKJoonYYZyoxPCEBWjpEAIEWKUUvx0zx/aO5Yt58rly7z0s5/sBPqmC74DmAMgxbU6AT+OKiMIojRKDKKaQLJ6Wi5BKUXHsuXUKhWe3vDYheq10af+NfhNwYsXL/7dj1944b4SAkUVFy1AFVdRrnL9kNKIGCCo11gM+BxEeP33+3ju6a//5WL/uS8A70wXPH/Tpk1rux5cg00H8eEMVO2voAIQjwQzQOpNpKRAVAgEKLGA0FQ5xN6XdpQv9p97iJvMYTdrrqGenp5jJ06coKl5EdG8z6FwoDTgUL4GktcvXF0pHgEKPZ80XsJbx472c4vhL7zJvh8aGnpp+/btzS6MHpi39itBnJ9DJ29NjqUKptyDZ2zOI1xa/hu+9+z3s9f37dkInL8ZeDrj7ac6P7b2F1/95tZFD91/J7Ov7aFUO05k62Ur4vnkzaupfuAR/nzsKtu+8+zFo28e2gjsv1XQG4K11kFTU1OktW7SWs8IgmCuiGycMbtl/fJVq+9evPQefcecNgBGh4cY6Os1Z04c70+rld1KqV9678vGmNQYk2VZVhhj/C3Bzc3N8dKlSx/WWncppRZR/6RmAlqp8Q6CwFqrvfcRQBAERRzH9SKDFxEHGCABRkXkojHmSF9f375arWYnWFO6enyWqsRxPKKUam7oAQ/E489BHMdFQ9LC9Z+2AyyQAdVx8Ii1tuK9l/e1OgxDtNZhqVSK4zguBUGgoygqBUGggyCItNahUkoBjE8ezntfeO9NURS5995Ya/M8z60xxjn33ub+JwDvFRhj5xjnAAAAJnpUWHRDb21tZW50AAB42nMuSk0sSU1RKM8syVAIyUhVcPf0DQAAUucHI5DLZXAAAAAASUVORK5CYII='); }
+ background: url('../js/jsxc/img/emotions/beer.png'); }
.jsxc_devil {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/devil.png'); }
.jsxc_kissing {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/kissing.png'); }
.jsxc_rose {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/rose.png'); }
.jsxc_music {
background: url('../js/jsxc/img/emotions/music.png'); }
.jsxc_love {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/love.png'); }
.jsxc_tired {
background: url('../js/jsxc/img/emotions/tired.png'); }
.jsxc_surprised {
- background: url('data:image/png;base64,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'); }
+ background: url('../js/jsxc/img/emotions/surprised.png'); }
#jsxc_roster {
position: fixed;
@@ -3191,7 +3190,7 @@ ul.jsxc_vCard {
cursor: pointer; }
.jsxc_window .jsxc_emoticons:after {
content: ' ';
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALHQAACx0BpBPQ5gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGtSURBVDiNrdS7a1RBFAbw3+7KKlYKamGI6D9gBGsfCFoogijia0k6LRURG0ufaAjE/Qds1CKFlTZaWUgIQgo7kfhCJVhYqEUUvBZzbhzu3l1Z8YOBmW++890zc8+Zhnqsxinsx1asDf4LXuAR7uJ7NbBRY3YSNzGC13iKz7G3DruwBR9xMYxr0cB1FJjFjn7C2JsN7Y0+ibkSgkm0BpiVaIW2wNXq5hH8CsGwmIrYwyWxSrqruSyzDbiM0zUGnchoNNYr8BwLWAnjkfbeLOhOcAX2ZPy2jH+Y8fuC6zRxAB/wJBP8yOZL2fxnBFb5x/gUXl7p/fVrcB5H9eIgLmB9hb+Pl/ANt2oCh8Ukvjb1qaF/RROL2PgfvEaw2MQ8dvqT6aj05/+GcWyKeUPqnvlyo5B6FKalQj03wOxsaLqx3h0eHVJhv5N6s4U2HoTgGSawPcZEcEVo2lJhz+FteBHOZR+XRzgjVX9RGQtSB5VXNJVnl6Or/nEYw6EYYxmfPw5dNWjhtuGfr24ce/loVZzANWw2+IF9g0u4N+DDy2jjGGbwXurbpZjP4HhoevAb11xtRVQWs+YAAAAASUVORK5CYII=');
+ background-image: url('../js/jsxc/img/smiley.png');
background-position: center center;
background-repeat: no-repeat;
height: 30px;
@@ -3267,18 +3266,6 @@ ul.jsxc_vCard {
border-radius: 0;
box-sizing: border-box;
text-align: right; }
- .jsxc_window input::-webkit-input-placeholder {
- color: #000;
- opacity: 0.3; }
- .jsxc_window input::-moz-placeholder {
- color: #000;
- opacity: 0.3; }
- .jsxc_window input:-ms-input-placeholder {
- color: #000;
- opacity: 0.3; }
- .jsxc_window input::placeholder {
- color: #000;
- opacity: 0.3; }
.jsxc_window .jsxc_tools {
height: 26px;
float: right; }
@@ -3661,7 +3648,7 @@ div:fullscreen {
border: 1px solid #fff; }
div.jsxc_video {
- background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMiIKICAgd2lkdGg9IjIwIgogICBoZWlnaHQ9IjIwIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczgiIC8+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDM3ODg1OTQsMCwwLDAuMDM3ODg1OTQsLTAuNDEzNDA3OTMsLTIuNjMxMDcxNikiPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzkwNiIKICAgICAgIHN0eWxlPSJmaWxsOiM4MDgwODA7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDM2MS42NTE0OCwzMTMuNTE3NjggMTc3LjE2MDc0LC0xMzEuNzg1MTYgMCwzMDIuMjI5OTkgTCAzNTguOTczMzgsMzUwLjE4NTE3IFogTSAxMC45MTE5MjIsMTgyLjQwNjM0IGwgMzc4LjM3MjY3OCwwIDAsMzAyLjY1NTgyIC0zNzguMzcyNjc4LDAgeiIgLz4KICA8L2c+Cjwvc3ZnPgo=');
+ background-image: url('../js/jsxc/img/camera_icon_grey.svg');
background-repeat: no-repeat;
background-position: center center;
background-size: 15px 15px; }
@@ -3791,7 +3778,7 @@ div.jsxc_video {
background-color: #383C43; }
#jsxc_windowList, #jsxc_windowListSB {
- z-index: 150; }
+ z-index: 1050; }
#jsxc {
padding: 20px; }
@@ -3827,13 +3814,13 @@ div.jsxc_video {
.jsxc_success {
background-color: #A1F6BB;
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5QTFRFAIAA////AH8A3+/fAFAAudy5OJw4D4cPAE8Acrlyc7lzAE4ADIYMAIgAAI0AAF0AAE0A/P38AHQAAIUAAIQAcbhxAJIAAGEA+fz5AHwAXK5cAHYAbrduC4ULAIEAAFgAAG8AAGwAAI4AAFEADYYNAH4AAI8AAGAAAHAAAF4AAFYAAHEAAGsAAFkAt9y3/f79AJAAPJo8AIMAWqlaAHMAsdGxUaRR2OfYCWAJAJEAG2sbA2wDBlQGCoUKAIwA1ejVzOTMAHIAw9zDAIoAAIYA2OjYAFUAxuDGNZo1AFcAJG4kAF8AuNy4D3QPAFMAAFwAt9G3AFIAnLycAIIAGHMYCYQJM3QzAJMAS5tLmcGZAHsAZphmAHoAWq1aRZVFVKZU+fv5EnUSOJ04b7dvlrmWDG8MCWEJBlcGAIkA////s2yFswAAAGp0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALzk3OMAAADxSURBVHjaJM9VbgNBEATQHtidZUYzc5jRATvMzExz/wvEXvdXqaWS6gEfnCCLlcrepzDMwDlRrmHadb3cWoYMHyQF4G2XSutuDp4Jh4kMfrr8mwwCoxcXwOcwnm0XPeM2qOl4asXJHoFfbRbAWKrpMGPP/WAfPmbNzoNu6PBqo/5yWgRmtsJGDPF8hLpX+yEDdkoPFl4adxHaeG+e1BmIjnSB7PsI7R7XW3RQkbG6+oUQ2vo+zJcplkHQOhJ9fDtbzO9Qa1MTgCt4TKU3v+dlyQpBSabjoiVJVFXbkCIjnFZ1TDONNSXBjfiMiXLC/xdgAGiSKD8R0WLTAAAAAElFTkSuQmCC");
+ background-image: url("../img/pass-icon.png");
color: #003300;
border-color: #003300; }
.jsxc_fail {
background-color: #FF9999;
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKVQTFRF0wAAvwAAxQAAyQAA+P+EuQAA1wAAzwAAqAAA5KpY4AAAsgAA2gAA/Ozs/zMz4gAArQAA3gAAowAA/+3t//Dw0QAA8t1y1lUs/zY24ohG7sxq4BgYsxEJzFct4BEJ5QAA46pYwykV0gAA1AAAvREJ4Roa4xcX5AAA0AAAzQAA2A0N/zAwzAAAwgAA3RcX8+57ywAA3RgY4xoa1QAA4RcX1gkJ////3JZElQAAADd0Uk5T////////////////////////////////////////////////////////////////////////ABBZnYsAAACeSURBVHjaTM/HAoIwEATQUYISNRGkN7H3XvL/n2Z24eC7zOzcFsYY9ZqynbIH7L0ddT6KBlUGQTAXYm6jVAbqNrFyIXLKp8J3QKQQkssJLRq4vBEPCQ1c1jg6JE2SlEuMR58VRZsXNNfevz0al2zkYskFyDC26ruoKd0zIg3f9yspKxsHHcLYxes4OqTnQo0Z8VY64m9pYZm9zU+AAQAXihCg6/HjBgAAAABJRU5ErkJggg==");
+ background-image: url("../img/fail-icon.png");
color: #800000;
border-color: #800000; }
diff --git a/build/css/jsxc.oc.lte6.css b/build/css/jsxc.oc.lte6.css
new file mode 100644
index 0000000..885c785
--- /dev/null
+++ b/build/css/jsxc.oc.lte6.css
@@ -0,0 +1,47 @@
+div#jsxc_roster {
+ background: url("%webroot%/core/img/noise.png") #383C43; }
+
+#jsxc_menu > span {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/gear_grey.svg"); }
+
+div.jsxc_settings {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/gear_grey.svg"); }
+
+div.jsxc_settings:hover, div.jsxc_settings.hover {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/gear_white.svg"); }
+
+div.jsxc_transfer {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/padlock_open_grey.svg"); }
+
+div.jsxc_transfer:hover {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/padlock_open_white.svg"); }
+
+div.jsxc_transfer.jsxc_fin {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/padlock_close_grey.svg"); }
+
+div.jsxc_transfer.jsxc_enc {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/padlock_close_orange.svg"); }
+
+div.jsxc_transfer.jsxc_enc.jsxc_trust {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/padlock_close_green.svg"); }
+
+#jsxc_buddylist .jsxc_chaticon {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/speech_balloon_white.svg"); }
+
+#jsxc_buddylist .jsxc_videoicon {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/camera_icon_white.svg"); }
+
+div.jsxc_window .jsxc_emoticons:after {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/smiley.png"); }
+
+div.jsxc_video {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/camera_icon_grey.svg"); }
+
+div.jsxc_video:not(.jsxc_disabled):hover, #jsxc_buddylist .jsxc_options .jsxc_video {
+ background-image: url("%appswebroot%/ojsxc/js/jsxc/img/camera_icon_white.svg"); }
+
+.jsxc_success {
+ background-image: url("%appswebroot%/ojsxc/img/pass-icon.png"); }
+
+.jsxc_fail {
+ background-image: url("%appswebroot%/ojsxc/img/fail-icon.png"); }
diff --git a/build/js/admin.js b/build/js/admin.js
index f536d5d..7c75212 100644
--- a/build/js/admin.js
+++ b/build/js/admin.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v2.1.4 - 2015-09-10
+ * ojsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
diff --git a/build/js/eof.js b/build/js/eof.js
index 81e7db9..6a43bce 100644
--- a/build/js/eof.js
+++ b/build/js/eof.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v2.1.4 - 2015-09-10
+ * ojsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
diff --git a/build/js/jsxc/css/jquery-ui.min.css b/build/js/jsxc/css/jquery-ui.min.css
new file mode 100644
index 0000000..c7f6809
--- /dev/null
+++ b/build/js/jsxc/css/jquery-ui.min.css
@@ -0,0 +1,4 @@
+/*! jQuery UI - v1.10.4 - 2014-01-17
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(images/animated-overlay.gif);height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file
diff --git a/build/js/jsxc/css/jquery.colorbox.css b/build/js/jsxc/css/jquery.colorbox.css
new file mode 100644
index 0000000..77c1504
--- /dev/null
+++ b/build/js/jsxc/css/jquery.colorbox.css
@@ -0,0 +1,189 @@
+/* Remove close button from firstrunwizard */
+#closeWizard {
+ display: none !important;
+}
+
+/*
+ Colorbox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox,#cboxOverlay,#cboxWrapper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 9999;
+ overflow: hidden;
+}
+
+#cboxWrapper {
+ max-width: none;
+}
+
+#cboxOverlay {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+}
+
+#cboxMiddleLeft,#cboxBottomLeft {
+ clear: left;
+}
+
+#cboxContent {
+ position: relative;
+}
+
+#cboxLoadedContent {
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+#cboxTitle {
+ margin: 0;
+}
+
+#cboxLoadingOverlay,#cboxLoadingGraphic {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow {
+ cursor: pointer;
+}
+
+.cboxPhoto {
+ float: left;
+ margin: auto;
+ border: 0;
+ display: block;
+ max-width: none;
+ -ms-interpolation-mode: bicubic;
+}
+
+.cboxIframe {
+ width: 100%;
+ height: 100%;
+ display: block;
+ border: 0;
+}
+
+#colorbox,#cboxContent,#cboxLoadedContent {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of Colorbox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay {
+ background: #000;
+}
+
+#colorbox {
+
+}
+
+#cboxContent {
+ margin-top: 20px;
+}
+
+.cboxIframe {
+ background: #fff;
+}
+
+#cboxError {
+ padding: 50px;
+ border: 0px solid #ccc;
+}
+
+#cboxLoadedContent {
+ border: 0px solid #555;
+ background: #fff;
+ border-radius: 5px;
+}
+
+#cboxTitle {
+ position: absolute;
+ top: -20px;
+ left: 0;
+ color: #ccc;
+}
+
+#cboxCurrent {
+ position: absolute;
+ top: -20px;
+ right: 0px;
+ color: #ccc;
+}
+
+#cboxSlideshow {
+ position: absolute;
+ top: -20px;
+ right: 90px;
+ color: #fff;
+}
+
+#cboxPrevious:hover {
+ background-position: bottom left;
+}
+
+#cboxNext:hover {
+ background-position: bottom right;
+}
+
+#cboxLoadingOverlay {
+ background: #fff;
+}
+
+#cboxClose {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ display: block;
+ opacity: 0.5;
+ width: 19px !important;
+ height: 19px;
+ border: 0px;
+ text-indent: -9999px;
+ background-color: #fff;
+}
+#cboxClose:before {
+ content: '×';
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ display: block;
+ width: 19px;
+ height: 19px;
+ opacity: 0.5;
+ text-indent: 0;
+ text-align: center;
+ line-height: 19px;
+ font-size: 19px;
+}
+
+#cboxClose:before:hover {
+ opacity: 1;
+}
+
+#cboxClose:hover {
+ background-position: right center !important;
+ opacity: 1.0;
+}
+
+/*
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
+*/
+.cboxIE #cboxTopLeft,.cboxIE #cboxTopCenter,.cboxIE #cboxTopRight,.cboxIE #cboxBottomLeft,.cboxIE #cboxBottomCenter,.cboxIE #cboxBottomRight,.cboxIE #cboxMiddleLeft,.cboxIE #cboxMiddleRight
+ {
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,
+ endColorstr=#00FFFFFF);
+} \ No newline at end of file
diff --git a/build/js/jsxc/css/jsxc.css b/build/js/jsxc/css/jsxc.css
index 378986a..d08f398 100644
--- a/build/js/jsxc/css/jsxc.css
+++ b/build/js/jsxc/css/jsxc.css
@@ -3034,28 +3034,28 @@ ul.jsxc_vCard {
background-repeat: no-repeat;
background-position: center center; }
-@-webkit-keyframes bounce{
- 0%{
+@-webkit-keyframes bounce {
+ 0% {
bottom: 0;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
- 12%{
+ 12% {
bottom: 5px;
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
- 25%{
+ 25% {
bottom: 0;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
- 37%{
+ 37% {
bottom: 5px;
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
- 50%{
+ 50% {
bottom: 0;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
- 100%{
+ 100% {
bottom: 0; } }
@keyframes bounce {
@@ -3253,18 +3253,6 @@ ul.jsxc_vCard {
border-radius: 0;
box-sizing: border-box;
text-align: right; }
- .jsxc_window input::-webkit-input-placeholder{
- color: #000;
- opacity: 0.3; }
- .jsxc_window input::-moz-placeholder{
- color: #000;
- opacity: 0.3; }
- .jsxc_window input:-ms-input-placeholder{
- color: #000;
- opacity: 0.3; }
- .jsxc_window input::placeholder {
- color: #000;
- opacity: 0.3; }
.jsxc_window .jsxc_tools {
height: 26px;
float: right; }
diff --git a/build/js/jsxc/css/jsxc.webrtc.css b/build/js/jsxc/css/jsxc.webrtc.css
index fa3e449..e4bcbf2 100644
--- a/build/js/jsxc/css/jsxc.webrtc.css
+++ b/build/js/jsxc/css/jsxc.webrtc.css
@@ -110,11 +110,11 @@ div:fullscreen {
height: 100%;
background-color: #000; }
div:-webkit-full-screen.jsxc_localvideo {
- border: 1px solid #fff; }
+ border: 1px solid #fff; }
div:-moz-full-screen.jsxc_localvideo {
- border: 1px solid #fff; }
+ border: 1px solid #fff; }
div:-ms-fullscreen.jsxc_localvideo {
- border: 1px solid #fff; }
+ border: 1px solid #fff; }
div:fullscreen.jsxc_localvideo {
border: 1px solid #fff; }
@@ -205,14 +205,12 @@ div.jsxc_video {
animation-delay: 0.78s; }
@-webkit-keyframes bubblingG {
-
0% {
width: 16px;
height: 16px;
background-color: #000;
-webkit-transform: translateY(0);
transform: translateY(0); }
-
100% {
width: 39px;
height: 39px;
diff --git a/build/js/jsxc/css/magnific-popup.css b/build/js/jsxc/css/magnific-popup.css
new file mode 100644
index 0000000..a530c65
--- /dev/null
+++ b/build/js/jsxc/css/magnific-popup.css
@@ -0,0 +1,374 @@
+/* Magnific Popup CSS */
+.mfp-bg {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1042;
+ overflow: hidden;
+ position: fixed;
+ background: #0b0b0b;
+ opacity: 0.8;
+ filter: alpha(opacity=80); }
+
+.mfp-wrap {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1043;
+ position: fixed;
+ outline: none !important;
+ -webkit-backface-visibility: hidden; }
+
+.mfp-container {
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ padding: 0 8px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+.mfp-container:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle; }
+
+.mfp-align-top .mfp-container:before {
+ display: none; }
+
+.mfp-content {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 auto;
+ text-align: left;
+ z-index: 1045; }
+
+.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
+ width: 100%;
+ cursor: auto; }
+
+.mfp-ajax-cur {
+ cursor: progress; }
+
+.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
+ cursor: -moz-zoom-out;
+ cursor: -webkit-zoom-out;
+ cursor: zoom-out; }
+
+.mfp-zoom {
+ cursor: pointer;
+ cursor: -webkit-zoom-in;
+ cursor: -moz-zoom-in;
+ cursor: zoom-in; }
+
+.mfp-auto-cursor .mfp-content {
+ cursor: auto; }
+
+.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none; }
+
+.mfp-loading.mfp-figure {
+ display: none; }
+
+.mfp-hide {
+ display: none !important; }
+
+.mfp-preloader {
+ color: #CCC;
+ position: absolute;
+ top: 50%;
+ width: auto;
+ text-align: center;
+ margin-top: -0.8em;
+ left: 8px;
+ right: 8px;
+ z-index: 1044; }
+ .mfp-preloader a {
+ color: #CCC; }
+ .mfp-preloader a:hover {
+ color: #FFF; }
+
+.mfp-s-ready .mfp-preloader {
+ display: none; }
+
+.mfp-s-error .mfp-content {
+ display: none; }
+
+button.mfp-close, button.mfp-arrow {
+ overflow: visible;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ display: block;
+ outline: none;
+ padding: 0;
+ z-index: 1046;
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+button::-moz-focus-inner {
+ padding: 0;
+ border: 0; }
+
+.mfp-close {
+ width: 44px;
+ height: 44px;
+ line-height: 44px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ text-decoration: none;
+ text-align: center;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ padding: 0 0 18px 10px;
+ color: #FFF;
+ font-style: normal;
+ font-size: 28px;
+ font-family: Arial, Baskerville, monospace; }
+ .mfp-close:hover, .mfp-close:focus {
+ opacity: 1;
+ filter: alpha(opacity=100); }
+ .mfp-close:active {
+ top: 1px; }
+
+.mfp-close-btn-in .mfp-close {
+ color: #333; }
+
+.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
+ color: #FFF;
+ right: -6px;
+ text-align: right;
+ padding-right: 6px;
+ width: 100%; }
+
+.mfp-counter {
+ position: absolute;
+ top: 0;
+ right: 0;
+ color: #CCC;
+ font-size: 12px;
+ line-height: 18px;
+ white-space: nowrap; }
+
+.mfp-arrow {
+ position: absolute;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ margin: 0;
+ top: 50%;
+ margin-top: -55px;
+ padding: 0;
+ width: 90px;
+ height: 110px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ .mfp-arrow:active {
+ margin-top: -54px; }
+ .mfp-arrow:hover, .mfp-arrow:focus {
+ opacity: 1;
+ filter: alpha(opacity=100); }
+ .mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin-top: 35px;
+ margin-left: 35px;
+ border: medium inset transparent; }
+ .mfp-arrow:after, .mfp-arrow .mfp-a {
+ border-top-width: 13px;
+ border-bottom-width: 13px;
+ top: 8px; }
+ .mfp-arrow:before, .mfp-arrow .mfp-b {
+ border-top-width: 21px;
+ border-bottom-width: 21px;
+ opacity: 0.7; }
+
+.mfp-arrow-left {
+ left: 0; }
+ .mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
+ border-right: 17px solid #FFF;
+ margin-left: 31px; }
+ .mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
+ margin-left: 25px;
+ border-right: 27px solid #3F3F3F; }
+
+.mfp-arrow-right {
+ right: 0; }
+ .mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
+ border-left: 17px solid #FFF;
+ margin-left: 39px; }
+ .mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
+ border-left: 27px solid #3F3F3F; }
+
+.mfp-iframe-holder {
+ padding-top: 40px;
+ padding-bottom: 40px; }
+ .mfp-iframe-holder .mfp-content {
+ line-height: 0;
+ width: 100%;
+ max-width: 900px; }
+ .mfp-iframe-holder .mfp-close {
+ top: -40px; }
+
+.mfp-iframe-scaler {
+ width: 100%;
+ height: 0;
+ overflow: hidden;
+ padding-top: 56.25%; }
+ .mfp-iframe-scaler iframe {
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
+ background: #000; }
+
+/* Main image in popup */
+img.mfp-img {
+ width: auto;
+ max-width: 100%;
+ height: auto;
+ display: block;
+ line-height: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 40px 0 40px;
+ margin: 0 auto; }
+
+/* The shadow behind the image */
+.mfp-figure {
+ line-height: 0; }
+ .mfp-figure:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 40px;
+ bottom: 40px;
+ display: block;
+ right: 0;
+ width: auto;
+ height: auto;
+ z-index: -1;
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
+ background: #444; }
+ .mfp-figure small {
+ color: #BDBDBD;
+ display: block;
+ font-size: 12px;
+ line-height: 14px; }
+ .mfp-figure figure {
+ margin: 0; }
+
+.mfp-bottom-bar {
+ margin-top: -36px;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ width: 100%;
+ cursor: auto; }
+
+.mfp-title {
+ text-align: left;
+ line-height: 18px;
+ color: #F3F3F3;
+ word-wrap: break-word;
+ padding-right: 36px; }
+
+.mfp-image-holder .mfp-content {
+ max-width: 100%; }
+
+.mfp-gallery .mfp-image-holder .mfp-figure {
+ cursor: pointer; }
+
+@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
+ /**
+ * Remove all paddings around the image on small screen
+ */
+ .mfp-img-mobile .mfp-image-holder {
+ padding-left: 0;
+ padding-right: 0; }
+ .mfp-img-mobile img.mfp-img {
+ padding: 0; }
+ .mfp-img-mobile .mfp-figure:after {
+ top: 0;
+ bottom: 0; }
+ .mfp-img-mobile .mfp-figure small {
+ display: inline;
+ margin-left: 5px; }
+ .mfp-img-mobile .mfp-bottom-bar {
+ background: rgba(0, 0, 0, 0.6);
+ bottom: 0;
+ margin: 0;
+ top: auto;
+ padding: 3px 5px;
+ position: fixed;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+ .mfp-img-mobile .mfp-bottom-bar:empty {
+ padding: 0; }
+ .mfp-img-mobile .mfp-counter {
+ right: 5px;
+ top: 3px; }
+ .mfp-img-mobile .mfp-close {
+ top: 0;
+ right: 0;
+ width: 35px;
+ height: 35px;
+ line-height: 35px;
+ background: rgba(0, 0, 0, 0.6);
+ position: fixed;
+ text-align: center;
+ padding: 0; }
+ }
+
+@media all and (max-width: 900px) {
+ .mfp-arrow {
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75); }
+
+ .mfp-arrow-left {
+ -webkit-transform-origin: 0;
+ transform-origin: 0; }
+
+ .mfp-arrow-right {
+ -webkit-transform-origin: 100%;
+ transform-origin: 100%; }
+
+ .mfp-container {
+ padding-left: 6px;
+ padding-right: 6px; }
+ }
+
+.mfp-ie7 .mfp-img {
+ padding: 0; }
+.mfp-ie7 .mfp-bottom-bar {
+ width: 600px;
+ left: 50%;
+ margin-left: -300px;
+ margin-top: 5px;
+ padding-bottom: 5px; }
+.mfp-ie7 .mfp-container {
+ padding: 0; }
+.mfp-ie7 .mfp-content {
+ padding-top: 44px; }
+.mfp-ie7 .mfp-close {
+ top: 0;
+ right: 0;
+ padding-top: 0; }
diff --git a/build/js/jsxc/jsxc.js b/build/js/jsxc/jsxc.js
index 20d51ce..5dd8c30 100644
--- a/build/js/jsxc/jsxc.js
+++ b/build/js/jsxc/jsxc.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.1.4 - 2015-09-10
+ * jsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
- version: '2.1.4',
+ version: '2.1.5',
/** True if i'm the master */
master: false,
@@ -3988,6 +3988,9 @@ jsxc.gui.window = {
return;
}
+ ev.stopPropagation();
+ ev.preventDefault();
+
jsxc.gui.window.postMessage(bid, 'out', $(this).val());
$(this).val('');
@@ -7857,6 +7860,11 @@ jsxc.webrtc = {
}
},
+ onConnected: function() {
+ //Request new credentials after login
+ jsxc.storage.removeUserItem('iceValidity');
+ },
+
onDisconnected: function() {
var self = jsxc.webrtc;
@@ -8760,6 +8768,7 @@ $(document).ready(function() {
$(document).on('init.window.jsxc', jsxc.webrtc.initWindow);
$(document).on('attached.jsxc', jsxc.webrtc.init);
$(document).on('disconnected.jsxc', jsxc.webrtc.onDisconnected);
+ $(document).on('connected.jsxc', jsxc.webrtc.onConnected);
});
/**
diff --git a/build/js/jsxc/jsxc.min.js b/build/js/jsxc/jsxc.min.js
index 4cd42db..d638b92 100644
--- a/build/js/jsxc/jsxc.min.js
+++ b/build/js/jsxc/jsxc.min.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.1.4 - 2015-09-10
+ * jsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,14 +7,14 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
/*! This file is concatenated for the browser. */
-var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"2.1.4",master:!1,role_allocation:!1,to:null,toBusy:null,toNotification:null,toNotificationDelay:500,keepalive:null,restore:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/((?:https?:\/\/|www\.|([\w\-]+\.[a-zA-Z]{2,3})(?=\b))(?:(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\)([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])?)|(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]))?)/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),date=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,time=hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+"."+month+"."+year+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){if(options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){var local=jsxc.storage.getUserItem("options")||{};return local[key]||jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,$.i18n.init({lng:lang,fallbackLng:"en",resStore:I18next,useLocalStorage:!0,localStorageExpirationTime:864e5}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1);var lastActivity=jsxc.storage.getItem("lastActivity")||0;if((new Date).getTime()-lastActivity<jsxc.options.loginTimeout&&(jsxc.restore=!0),$(document).on("connectionReady.jsxc",function(){if(null!==jsxc.options.logoutElement&&jsxc.options.logoutElement.length>0){var logout=function(){return jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}}),jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.restore)(!jsxc.isLoginForm()||jsxc.options.loginForm&&jsxc.options.loginForm.attachIfFound)&&(jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),"undefined"!=typeof jsxc.storage.getItem("alive")&&jsxc.restore?jsxc.checkMaster():jsxc.onMaster());else{if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(){return jsxc.prepareLogin(function(settings){if(settings!==!1){var enabled=settings.loginForm&&settings.loginForm.enable||settings.xmpp&&settings.xmpp.onlogin;enabled="true"===enabled||enabled===!0,enabled&&(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login())}else jsxc.submitLoginForm()}),!1})}},isLoginForm:function(){return jsxc.options.loginForm.form&&jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)},prepareLogin:function(username,password,cb){"function"==typeof username&&(cb=username,username=null),username=username||$(jsxc.options.loginForm.jid).val(),password=password||$(jsxc.options.loginForm.pass).val(),jsxc.triggeredFromBox||"dialog"!==jsxc.options.loginForm.onConnecting&&"undefined"!=typeof jsxc.options.loginForm.onConnecting||jsxc.gui.showWaitAlert($.t("Logging_in"));var settings;"function"==typeof jsxc.options.loadSettings?(settings=jsxc.options.loadSettings.call(this,username,password,function(s){jsxc._prepareLogin(username,password,cb,s)}),"undefined"!=typeof settings&&jsxc._prepareLogin(username,password,cb,settings)):jsxc._prepareLogin(username,password,cb)},_prepareLogin:function(username,password,cb,loadedSettings){if(loadedSettings===!1)return jsxc.warn("No settings provided"),void cb(!1);var settings=$.extend(!0,{},jsxc.options);loadedSettings?settings=$.extend(!0,settings,loadedSettings):loadedSettings={},"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",loadedSettings.xmpp||(loadedSettings.xmpp={}),$.each(loadedSettings,function(key){var old=jsxc.options.get(key),val=settings[key];val=$.extend(!0,old,val),jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,cb(settings)},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.storage.getUserItem("windowlist")||jsxc.storage.setUserItem("windowlist",[]),jsxc.startKeepAlive(),jsxc.options.get("otr").enable?jsxc.otr.createDSA():jsxc._onMaster()},_onMaster:function(){if(jsxc.role_allocation&&$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.role_allocation=!0,jsxc.restore&&!jsxc.restoreCompleted&&(jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")),jsxc.restore){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1}$(document).on("connectionReady.jsxc",function(){jsxc.gui.updateAvatar($("#jsxc_avatar"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}),jsxc.xmpp.login()},checkMaster:function(){jsxc.debug("check master"),jsxc.to=window.setTimeout(jsxc.onMaster,1e3),jsxc.storage.ink("alive")},startKeepAlive:function(){jsxc.keepalive=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(){jsxc.storage.ink("alive"),jsxc.role_allocation&&jsxc.storage.setItem("lastActivity",(new Date).getTime())},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepalive&&window.clearInterval(jsxc.keepalive),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.unescapeNode(Strophe.getBareJidFromJid(jid).toLowerCase())},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),jsxc.gui.roster.loaded=!0,void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var window=jsxc.storage.getUserItem("window",bid);return window?(jsxc.gui.window.init(bid),window.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,window.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=jsxc.options.loginForm.form.off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.submit()},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];return"function"==typeof fn?fn.apply(null,fnParams):void 0},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash}},jsxc.xmpp={conn:null,login:function(){if(!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated){var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=null,rid=null,jid=jsxc.options.xmpp.jid)}var url=jsxc.options.get("xmpp").url;jsxc.xmpp.conn&&jsxc.xmpp.conn.connected||($(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("ridChange",jsxc.xmpp.onRidChange),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts")),jsxc.xmpp.conn=new Strophe.Connection(url);var stropheGetUniqueId=jsxc.xmpp.conn.getUniqueId;jsxc.xmpp.conn.getUniqueId=function(suffix){var uid=stropheGetUniqueId.call(jsxc.xmpp.conn,suffix);return jsxc.storage.setItem("_uniqueId",jsxc.xmpp.conn._uniqueId),uid},jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)});var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTING:$(document).trigger("connecting.jsxc");break;case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),jsxc.restore&&sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid||jsxc.options.xmpp.jid,password||jsxc.options.xmpp.password,callback))}},logout:function(complete){if(jsxc.storage.removeItem("sid"),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeItem("_uniqueId"),!jsxc.master)return $("#jsxc_roster").remove(),$("#jsxc_windowlist").remove(),!0;if(null===jsxc.xmpp.conn)return!0;$("body").click(),jsxc.triggeredFromElement="boolean"==typeof complete?complete:!0,$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){jsxc.xmpp.conn.pause();var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);if(jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid),jsxc.storage.setItem("lastActivity",(new Date).getTime()),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.storage.removeUserItem("unreadMsg"),jsxc.storage.removeUserElement("options","RTCPeerConfig"),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":jsxc.submitLoginForm();case!1:return void jsxc.xmpp.connectionReady()}jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.onMaster(),jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close(),jsxc.restoreCompleted=!0,$(document).trigger("attached.jsxc")},attached:function(){jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence");var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps){var conditionalEnable=function(){};if(jsxc.options.get("carbons").enable&&(conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()},$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))})),"undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.debug("Request server capabilities"),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.restore&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres();else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.connectionReady()},connectionReady:function(){jsxc.xmpp.conn._uniqueId=jsxc.storage.getItem("_uniqueId")||(new Date).getTime(),$(document).trigger("connectionReady.jsxc")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("lastActivity"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("ridChange",jsxc.xmpp.onRidChange),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepalive)},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm();break;case"quiet":case!1:return}},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[]}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.xmpp.bookmarks.load(),jsxc.gui.roster.loaded=!0,jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc")},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||{},res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype){$(document).trigger("error.presence.jsxc",[from,presence]);var error=$(presence).find("error");return jsxc.error("[XMPP] "+error.attr("code")+" "+error.find(">:first-child").prop("tagName")),!0}if("subscribe"===ptype)return jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add($.t("Friendship_request"),$.t("from")+" "+jid,"gui.showApproveDialog",[jid]),!0;if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=jsxc.CONST.STATUS.indexOf(""===show?"online":show)}0===status?delete res[r]:res[r]=status;var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),data.status="groupchat"===data.type?status:max,data.res=maxVal,data.jid=jid,xVCard.length>0&&"groupchat"!==data.type){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+status),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text();if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?"out":"in";return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage(bid,direction,body,!1,forwarded,stamp),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add($.t("Unknown_sender"),$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+").","gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);return"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid})),jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded}):jsxc.gui.window.postMessage(bid,"in",body,!1,forwarded,stamp),!0},onRidChange:function(ev,data){jsxc.storage.setItem("rid",data.rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(message){var from=$(message).attr("from"),jid=Strophe.getBareJidFromJid(from),bid=jsxc.jidToBid(jid),received=$(message).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var i,receivedId=received.attr("id").replace(/:/,"-"),chat=jsxc.storage.getUserItem("chat",bid);for(i=chat.length-1;i>=0;i--)if(chat[i].uid===receivedId){chat[i].received=!0,$("#"+receivedId).addClass("jsxc_received"),jsxc.storage.setUserItem("chat",bid,chat);break}}return!0},sendMessage:function(bid,msg,uid){jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].sendMsg(msg,uid):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,uid)},_sendMessage:function(jid,msg,uid){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat",xmlMsg=$msg({to:jid,type:type,id:uid}).c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature,cb){var conn=jsxc.xmpp.conn;if(cb=cb||function(){},!feature)return!1;$.isArray(feature)||(feature=$.makeArray(feature));var check=function(knownCapabilities){if(!knownCapabilities)return null;var i;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0};if(conn.caps._jidVerIndex[jid]&&conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]){var hasFeature=check(conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]);return cb(hasFeature),hasFeature}return $(document).on("strophe.caps",function(ev,j,capabilities){j===jid&&(cb(check(capabilities)),$(document).off(ev))}),null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){return err!==!1?jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable():void 0}},jsxc.gui={emotions:[["O:-) O:)","angel"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","smile"],[":-D :D","grin"],[":-( :(","sad"],[";-) ;)","wink"],[":-P :P","tonguesmile"],["=-O","surprised"],[":kiss: :-*","kiss"],["8-) :cool:","sunglassess"],[":'-( :'( :&amp;apos;-(","crysad"],[":-/","doubt"],[":-X :X","zip"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":devil:","devil"],[":kiss: :kissing:","kissing"],["@->-- :rose: @-&gt;--","rose"],[":music:","music"],[":love:","love"],[":zzz:","tired"]],favicon:null,queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)},join:function(jid,params){var password=params&&params.password?params.password:null;jsxc.muc.showJoinChat(jid,password)}},init:function(){if(!($("#jsxc_windowList").length>0)){$("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList");var fo=jsxc.options.get("favicon");fo&&fo.enable&&(jsxc.gui.favicon=new Favico({animation:"pop",bgColor:fo.bgColor,textColor:fo.textColor}),jsxc.gui.favicon.badge(jsxc.storage.getUserItem("unreadMsg")||0)),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy"))}},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),ue.add(spot).removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is_",{status:$.t(jsxc.CONST.STATUS[data.status])})),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));
-break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info="<b>"+Strophe.getBareJidFromJid(data.jid)+"</b>\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar)},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);null!==avatarSrc?setAvatar(avatarSrc):jsxc.xmpp.conn.vcard.get(function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},Strophe.getBareJidFromJid(jid),function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)})},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();width>scrollWidth||(right>0&&(right=0),width-scrollWidth-padding>right&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(){var self=$(this);self.disableSelection();var ul=self.find("ul"),slideUp=null;slideUp=function(){ul.slideUp({complete:function(){self.removeClass("jsxc_opened")}}),$("body").off("click",null,slideUp)},$(this).click(function(){return ul.is(":hidden")?($("body").click(),$("body").one("click",slideUp)):$("body").off("click",null,slideUp),ul.slideToggle(),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){function onAuthFail(){alert.show(),jsxc.gui.dialog.resize(),$("#jsxc_dialog").find("button").trigger("btnfinished.jsxc"),$("#jsxc_dialog").find("input").one("keypress",function(){alert.hide(),jsxc.gui.dialog.resize()})}$(document).on("complete.dialog.jsxc",function(){$("#jsxc_password").focus()}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox"));var alert=$("#jsxc_dialog").find(".jsxc_alert");alert.hide(),$("#jsxc_dialog").find("form").submit(function(ev){ev.preventDefault(),$(this).find("button[data-jsxc-loading-text]").trigger("btnloading.jsxc"),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password"),jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1,jsxc.prepareLogin(function(settings){settings===!1?onAuthFail():($(document).on("authfail.jsxc",onAuthFail),jsxc.xmpp.login())})})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid)),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq(0) button").click(function(){$(this).siblings().removeClass("active"),$(this).addClass("active"),$(this).get(0).blur(),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+($(this).index()+1)+")").show().find("input:first").focus()}),$("#jsxc_dialog > div:eq(1) .jsxc_submit").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close(),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}),void $("#jsxc_dialog > div:eq(3) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:null}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||jsxc.gui.showContactDialog(from)})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(ev){ev.preventDefault();var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .jsxc_remove").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .jsxc_retry").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .jsxc_confirm").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_dismiss").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)navigator.hasOwnProperty(key)&&"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";return el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0?content:void 0},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),("false"===jsxc.options.get("xmpp").overwrite||jsxc.options.get("xmpp").overwrite===!1)&&$(".jsxc_fieldsetXmpp").parent().hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var success=jsxc.options.saveSettinsPermanent.call(this,data);return"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[success]),setTimeout(function(){success?self.find('button[type="submit"]').switchClass("btn-primary","btn-success"):self.find('button[type="submit"]').switchClass("btn-primary","btn-danger"),setTimeout(function(){self.find('button[type="submit"]').switchClass("btn-danger btn-success","btn-primary")},2e3)},200),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender_",{sender:bid});jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},showSelectionDialog:function(header,msg,primary,option,primaryLabel,optionLabel){var opt;opt=1===arguments.length&&"object"==typeof header&&null!==header?header:{header:header,msg:msg,primary:{label:primaryLabel,cb:primary},option:{label:optionLabel,cb:option}};var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("selectionDialog"),{noClose:!0});opt.header?dialog.find("h3").text(opt.header):dialog.find("h3").hide(),opt.msg?dialog.find("p").text(opt.msg):dialog.find("p").hide(),opt.primary&&opt.primary.label&&dialog.find(".btn-primary").text(opt.primary.label),opt.primary&&opt.option.label&&dialog.find(".btn-default").text(opt.option.label),opt.primary&&opt.primary.cb&&dialog.find(".btn-primary").click(opt.primary.cb),opt.primary&&opt.option.cb&&dialog.find(".btn-primary").click(opt.option.cb)},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('.jsxc_presence[data-bid="'+bid+'"]').removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)},unreadMsg:function(bid){var winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?1:count+1,winData.unread=count,jsxc.storage.setUserItem("window",bid,winData);var total=jsxc.storage.getUserItem("unreadMsg")||0;total++,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.gui._unreadMsg(bid,count)},_unreadMsg:function(bid,count){var win=jsxc.gui.window.get(bid);if("number"!=typeof count){var winData=jsxc.storage.getUserItem("window",bid);count=winData&&winData.unread||1,count=count===!0?1:count}var el=jsxc.gui.roster.getItem(bid).add(win);el.addClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(count)},readMsg:function(bid){var win=jsxc.gui.window.get(bid),winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?0:count;var el=jsxc.gui.roster.getItem(bid).add(win);if(el.removeClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(0),count>0){var total=jsxc.storage.getUserItem("unreadMsg")||0;total-=count,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.storage.updateUserItem("window",bid,"unread",0)}},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *mailto:/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())}},jsxc.gui.roster={ready:!1,loaded:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text($.t(hideOffline?"Show_offline":"Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open(jsxc.options.onlineHelp,"onlineHelp")}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence > ul > li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))});var rosterState=jsxc.storage.getUserItem("roster")||(jsxc.options.get("loginForm").startMinimized?"hidden":"shown");$("#jsxc_roster").addClass("jsxc_state_"+rosterState),"hidden"===rosterState&&($("#jsxc_roster").css("right",-1*$("#jsxc_roster").innerWidth()+"px"),$("#jsxc_windowList").css("right","10px"));var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_chaticon").click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),"groupchat"!==data.type&&bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),bud.toggleClass("jsxc_expand"),jsxc.gui.updateAvatar(bud,data.jid,data.avatar),!1};bud.find(".jsxc_control").click(expandClick),bud.dblclick(expandClick),bud.find(".jsxc_vcardicon").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"}),$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1,status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;return $(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||status>thisStatus?($(this).before(li),insert=!0,!1):void 0}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_options, .jsxc_control, .jsxc_unread"),input=$('<input type="text" name="name"/>');options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid)||{};if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}else"groupchat"===d.type&&jsxc.xmpp.bookmarks.add(bid,newname,d.nickname,d.autojoin)}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(d){var duration=d||500,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList"),roster_width=roster.innerWidth(),roster_right=parseFloat($("#jsxc_roster").css("right")),state=0>roster_right?"shown":"hidden";jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),roster.animate({right:-1*(roster_width+roster_right)+"px"},duration),wl.animate({right:10-roster_right+"px"},duration),$(document).trigger("toggle.roster.jsxc",[state,duration])},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_")+"</p>"),link=text.find("a");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={open:function(data,o){var opt=o||{};return $.magnificPopup.open({items:{src:'<div id="jsxc_dialog">'+data+"</div>"},type:"inline",modal:opt.noClose,callbacks:{beforeClose:function(){$(document).trigger("cleanup.dialog.jsxc")},afterClose:function(){$(document).trigger("close.dialog.jsxc")},open:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),$("#jsxc_dialog form").each(function(){var form=$(this);form.find("button[data-jsxc-loading-text]").each(function(){var btn=$(this);btn.on("btnloading.jsxc",function(){btn.prop("disabled")||(btn.prop("disabled",!0),btn.data("jsxc_value",btn.text()),btn.text(btn.attr("data-jsxc-loading-text")))}),btn.on("btnfinished.jsxc",function(){btn.prop("disabled")&&(btn.prop("disabled",!1),btn.text(btn.data("jsxc_value")))})})}),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")}}}),$("#jsxc_dialog")},close:function(){jsxc.debug("close dialog"),$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).hide().appendTo("#jsxc_windowList > ul").show("slow"),data=jsxc.storage.getUserItem("buddy",bid);if(win.data("jid",data.jid),jsxc.gui.toggleList.call(win.find(".jsxc_settings")),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_tools").click(function(){return!1}),win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13===ev.which&&(body=""),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){13===ev.which&&$(this).val()&&(jsxc.gui.window.postMessage(bid,"out",$(this).val()),$(this).val(""))}).focus(function(){jsxc.gui.readMsg(bid)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_fade").hide(),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height});var offset=win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",ui.size.height+offset+6+"px"),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])}}),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist");wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:0})}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui._unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$('<li><div title="'+ins+'" class="jsxc_'+val[1]+'"/></li>');li.click(function(){win.find("input").val(win.find("input").val()+ins),win.find("input").focus()}),win.find(".jsxc_emoticons ul").append(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid);var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;0>left&&jsxc.gui.scrollWindowListBy(-1*left),0>right&&jsxc.gui.scrollWindowListBy(right)}return win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).hide("slow",function(){$(this).remove(),jsxc.gui.updateWindowListSB()})},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.find(".jsxc_fade").is(":hidden")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.window.get(bid).find(".jsxc_fade").slideDown(),win.removeClass("jsxc_min"),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)},_hide:function(bid){jsxc.gui.window.get(bid).addClass("jsxc_min").find(" .jsxc_fade").slideUp(),jsxc.gui.window.get(bid).trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var data=jsxc.storage.getUserItem("buddy",bid),html_msg=msg;msg=jsxc.removeHTML(msg),msg=jsxc.escapeHTML(msg),"out"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&forwarded!==!0&&(direction="sys",msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),"in"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(direction="sys",msg=$.t("unencrypted_message_received")+" "+msg),encrypted=encrypted||data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;
-var post=jsxc.storage.saveMessage(bid,direction,msg,encrypted,forwarded,stamp,sender);"in"!==direction||jsxc.gui.window.get(bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(bid),$(document).trigger("postmessagein.jsxc",[bid,html_msg])),"out"===direction&&jsxc.master&&forwarded!==!0&&jsxc.xmpp.sendMessage(bid,html_msg,post.uid),jsxc.gui.window._postMessage(bid,post),"out"===direction&&"?"===msg&&jsxc.gui.window.postMessage(bid,"sys","42")},_postMessage:function(bid,post,restore){var win=jsxc.gui.window.get(bid),msg=post.msg,direction=post.direction,uid=post.uid;win.find(".jsxc_textinput").is(":not(:focus)")&&"in"===direction&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],function(match,p1){var i,esc="";for(i=0;i<p1.length;i++)esc+="&#"+p1.charCodeAt(i)+";";return'<div title="'+esc+'" class="jsxc_emoticon jsxc_'+val[1]+'"/>'})});var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(post.stamp)),post.received&&msgDiv.addClass("jsxc_received"),post.forwarded&&msgDiv.addClass("jsxc_forwarded"),post.encrypted&&msgDiv.addClass("jsxc_encrypted"),"sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div style="clear:both"/>'):"undefined"!=typeof post.stamp&&msgDiv.append(msgTsDiv),win.find(".jsxc_textarea").append(msgDiv),"object"==typeof post.sender&&null!==post.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof post.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(post.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(post.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(post.sender.jid),data.avatar),title=jsxc.jidToBid(post.sender.jid)}"string"==typeof post.sender.name&&(msgDiv.attr("data-name",post.sender.name),"string"!=typeof post.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,post.sender.name),""!==title&&(title="\n"+title),title=post.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+post.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title))}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){for(var chat=jsxc.storage.getUserItem("chat",bid);null!==chat&&chat.length>0;){var c=chat.pop();jsxc.gui.window._postMessage(bid,c,!0)}},clear:function(bid){jsxc.storage.setUserItem("chat",bid,[]),jsxc.gui.window.get(bid).find(".jsxc_textarea").empty()}},jsxc.gui.template={},jsxc.gui.template.get=function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name,version:jsxc.version};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?data.name:bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=ret.replace(/\{\{root\}\}/g,ph.root),ret=$("<div>").append($(ret).i18n()).html(),ret=ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g,function(s,key){return"string"==typeof ph[key]?ph[key]:s})):(jsxc.debug("Template not available: "+name),name)},jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4},ROOMCONFIG:{INSTANT:"instant"}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul").append(li)},showJoinChat:function(r,p){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),"string"==typeof r&&dialog.find("#jsxc_room").val(r),"string"==typeof p&&dialog.find("#jsxc_password").val(p),dialog.find("#jsxc_server").val(jsxc.options.get("muc").server);var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),dialog.find(".jsxc_warning").text(msg)};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),self.conn.muc.listRooms(jsxc.options.get("muc").server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(){jsxc.warn("Could not load rooms"),dialog.find(".jsxc_inputinfo").hide()}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),password=$("#jsxc_password").val()||null;if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(room.match(/@(.*)$/)||(room+="@"+jsxc.options.get("muc").server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){ev.preventDefault();var bookmark=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked");return self.join(room,nickname,password,roomName,subject,bookmark,autojoin),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18n.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else dialog.find(".jsxc_warning").text($.t("You_already_joined_this_room"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").empty(),void(dialog.find(".jsxc_continue").is(":hidden")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},showRoomConfiguration:function(room){var self=jsxc.muc;self.conn.muc.configure(room,function(stanza){var form=Strophe.x.Form.fromXML(stanza);window.f=form,self._showRoomConfiguration(room,form)},function(){jsxc.debug("Could not load room configuration")})},_showRoomConfiguration:function(room,config){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.muc.helper.formToHTML(config)),form=dialog.find("form"),submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Join"));var cancel=$("<button>");cancel.addClass("btn btn-default"),cancel.attr("type","button"),cancel.text($.t("Cancel"));var formGroup=$("<div>");formGroup.addClass("form-group"),$("<div>").addClass("col-sm-offset-6 col-sm-6").appendTo(formGroup),formGroup.find(">div").append(cancel),formGroup.find(">div").append(submit),form.append(formGroup),form.submit(function(ev){ev.preventDefault();var config=Strophe.x.Form.fromHTML(form.get(0));return self.conn.muc.saveConfiguration(room,config,function(){jsxc.storage.updateUserItem("buddy",room,"config",config),jsxc.debug("Room configuration saved.")},function(){jsxc.warn("Could not save room configuration.")}),jsxc.gui.dialog.close(),!1}),cancel.click(function(){self.conn.muc.cancelConfigure(room),jsxc.gui.dialog.close()})},join:function(room,nickname,password,roomName,subject,bookmark,autojoin){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject,bookmarked:bookmark||!1,autojoin:autojoin||!1,nickname:nickname,config:null}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password),bookmark&&jsxc.xmpp.bookmarks.add(room,roomName,nickname,autojoin)},leave:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},roomdata=jsxc.storage.getUserItem("buddy",room)||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.EXITED),roomdata.bookmarked||jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room);jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage(room,"sys",$.t("This_room_will_be_closed"));var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb),roomdata.bookmarked&&jsxc.xmpp.bookmarks["delete"](room)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata)},initWindow:function(event,win){var self=jsxc.muc,data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if(!jsxc.xmpp.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});if("groupchat"===roomdata.type){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_transfer").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)}),setTimeout(function(){var top=win.find(".jsxc_emoticons").position().top+win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",top+"px")},400);var destroy=$("<li>");if(destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append(destroy),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show()})}var leave=$("<li>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append(leave)}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),roomdata=jsxc.storage.getUserItem("buddy",room),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),roomdata.state===self.CONST.ROOMSTATE.INIT){if(jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),jsxc.storage.removeUserItem("chat",room),member={},0===jsxc.gui.roster.getItem(room).length){var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room)}$("#jsxc_dialog").length>0&&(jsxc.gui.window.open(room),jsxc.gui.dialog.close())}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage(room,"sys",$.t("This_room_has_been_closed")),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage(room,"sys",$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0}))):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage(room,"sys",$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0}))}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage(room,"sys",$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_enabled"))},171:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_disabled"))},172:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_is_now_non-anoymous"))},173:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_is_now_semi-anonymous"))},201:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};roomdata.autojoin&&roomdata.config===self.CONST.ROOMCONFIG.INSTANT?self.conn.muc.createInstantRoom(room):roomdata.autojoin&&"undefined"!=typeof roomdata.config&&null!==roomdata.config?self.conn.muc.saveConfiguration(room,roomdata.config,function(){jsxc.debug("Cached room configuration saved.")},function(){jsxc.warn("Could not save cached room configuration.")}):jsxc.gui.showSelectionDialog({header:$.t("Room_creation"),msg:$.t("Do_you_want_to_change_the_default_room_configuration"),primary:{label:$.t("Default"),cb:function(){jsxc.gui.dialog.close(),self.conn.muc.createInstantRoom(room),jsxc.storage.updateUserItem("buddy",room,"config",self.CONST.ROOMCONFIG.INSTANT)}},option:{label:$.t("Change"),cb:function(){self.showRoomConfiguration(room)}}})},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_banned")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0}))},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_kicked")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0}))},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_affiliation"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0}))},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_membersonly"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0}))},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_shutdown"))}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage(room,"in",reason,!1,!1,null,actor):jsxc.gui.window.postMessage(room,"sys",reason))},insertMember:function(room,nickname,memberdata){var self=jsxc.muc,win=jsxc.gui.window.get(room),jid=memberdata.jid,m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===jsxc.jidToBid(self.conn.jid)&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,width>scrollWidth||left>0?left=0:width-scrollWidth>left&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(jsxc.el_exists($("#"+id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.postMessage(room,"in",body,!1,!1,stamp,sender)}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage(room,"sys",$.t("changed_subject_to",{nickname:nickname,subject:subject.text()}))}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length?!0:($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_item-not-found")):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_forbidden")):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_not-acceptable")):jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send")),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;if("groupchat"===data.type){var bo=$("<div>");bo.text("+"),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_rename").before(bo),data.bookmarked&&bud.addClass("jsxc_bookmarked"),bud.off("click").click(function(){var data=jsxc.storage.getUserItem("buddy",room);data.state===self.CONST.ROOMSTATE.INIT||data.state===self.CONST.ROOMSTATE.EXITED?(self.showJoinChat(),$("#jsxc_room").val(Strophe.getNodeFromJid(data.jid)),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_dialog .jsxc_bookmark").hide()):jsxc.gui.window.open(room)}),bud.find(".jsxc_delete").click(function(){return data.bookmarked&&jsxc.xmpp.bookmarks["delete"](room),self.leave(room),!1})}},helper:{formToHTML:function(form){if(form instanceof Strophe.x.Form){var html=$("<form>");if(html.attr("data-type",form.type),html.addClass("form-horizontal"),form.title&&html.append("<h3>"+form.title+"</h3>"),form.instructions&&html.append("<p>"+form.instructions+"</p>"),form.fields.length>0){var i;for(i=0;i<form.fields.length;i++)html.append(jsxc.muc.helper.fieldToHtml(form.fields[i]))}return $("<div>").append(html).html()}},fieldToHtml:function(field){var self=field||this;field=null;var el,val,opt,i,o,j,k,txt,line,_ref2,id="Strophe.x.Field-"+self.type+"-"+self["var"],html=$("<div>");if(html.addClass("form-group"),self.label){var label=$("<label>");label.attr("for",id),label.addClass("col-sm-6 control-label"),label.text(self.label),label.appendTo(html)}switch(self.type.toLowerCase()){case"list-single":case"list-multi":for(el=$("<select>"),"list-multi"===self.type&&el.attr("multiple","multiple"),i=0;i<self.options.length;i++)if(opt=self.options[i]){for(o=$(opt.toHTML()),j=0;j<self.values;j++)k=self.values[j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var i,_results;for(_results=[],i=0;i<self.values.length;i++)line=self.values[i],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),self.values&&el.attr("value",self.values[0]),self.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",self.desc),el.addClass("form-control");break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=self.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password"),el.addClass("form-control");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly"),el.addClass("form-control");break;case"jid-single":el.attr("type","email"),el.addClass("form-control")}break;default:el=$("<input type='text'>")}el.attr("id",id),el.attr("name",self["var"]),self.required&&el.attr("required",self.required);var inner=el;return el=$("<div>"),el.addClass("col-sm-6"),el.append(inner),html.append(el),html.get(0)}}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).one("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val.msg,val.description,val.fnName,val.fnParams,key)}},add:function(msg,description,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>");if(notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num),!id){var saved=jsxc.storage.getUserItem("notices")||{};saved[nid]={msg:msg,description:description,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)}},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices");delete s[nid],jsxc.storage.setUserItem("notices",s)},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){return val.fnName===fnName?(has=!0,!1):void 0}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from",{name:data.name}),msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;
-duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return window.Notification?!0:!1},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add($.t("Notifications")+"?",$.t("Should_we_notify_you_"),"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),$(document).trigger(jsxc.notification.hasPermission()?"notificationready.jsxc":"notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!0,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",loginTimeout:6e5,displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(){},carbons:{enable:!1},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html"},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage(bid,"in",d.msg,d.encrypted,d.forwarded,d.stamp):jsxc.gui.window.postMessage(bid,"sys",$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",d.encrypted,d.forwarded,d.stamp)},sendMessage:function(jid,msg,uid){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,uid)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage(bid,"sys",$.t("trying_to_start_private_conversation"));break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg_state=jsxc.otr.objects[bid].trust?"Verified":"Unverified",msg=$.t(msg_state+"_private_conversation_started");jsxc.gui.window.postMessage(bid,"sys",msg);break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage(bid,"sys",$.t("private_conversation_aborted"))):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage(bid,"sys",$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":if(jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_request_received")),$("#jsxc_dialog").length>0){jsxc.otr.objects[bid].sm.abort();break}jsxc.otr.onSmpQuestion(bid,data),jsxc.storage.setUserItem("smp_"+bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")):jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_failed")),jsxc.storage.removeUserItem("smp_"+bid),jsxc.gui.dialog.close();break;case"abort":jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_aborted"));break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded})}),jsxc.otr.objects[bid].on("io",function(msg,uid){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,uid)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage(bid,"sys","[OTR] "+$.t(err)),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".jsxc_submit").text($("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question"))):$("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp_"+bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){"function"==typeof OTR&&(0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid))},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv){if("function"!=typeof OTR)return jsxc.warn("OTR support disabled"),OTR={},OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2},void jsxc._onMaster();if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/lib/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(jsxc._onMaster(),worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()}},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),jsxc.otr.dsaFallback!==!1&&jsxc._onMaster()},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback?jsxc.gui.dialog.close():$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&"lastActivity"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value,function(key,val){return val instanceof jQuery?void 0:val})),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&"lastActivity"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&null!==item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"lastActivity"){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),void jsxc.storage.ink("alive");if(!(jsxc.master||"alive"!==key&&"alive_busy"!==key||jsxc.triggeredFromElement))return window.clearTimeout(jsxc.to),jsxc.to=window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60)),void(jsxc.role_allocation||jsxc.onSlave());if(key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^chat"+jsxc.storage.SEP)))for(var data,el,posts=JSON.parse(e.newValue);posts.length>0;)data=posts.pop(),el=$("#"+data.uid),0===el.length?(jsxc.master&&"out"===data.direction&&jsxc.xmpp.sendMessage(bid,data.msg,data.uid),jsxc.gui.window._postMessage(bid,data)):data.received&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),n.minimize!==o.minimize&&(n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid)),jsxc.gui.window.setText(bid,n.text),void(n.unread!==o.unread&&(0===n.unread?jsxc.gui.readMsg(bid):jsxc.gui._unreadMsg(bid,n.unread)))):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(/^unreadMsg/)&&jsxc.gui.favicon&&jsxc.gui.favicon.badge(parseInt(e.newValue)||0),key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close(),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.otr.onSmpQuestion(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close(),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(!e.oldValue)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),(o.status!==n.status||o.sub!==n.sub)&&jsxc.gui.roster.reorder(bid)}if(jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"sid"===key)return void(e.newValue||jsxc.xmpp.logout());"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid))}}}},saveMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var chat=jsxc.storage.getUserItem("chat",bid)||[],uid=(new Date).getTime()+":msg";chat.length>jsxc.options.get("numberOfMsg")&&chat.pop();var post={direction:direction,msg:msg,uid:uid.replace(/:/,"-"),received:!1,encrypted:encrypted||!1,forwarded:forwarded||!1,stamp:stamp||(new Date).getTime(),sender:sender};return chat.unshift(post),jsxc.storage.setUserItem("chat",bid,chat),post},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],chatJids:{},init:function(){var self=jsxc.webrtc;if(self.conn=jsxc.xmpp.conn,!self.conn.jingle)return void jsxc.error("No jingle plugin found!");var manager=self.conn.jingle.manager;$(document).on("message.jsxc",self.onMessage),$(document).on("presence.jsxc",self.onPresence),$(document).on("mediaready.jingle",self.onMediaReady),$(document).on("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onCallIncoming,self)),manager.on("terminated",$.proxy(self.onCallTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("peerStreamAdded",$.proxy(self.onRemoteStreamAdded,self)),manager.on("peerStreamRemoved",$.proxy(self.onRemoteStreamRemoved,self)),manager.on("log:*",function(level,msg){jsxc.debug("[JINGLE]["+level+"]",msg)}),self.conn.caps&&$(document).on("caps.strophe",self.onCaps);var url=jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath,peerConfig=jsxc.options.get("RTCPeerConfig");"string"==typeof url&&url.length>0?self.getTurnCrendentials(url):(jsxc.storage.getUserItem("iceValidity")&&(jsxc.storage.removeUserItem("iceValidity"),peerConfig.iceServers=jsxc.options.RTCPeerConfig.iceServers,jsxc.options.set("RTCPeerConfig",peerConfig)),self.conn.jingle.setICEServers(peerConfig.iceServers))},onDisconnected:function(){var self=jsxc.webrtc;$(document).off("message.jsxc",self.onMessage),$(document).off("presence.jsxc",self.onPresence),$(document).off("mediaready.jingle",self.onMediaReady),$(document).off("mediafailure.jingle",self.onMediaFailure),$(document).off("caps.strophe",self.onCaps)},getTurnCrendentials:function(url){var self=jsxc.webrtc;url=url||jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath;var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return jsxc.storage.getUserItem("iceConfig")&&(jsxc.storage.removeUserItem("iceConfig"),ttl=-1),ttl>0?(self.conn.jingle.setICEServers(jsxc.options.get("RTCPeerConfig").iceServers),void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500)):void $.ajax(url,{async:!0,success:function(data){var ttl=data.ttl||3600,iceServers=data.iceServers;if(!iceServers&&data.url&&(jsxc.warn("Received RTCPeer configuration is deprecated. Use now RTCPeerConfig.url."),iceServers=[{urls:data.url}],data.username&&(iceServers[0].username=data.username),data.credential&&(iceServers[0].credential=data.credential)),iceServers&&iceServers.length>0){var url=iceServers[0].url&&iceServers[0].url.length>0,urls=iceServers[0].urls&&iceServers[0].urls.length>0;if(urls||url){jsxc.debug("ice servers received");var peerConfig=jsxc.options.get("RTCPeerConfig");peerConfig.iceServers=iceServers,jsxc.options.set("RTCPeerConfig",peerConfig),self.conn.jingle.setICEServers(iceServers),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*ttl)}else jsxc.warn("No valid url found in first ice object.")}},dataType:"json"})},getCapableRes:function(jid){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=jsxc.storage.getUserItem("res",bid)||[],available=[];return $.each(res,function(r){self.conn.caps.hasFeatureByJid(bid+"/"+r,self.reqVideoFeatures)&&available.push(r)}),available},onAddRosterItem:function(event,bid,data,el){var self=jsxc.webrtc;if(!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.onAddRosterItem(null,bid,data,el)});var videoIcon=$('<div class="jsxc_video jsxc_disabled" title="'+$.t("Start_video_call")+'"></div>');videoIcon.click(function(){return self.startCall(data.jid),!1}),el.find(".jsxc_options.jsxc_left").append(videoIcon),el.on("extra.jsxc",function(){self.updateIcon(bid)})},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_transfer:eq(1)").after(div),self.updateIcon(jsxc.jidToBid(win.data("jid")))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),ls=jsxc.storage.getUserItem("buddy",bid);if("string"!=typeof jid){if(!ls||"string"!=typeof ls.jid)return void jsxc.debug("[webrtc] Could not update icon, because could not find jid for "+bid);jid=ls.jid}var el=win.find(".jsxc_video").add(jsxc.gui.roster.getItem(bid).find(".jsxc_video")),capableRes=self.getCapableRes(jid),targetRes=Strophe.getResourceFromJid(jid);null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){return capableRes.indexOf(val)>-1?(targetRes=val,!1):void 0}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")))}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid,status,presence){var self=jsxc.webrtc;0===$(presence).find('c[xmlns="'+Strophe.NS.CAPS+'"]').length&&(jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid)))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;jsxc.gui.roster.loaded?self.updateIcon(jsxc.jidToBid(jid)):$(document).on("cloaded.roster.jsxc",function(){self.updateIcon(jsxc.jidToBid(jid))})},onMediaReady:function(event,stream){jsxc.debug("media ready");var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var i,dialog=jsxc.gui.showVideoWindow(self.last_caller),audioTracks=stream.getAudioTracks(),videoTracks=stream.getVideoTracks();for(i=0;i<audioTracks.length;i++)self.setStatus($.t(audioTracks.length>0?"Use_local_audio_device":"No_local_audio_device")),jsxc.debug('using audio device "'+audioTracks[i].label+'"');for(i=0;i<videoTracks.length;i++)self.setStatus($.t(videoTracks.length>0?"Use_local_video_device":"No_local_video_device")),jsxc.debug('using video device "'+videoTracks[i].label+'"'),dialog.find(".jsxc_localvideo").show();$(document).one("cleanup.dialog.jsxc",$.proxy(self.hangUp,self)),$(document).trigger("finish.mediaready.jsxc")},onMediaFailure:function(ev,err){var self=jsxc.webrtc;err=err||{name:"Undefined"},self.setStatus("media failure"),jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller),"sys",$.t("Media_failure")+": "+$.t(err.name)+" ("+err.name+")."),jsxc.debug("media failure: "+err.name)},onCallIncoming:function(session){jsxc.debug("incoming call from "+session.peerID);var self=this,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),jsxc.gui.window.postMessage(bid,"sys",$.t("Incoming_call")),jsxc.notification.notify($.t("Incoming_call"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void self.reqUserMedia();var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){$(document).trigger("accept.call.jsxc"),jsxc.switchEvents({"mediaready.jingle":function(event,stream){self.setStatus("Accept call"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onCallTerminated:function(session,reason){this.setStatus("call terminated "+session.peer+(reason?reason.condition:""));var bid=jsxc.jidToBid(session.peer);this.localStream&&this.localStream.stop(),$(".jsxc_videoContainer").length&&($(".jsxc_remotevideo")[0].src="",$(".jsxc_localvideo")[0].src=""),this.conn.jingle.localStream=null,this.localStream=null,this.remoteStream=null;var win=$("#jsxc_dialog .jsxc_chatarea > ul > li");$("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),$(document).off("cleanup.dialog.jsxc"),$(document).off("error.jingle"),jsxc.gui.dialog.close(),jsxc.gui.window.postMessage(bid,"sys",$.t("Call_terminated")+(reason?": "+$.t("jingle_reason_"+reason.condition):"")+".")},onCallRinging:function(){this.setStatus("ringing...",0)},onRemoteStreamAdded:function(session,stream){this.setStatus("Remote stream for session "+session.sid+" added."),this.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;this.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),this.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(this.attachMediaStream($("#jsxc_dialog .jsxc_remotevideo"),stream),$("#jsxc_dialog .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},attachMediaStream:function(element,stream){var self=jsxc.webrtc;self.conn.jingle.RTC.attachMediaStream(element instanceof jQuery?element.get(0):element,stream)},onRemoteStreamRemoved:function(session){this.setStatus("Remote stream for "+session.jid+" removed.")},onIceConnectionStateChanged:function(session,state){var self=jsxc.webrtc;jsxc.debug("connection state for "+session.sid,state),"connected"===state?($("#jsxc_dialog .jsxc_deviceAvailable").show(),$("#jsxc_dialog .bubblingG").hide()):"failed"===state?(jsxc.gui.window.postMessage(jsxc.jidToBid(session.peerID),"sys",$.t("ICE_connection_failure")),$(document).off("cleanup.dialog.jsxc"),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"finish.mediaready.jsxc":function(){self.setStatus("Initiate call"),jsxc.gui.window.postMessage(jsxc.jidToBid(jid),"sys",$.t("Call_started")),$(document).one("error.jingle",function(e,sid,error){"offer"===error.source&&($(document).off("cleanup.dialog.jsxc"),setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500))});var session=self.conn.jingle.initiate(jid);session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self))},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},hangUp:function(reason,text){$(document).off("cleanup.dialog.jsxc"),jsxc.webrtc.conn.jingle.terminate(null,reason,text),$(document).trigger("callterminated.jingle")},reqUserMedia:function(um){return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),this.setStatus("please allow access to microphone and camera"),void("undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(function(sourceInfo){var availableDevices=sourceInfo.map(function(el){return el.kind});um=um.filter(function(el){return-1!==availableDevices.indexOf(el)}),jsxc.webrtc.getUserMedia(um)}):jsxc.webrtc.getUserMedia(um)))},getUserMedia:function(um){var self=jsxc.webrtc,constraints={};um.indexOf("video")>-1&&(constraints.video=!0),um.indexOf("audio")>-1&&(constraints.audio=!0);try{self.conn.jingle.RTC.getUserMedia(constraints,function(stream){jsxc.debug("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){jsxc.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){jsxc.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});
-link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()}},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;return $(document).one("complete.dialog.jsxc",function(){$("#jsxc_dialog .jsxc_localvideo")[0].muted=!0,$("#jsxc_dialog .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_dialog .jsxc_remotevideo"),lv=$("#jsxc_dialog .jsxc_localvideo");lv.draggable({containment:"parent"}),self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_dialog").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_dialog .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(self.attachMediaStream(rv,self.remoteStream),$("#jsxc_dialog .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var toggleMulti=function(elem,open){$("#jsxc_dialog .jsxc_multi > div").not(elem).slideUp();var opt={complete:jsxc.gui.dialog.resize};open?elem.slideDown(opt):elem.slideToggle(opt)},win=jsxc.gui.window.open(jsxc.jidToBid(jid));win.find(".slimScrollDiv").resizable("disable"),win.find(".jsxc_textarea").slimScroll({height:413}),win.find(".jsxc_emoticons").css("top","419px"),$("#jsxc_dialog .jsxc_chatarea ul").append(win.detach()),$("#jsxc_dialog .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_dialog .jsxc_snapshot").click(function(){jsxc.webrtc.snapshot(rv),toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"),!0)}),$("#jsxc_dialog .jsxc_snapshots").click(function(){toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"))}),$("#jsxc_dialog .jsxc_showchat").click(function(){var chatarea=$("#jsxc_dialog .jsxc_chatarea");chatarea.is(":hidden")?(chatarea.show(),$("#jsxc_dialog .jsxc_webrtc").width("900"),jsxc.gui.dialog.resize({width:"920px"})):(chatarea.hide(),$("#jsxc_dialog .jsxc_webrtc").width("650"),jsxc.gui.dialog.resize({width:"660px"}))}),$("#jsxc_dialog .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_dialog .jsxc_videoContainer").fullscreen())}),$("#jsxc_dialog .jsxc_volume").change(function(){rv[0].volume=$(this).val()}),$("#jsxc_dialog .jsxc_volume").dblclick(function(){$(this).val(.5)})}),jsxc.gui.dialog.close(),jsxc.gui.dialog.open(jsxc.gui.template.get("videoWindow"),{noClose:!0})},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){$(document).on("add.roster.jsxc",jsxc.webrtc.onAddRosterItem),$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init),$(document).on("disconnected.jsxc",jsxc.webrtc.onDisconnected)}),jsxc.xmpp.bookmarks={},jsxc.xmpp.bookmarks.remote=function(){return jsxc.xmpp.conn.caps&&jsxc.xmpp.hasFeatureByJid(jsxc.xmpp.conn.domain,Strophe.NS.PUBSUB+"#publish")},jsxc.xmpp.bookmarks.load=function(){var caps=jsxc.xmpp.conn.caps,ver=caps._jidVerIndex[jsxc.xmpp.conn.domain];ver&&caps._knownCapabilities[ver]||$(document).on("caps.strophe",function(ev,from){from===jsxc.xmpp.conn.domain&&(jsxc.xmpp.bookmarks.load(),$(document).off(ev))}),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.loadFromRemote():jsxc.xmpp.bookmarks.loadFromLocal()},jsxc.xmpp.bookmarks.loadFromLocal=function(){jsxc.debug("Load bookmarks from local storage");var bookmarks=jsxc.storage.getUserItem("bookmarks")||[],bl=jsxc.storage.getUserItem("buddylist")||[];$.each(bookmarks,function(){var room=this,roomdata=jsxc.storage.getUserItem("buddy",room)||{};bl.push(room),jsxc.gui.roster.add(room),roomdata.autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,roomdata.nickname))}),jsxc.storage.setUserItem("buddylist",bl)},jsxc.xmpp.bookmarks.loadFromRemote=function(){jsxc.debug("Load bookmarks from pubsub");var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.get(function(stanza){var bl=jsxc.storage.getUserItem("buddylist");$(stanza).find("conference").each(function(){var conference=$(this),room=conference.attr("jid"),roomName=conference.attr("name")||room,autojoin=conference.attr("autojoin")||!1,nickname=conference.find("nick").text();nickname=nickname.length>0?nickname:Strophe.getNodeFromJid(jsxc.xmpp.conn.jid),"true"===autojoin?autojoin=!0:"false"===autojoin&&(autojoin=!1);var data=jsxc.storage.getUserItem("buddy",room)||{};data=$.extend(data,{jid:room,name:roomName,sub:"both",status:0,type:"groupchat",state:jsxc.muc.CONST.ROOMSTATE.INIT,subject:null,bookmarked:!0,autojoin:autojoin,nickname:nickname}),jsxc.storage.setUserItem("buddy",room,data),bl.push(room),jsxc.gui.roster.add(room),autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,nickname))}),jsxc.storage.setUserItem("buddylist",bl)},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);"item-not-found"===err.reasons[0]?(jsxc.debug("create bookmark node"),bookmarks.createBookmarksNode()):jsxc.debug("[XMPP] Could not create bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.parseErr=function(stanza){var error=$(stanza).find("error"),type=error.attr("type"),reasons=error.children().map(function(){return $(this).prop("tagName")});return{type:type,reasons:reasons}},jsxc.xmpp.bookmarks["delete"]=function(room,soft){soft||jsxc.gui.roster.purge(room),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.deleteFromRemote(room,soft):jsxc.xmpp.bookmarks.deleteFromLocal(room,soft)},jsxc.xmpp.bookmarks.deleteFromRemote=function(room,soft){var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks["delete"](room,function(){jsxc.debug("Bookmark deleted "+room),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);jsxc.debug("[XMPP] Could not delete bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.deleteFromLocal=function(room,soft){var bookmarks=jsxc.storage.getUserItem("bookmarks"),index=bookmarks.indexOf(room);index>-1&&bookmarks.splice(index,1),jsxc.storage.setUserItem("bookmarks",bookmarks),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},jsxc.xmpp.bookmarks.add=function(room,alias,nick,autojoin){jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.addToRemote(room,alias,nick,autojoin):jsxc.xmpp.bookmarks.addToLocal(room,alias,nick,autojoin)},jsxc.xmpp.bookmarks.addToRemote=function(room,alias,nick,autojoin){var bookmarks=jsxc.xmpp.conn.bookmarks,success=function(){jsxc.debug("New bookmark created",room),jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick)},error=function(){jsxc.warn("Could not create bookmark",room)};bookmarks.add(room,alias,nick,autojoin,success,error)},jsxc.xmpp.bookmarks.addToLocal=function(room,alias,nick,autojoin){jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick);var bookmarks=jsxc.storage.getUserItem("bookmarks")||[];bookmarks.indexOf(room)<0&&(bookmarks.push(room),jsxc.storage.setUserItem("bookmarks",bookmarks))},jsxc.xmpp.bookmarks.showDialog=function(room){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("bookmarkDialog")),data=jsxc.storage.getUserItem("buddy",room);$("#jsxc_room").val(room),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_nickname").prop("disabled",!1),$("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_nickname").prop("disabled",!0),$("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_bookmark").change(),dialog.find("form").submit(function(ev){ev.preventDefault();var bookmarked=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked"),nickname=$("#jsxc_nickname").val();return bookmarked?jsxc.xmpp.bookmarks.add(room,data.name,nickname,autojoin):data.bookmarked&&jsxc.xmpp.bookmarks["delete"](room,!0),jsxc.gui.dialog.close(),!1})},jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b>{{version}}\n <br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a>\n</p>\n<p>\n <i>Released under the MIT license</i>\n</p>\n<p>\n Real-time chat app for {{app_name}} and more.\n <br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.\n</p>\n<p>\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>, <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>\n</p>\n<p class="jsxc_libraries">\n <b>Libraries: </b>\n <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT)\n</p>\n\n<button class="btn btn-default pull-right jsxc_debuglog">Show debug log</button>\n',jsxc.gui.template.alert='<h3 data-i18n="Alert"></h3>\n<div class="alert alert-info">\n <strong data-i18n="Info"></strong> {{msg}}\n</div>\n',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>\n',jsxc.gui.template.approveDialog='<h3 data-i18n="Subscription_request"></h3>\n<p>\n <span data-i18n="You_have_a_request_from"></span><b class="jsxc_their_jid"></b>.\n</p>\n\n<button class="btn btn-primary jsxc_approve pull-right" data-i18n="Approve"></button>\n<button class="btn btn-default jsxc_deny pull-right" data-i18n="Deny"></button>\n',jsxc.gui.template.authFailDialog='<h3 data-i18n="Login_failed"></h3>\n<p data-i18n="Sorry_we_cant_authentikate_"></p>\n\n<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n',jsxc.gui.template.authenticationDialog='<h3>Verification</h3>\n<p data-i18n="Authenticating_a_buddy_helps_"></p>\n<div>\n <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy"></p>\n\n <div class="btn-group" role="group">\n <button class="btn btn-default" data-i18n="Manual"></button>\n <button class="btn btn-default" data-i18n="Question"></button>\n <button class="btn btn-default" data-i18n="Secret"></button>\n </div>\n</div>\n<hr />\n<div style="display: none">\n <p data-i18n="To_verify_the_fingerprint_" class=".jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{my_priv_fingerprint}}</span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{bid_priv_fingerprint}}</span>\n </p>\n <div class="jsxc_right">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compared"></button>\n </div>\n</div>\n<div style="display: none" class="form-horizontal">\n <p data-i18n="To_authenticate_using_a_question_" class=".jsxc_explanation"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_quest" data-i18n="Question"></label>\n <div class="col-sm-8">\n <input type="text" name="quest" id="jsxc_quest" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret2" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret2" id="jsxc_secret2" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Ask"></button>\n </div>\n </div>\n</div>\n<div style="display: none" class="form-horizontal">\n <p class=".jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret" id="jsxc_secret" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compare"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.bookmarkDialog='<h3 data-i18n="Edit_bookmark"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" id="jsxc_room" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" disabled="disabled" required="required" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button type="button" class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button type="submit" class="btn btn-primary jsxc_submit" data-i18n="Save"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.chatWindow='<li class="jsxc_min jsxc_windowItem">\n <div class="jsxc_window">\n <div class="jsxc_bar">\n <div class="jsxc_avatar">☺</div>\n <div class="jsxc_tools">\n <div class="jsxc_settings">\n <ul>\n <li class="jsxc_fingerprints jsxc_otr jsxc_disabled" data-i18n="Fingerprints"></li>\n <li class="jsxc_verification" data-i18n="Authentication"></li>\n <li class="jsxc_transfer jsxc_otr jsxc_disabled" data-i18n="start_private"></li>\n <li class="jsxc_clear" data-i18n="clear_history"></li>\n </ul>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_unread" />\n <div class="jsxc_name" />\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_gradient" />\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <ul />\n </div>\n <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message" />\n </div>\n </div>\n</li>\n',jsxc.gui.template.confirmDialog='<p>{{msg}}</p>\n\n<button class="btn btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.contactDialog='<h3 data-i18n="Add_buddy"></h3>\n<p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" list="jsxc_userlist" pattern="^[^\\x22&\'\\\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" />\n </div>\n </div>\n <datalist id="jsxc_userlist"></datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_alias" data-i18n="Alias"></label>\n <div class="col-sm-8">\n <input type="text" name="alias" id="jsxc_alias" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" type="button" data-i18n="Close"></button>\n <button class="btn btn-primary" type="submit" data-i18n="Add"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.fingerprintsDialog='<div>\n <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{my_priv_fingerprint}}</span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{bid_priv_fingerprint}}</span>\n </p>\n</div>\n',jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3>\n<p>\n <span data-i18n="Do_you_want_to_accept_the_call_from"></span> {{bid_name}}?\n</p>\n\n<button class="btn btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="btn btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n',jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3>\n<p class=".jsxc_explanation" data-i18n="muc_explanation"></p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_server" data-i18n="Server"></label>\n <div class="col-sm-8">\n <input type="text" name="server" id="jsxc_server" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" name="room" id="jsxc_room" class="form-control" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" />\n </div>\n </div>\n <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p>\n <datalist id="jsxc_roomlist">\n <p>\n <label for="jsxc_roomlist_select"></label>\n <select id="jsxc_roomlist_select">\n <option></option>\n <option>workaround</option>\n </select>\n </p>\n </datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="text" name="password" id="jsxc_password" class="form-control" />\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="jsxc_msg"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <span class="jsxc_warning"></span>\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_continue" data-i18n="Continue"></button>\n <button class="btn btn-success jsxc_join" data-i18n="Join"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.loginBox='<h3 data-i18n="Login"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" required="required" value="{{my_node}}" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="password" name="password" required="required" class="form-control" id="jsxc_password" />\n </div>\n </div>\n <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-9">\n <button type="reset" class="btn btn-default jsxc_close" name="clear" data-i18n="Cancel" />\n <button type="submit" class="btn btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect" />\n </div>\n </div>\n</form>\n',jsxc.gui.template.pleaseAccept='<p data-i18n="Please_accept_"></p>\n',jsxc.gui.template.removeDialog='<h3 data-i18n="Remove_buddy"></h3>\n<p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p>\n\n<button class="btn btn-primary jsxc_remove pull-right" data-i18n="Remove"></button>\n<button class="btn btn-default jsxc_cancel jsxc_close pull-right" data-i18n="Cancel"></button>\n',jsxc.gui.template.roster='<div id="jsxc_roster">\n <ul id="jsxc_buddylist"></ul>\n <div class="jsxc_bottom jsxc_presence" data-bid="own">\n <div id="jsxc_avatar">\n <div class="jsxc_avatar">☺</div>\n </div>\n <div id="jsxc_menu">\n <span></span>\n <ul>\n <li class="jsxc_settings" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_addBuddy" data-i18n="Add_buddy"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_onlineHelp" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <ul></ul>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Online"></span>\n <ul>\n <li data-pres="online" class="jsxc_online" data-i18n="Online"></li>\n <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li>\n <li data-pres="away" class="jsxc_away" data-i18n="Away"></li>\n <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li>\n <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li>\n <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li>\n <div class="jsxc_avatar">☺</div>\n <div class="jsxc_control"></div>\n <div class="jsxc_unread" />\n <div class="jsxc_name" />\n <div class="jsxc_options jsxc_right">\n <div class="jsxc_rename" data-i18n="[title]rename_buddy">✎</div>\n <div class="jsxc_delete" data-i18n="[title]delete_buddy">✘</div>\n </div>\n <div class="jsxc_options jsxc_left">\n <div class="jsxc_chaticon" data-i18n="[title]send_message" />\n <div class="jsxc_vcardicon" data-i18n="[title]get_info">i</div>\n </div>\n</li>\n',jsxc.gui.template.selectionDialog='<h3></h3>\n<p></p>\n\n<button class="btn btn-primary pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.settings='<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <legend data-i18n="Login_options"></legend>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-url" data-i18n="BOSH_url"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-url" class="form-control" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-username" data-i18n="Username"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-username" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-domain" data-i18n="Domain"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-domain" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-resource" data-i18n="Resource"></label>\n <div class="col-sm-6">\n <input class="form-control" type="text" id="xmpp-resource" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <legend data-i18n="On_login"></legend>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="loginForm-enable"><span data-i18n="On_login"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <legend data-i18n="Priority"></legend>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-online" data-i18n="Online"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-online" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-chat" data-i18n="Chatty"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-chat" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-away" data-i18n="Away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-away" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-xa" data-i18n="Extended_away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-xa" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-dnd" data-i18n="dnd"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-dnd" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <legend data-i18n="Carbon_copy"></legend>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="carbons-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n',jsxc.gui.template.vCard='<h3>\n <span data-i18n="Info_about"></span> <span>{{bid_name}}</span>\n</h3>\n<ul class="jsxc_vCard"></ul>\n<p>\n <img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...\n</p>\n',jsxc.gui.template.videoWindow='<div class="jsxc_webrtc">\n <div class="jsxc_chatarea">\n <ul></ul>\n </div>\n <div class="jsxc_videoContainer">\n <video class="jsxc_localvideo" autoplay></video>\n <video class="jsxc_remotevideo" autoplay></video>\n <div class="jsxc_status"></div>\n <div class="bubblingG">\n <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span>\n </div>\n <div class="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n </div>\n <div class="jsxc_controlbar">\n <button class="btn btn-default jsxc_showchat" data-i18n="chat"></button>\n <button class="btn btn-primary jsxc_hangUp" data-i18n="hang_up"></button>\n <input type="range" class="jsxc_volume" min="0.0" max="1.0" step="0.05" value="0.5" style="width: 150px" />\n <div class="btn-group">\n <button class="btn btn-default jsxc_snapshot" data-i18n="snapshot"></button>\n <button class="btn btn-default jsxc_snapshots">&#9660;</button>\n </div>\n <!-- <button type="button" class="jsxc_mute_local" data-i18n="mute_my_audio"></button>\n <button type="button" class="jsxc_pause_local" data-i18n="pause_my_video"></button> -->\n <button class="btn btn-default jsxc_fullscreen" data-i18n="fullscreen"></button>\n <button class="btn btn-default jsxc_info" data-i18n="Info"></button>\n\n </div>\n <div class="jsxc_multi">\n <div class="jsxc_snapshotbar">\n <p>No pictures yet!</p>\n </div>\n <!--<div class="jsxc_chatarea">\n <ul></ul>\n </div>-->\n <div class="jsxc_infobar"></div>\n </div>\n</div>\n',jsxc.gui.template.waitAlert='<h3>{{msg}}</h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" style="width: 100%" data-i18n="Please_wait">\n </div>\n</div>\n',jsxc.gui.template.windowList='<div id="jsxc_windowList">\n <ul></ul>\n</div>\n<div id="jsxc_windowListSB">\n <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div>\n <div class="jsxc_scrollRight jsxc_disabled">&gt;</div>\n</div>\n'
-}(jQuery);
+var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"2.1.5",master:!1,role_allocation:!1,to:null,toBusy:null,toNotification:null,toNotificationDelay:500,keepalive:null,restore:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/((?:https?:\/\/|www\.|([\w\-]+\.[a-zA-Z]{2,3})(?=\b))(?:(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\)([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])?)|(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]))?)/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),date=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,time=hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+"."+month+"."+year+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){if(options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){var local=jsxc.storage.getUserItem("options")||{};return local[key]||jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,$.i18n.init({lng:lang,fallbackLng:"en",resStore:I18next,useLocalStorage:!0,localStorageExpirationTime:864e5}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1);var lastActivity=jsxc.storage.getItem("lastActivity")||0;if((new Date).getTime()-lastActivity<jsxc.options.loginTimeout&&(jsxc.restore=!0),$(document).on("connectionReady.jsxc",function(){if(null!==jsxc.options.logoutElement&&jsxc.options.logoutElement.length>0){var logout=function(){return jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}}),jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.restore)(!jsxc.isLoginForm()||jsxc.options.loginForm&&jsxc.options.loginForm.attachIfFound)&&(jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),"undefined"!=typeof jsxc.storage.getItem("alive")&&jsxc.restore?jsxc.checkMaster():jsxc.onMaster());else{if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(){return jsxc.prepareLogin(function(settings){if(settings!==!1){var enabled=settings.loginForm&&settings.loginForm.enable||settings.xmpp&&settings.xmpp.onlogin;enabled="true"===enabled||enabled===!0,enabled&&(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login())}else jsxc.submitLoginForm()}),!1})}},isLoginForm:function(){return jsxc.options.loginForm.form&&jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)},prepareLogin:function(username,password,cb){"function"==typeof username&&(cb=username,username=null),username=username||$(jsxc.options.loginForm.jid).val(),password=password||$(jsxc.options.loginForm.pass).val(),jsxc.triggeredFromBox||"dialog"!==jsxc.options.loginForm.onConnecting&&"undefined"!=typeof jsxc.options.loginForm.onConnecting||jsxc.gui.showWaitAlert($.t("Logging_in"));var settings;"function"==typeof jsxc.options.loadSettings?(settings=jsxc.options.loadSettings.call(this,username,password,function(s){jsxc._prepareLogin(username,password,cb,s)}),"undefined"!=typeof settings&&jsxc._prepareLogin(username,password,cb,settings)):jsxc._prepareLogin(username,password,cb)},_prepareLogin:function(username,password,cb,loadedSettings){if(loadedSettings===!1)return jsxc.warn("No settings provided"),void cb(!1);var settings=$.extend(!0,{},jsxc.options);loadedSettings?settings=$.extend(!0,settings,loadedSettings):loadedSettings={},"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",loadedSettings.xmpp||(loadedSettings.xmpp={}),$.each(loadedSettings,function(key){var old=jsxc.options.get(key),val=settings[key];val=$.extend(!0,old,val),jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,cb(settings)},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.storage.getUserItem("windowlist")||jsxc.storage.setUserItem("windowlist",[]),jsxc.startKeepAlive(),jsxc.options.get("otr").enable?jsxc.otr.createDSA():jsxc._onMaster()},_onMaster:function(){if(jsxc.role_allocation&&$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.role_allocation=!0,jsxc.restore&&!jsxc.restoreCompleted&&(jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc")),jsxc.restore){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1}$(document).on("connectionReady.jsxc",function(){jsxc.gui.updateAvatar($("#jsxc_avatar"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}),jsxc.xmpp.login()},checkMaster:function(){jsxc.debug("check master"),jsxc.to=window.setTimeout(jsxc.onMaster,1e3),jsxc.storage.ink("alive")},startKeepAlive:function(){jsxc.keepalive=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(){jsxc.storage.ink("alive"),jsxc.role_allocation&&jsxc.storage.setItem("lastActivity",(new Date).getTime())},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepalive&&window.clearInterval(jsxc.keepalive),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.unescapeNode(Strophe.getBareJidFromJid(jid).toLowerCase())},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),jsxc.gui.roster.loaded=!0,void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var window=jsxc.storage.getUserItem("window",bid);return window?(jsxc.gui.window.init(bid),window.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,window.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=jsxc.options.loginForm.form.off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.submit()},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];return"function"==typeof fn?fn.apply(null,fnParams):void 0},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash}},jsxc.xmpp={conn:null,login:function(){if(!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated){var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=null,rid=null,jid=jsxc.options.xmpp.jid)}var url=jsxc.options.get("xmpp").url;jsxc.xmpp.conn&&jsxc.xmpp.conn.connected||($(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("ridChange",jsxc.xmpp.onRidChange),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts")),jsxc.xmpp.conn=new Strophe.Connection(url);var stropheGetUniqueId=jsxc.xmpp.conn.getUniqueId;jsxc.xmpp.conn.getUniqueId=function(suffix){var uid=stropheGetUniqueId.call(jsxc.xmpp.conn,suffix);return jsxc.storage.setItem("_uniqueId",jsxc.xmpp.conn._uniqueId),uid},jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)});var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTING:$(document).trigger("connecting.jsxc");break;case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),jsxc.restore&&sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid||jsxc.options.xmpp.jid,password||jsxc.options.xmpp.password,callback))}},logout:function(complete){if(jsxc.storage.removeItem("sid"),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeItem("_uniqueId"),!jsxc.master)return $("#jsxc_roster").remove(),$("#jsxc_windowlist").remove(),!0;if(null===jsxc.xmpp.conn)return!0;$("body").click(),jsxc.triggeredFromElement="boolean"==typeof complete?complete:!0,$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){jsxc.xmpp.conn.pause();var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);if(jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid),jsxc.storage.setItem("lastActivity",(new Date).getTime()),jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.storage.removeUserItem("unreadMsg"),jsxc.storage.removeUserElement("options","RTCPeerConfig"),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":jsxc.submitLoginForm();case!1:return void jsxc.xmpp.connectionReady()}jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.onMaster(),jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close(),jsxc.restoreCompleted=!0,$(document).trigger("attached.jsxc")},attached:function(){jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence");var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps){var conditionalEnable=function(){};if(jsxc.options.get("carbons").enable&&(conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()},$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))})),"undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.debug("Request server capabilities"),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.restore&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres();else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.connectionReady()},connectionReady:function(){jsxc.xmpp.conn._uniqueId=jsxc.storage.getItem("_uniqueId")||(new Date).getTime(),$(document).trigger("connectionReady.jsxc")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("lastActivity"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("ridChange",jsxc.xmpp.onRidChange),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepalive)},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm();break;case"quiet":case!1:return}},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[]}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.xmpp.bookmarks.load(),jsxc.gui.roster.loaded=!0,jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc")},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||{},res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype){$(document).trigger("error.presence.jsxc",[from,presence]);var error=$(presence).find("error");return jsxc.error("[XMPP] "+error.attr("code")+" "+error.find(">:first-child").prop("tagName")),!0}if("subscribe"===ptype)return jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add($.t("Friendship_request"),$.t("from")+" "+jid,"gui.showApproveDialog",[jid]),!0;if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=""===show?jsxc.CONST.STATUS.indexOf("online"):jsxc.CONST.STATUS.indexOf(show)}0===status?delete res[r]:res[r]=status;var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),"groupchat"===data.type?data.status=status:data.status=max,data.res=maxVal,data.jid=jid,xVCard.length>0&&"groupchat"!==data.type){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+status),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text();if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?"out":"in";return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage(bid,direction,body,!1,forwarded,stamp),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add($.t("Unknown_sender"),$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+").","gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);return"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid})),jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded}):jsxc.gui.window.postMessage(bid,"in",body,!1,forwarded,stamp),!0},onRidChange:function(ev,data){jsxc.storage.setItem("rid",data.rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(message){var from=$(message).attr("from"),jid=Strophe.getBareJidFromJid(from),bid=jsxc.jidToBid(jid),received=$(message).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var i,receivedId=received.attr("id").replace(/:/,"-"),chat=jsxc.storage.getUserItem("chat",bid);for(i=chat.length-1;i>=0;i--)if(chat[i].uid===receivedId){chat[i].received=!0,$("#"+receivedId).addClass("jsxc_received"),jsxc.storage.setUserItem("chat",bid,chat);break}}return!0},sendMessage:function(bid,msg,uid){jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].sendMsg(msg,uid):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,uid)},_sendMessage:function(jid,msg,uid){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat",xmlMsg=$msg({to:jid,type:type,id:uid}).c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature,cb){var conn=jsxc.xmpp.conn;if(cb=cb||function(){},!feature)return!1;$.isArray(feature)||(feature=$.makeArray(feature));var check=function(knownCapabilities){if(!knownCapabilities)return null;var i;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0};if(conn.caps._jidVerIndex[jid]&&conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]){var hasFeature=check(conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]);return cb(hasFeature),hasFeature}return $(document).on("strophe.caps",function(ev,j,capabilities){j===jid&&(cb(check(capabilities)),$(document).off(ev))}),null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){return err!==!1?jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable():void 0}},jsxc.gui={emotions:[["O:-) O:)","angel"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","smile"],[":-D :D","grin"],[":-( :(","sad"],[";-) ;)","wink"],[":-P :P","tonguesmile"],["=-O","surprised"],[":kiss: :-*","kiss"],["8-) :cool:","sunglassess"],[":'-( :'( :&amp;apos;-(","crysad"],[":-/","doubt"],[":-X :X","zip"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":devil:","devil"],[":kiss: :kissing:","kissing"],["@->-- :rose: @-&gt;--","rose"],[":music:","music"],[":love:","love"],[":zzz:","tired"]],favicon:null,queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)},join:function(jid,params){var password=params&&params.password?params.password:null;jsxc.muc.showJoinChat(jid,password)}},init:function(){if(!($("#jsxc_windowList").length>0)){$("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList");var fo=jsxc.options.get("favicon");fo&&fo.enable&&(jsxc.gui.favicon=new Favico({animation:"pop",bgColor:fo.bgColor,textColor:fo.textColor}),jsxc.gui.favicon.badge(jsxc.storage.getUserItem("unreadMsg")||0)),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy"))}},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),ue.add(spot).removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is_",{status:$.t(jsxc.CONST.STATUS[data.status])})),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));
+break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info="<b>"+Strophe.getBareJidFromJid(data.jid)+"</b>\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar)},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);null!==avatarSrc?setAvatar(avatarSrc):jsxc.xmpp.conn.vcard.get(function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},Strophe.getBareJidFromJid(jid),function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)})},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();width>scrollWidth||(right>0&&(right=0),width-scrollWidth-padding>right&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(){var self=$(this);self.disableSelection();var ul=self.find("ul"),slideUp=null;slideUp=function(){ul.slideUp({complete:function(){self.removeClass("jsxc_opened")}}),$("body").off("click",null,slideUp)},$(this).click(function(){return ul.is(":hidden")?($("body").click(),$("body").one("click",slideUp)):$("body").off("click",null,slideUp),ul.slideToggle(),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){function onAuthFail(){alert.show(),jsxc.gui.dialog.resize(),$("#jsxc_dialog").find("button").trigger("btnfinished.jsxc"),$("#jsxc_dialog").find("input").one("keypress",function(){alert.hide(),jsxc.gui.dialog.resize()})}$(document).on("complete.dialog.jsxc",function(){$("#jsxc_password").focus()}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox"));var alert=$("#jsxc_dialog").find(".jsxc_alert");alert.hide(),$("#jsxc_dialog").find("form").submit(function(ev){ev.preventDefault(),$(this).find("button[data-jsxc-loading-text]").trigger("btnloading.jsxc"),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password"),jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1,jsxc.prepareLogin(function(settings){settings===!1?onAuthFail():($(document).on("authfail.jsxc",onAuthFail),jsxc.xmpp.login())})})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid)),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq(0) button").click(function(){$(this).siblings().removeClass("active"),$(this).addClass("active"),$(this).get(0).blur(),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+($(this).index()+1)+")").show().find("input:first").focus()}),$("#jsxc_dialog > div:eq(1) .jsxc_submit").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close(),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}),void $("#jsxc_dialog > div:eq(3) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp_"+bid,{sec:sec,quest:null}),jsxc.gui.dialog.close(),void jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_query_sent")))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||jsxc.gui.showContactDialog(from)})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(ev){ev.preventDefault();var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .jsxc_remove").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .jsxc_retry").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .jsxc_confirm").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_dismiss").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)navigator.hasOwnProperty(key)&&"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";return el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0?content:void 0},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),("false"===jsxc.options.get("xmpp").overwrite||jsxc.options.get("xmpp").overwrite===!1)&&$(".jsxc_fieldsetXmpp").parent().hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var success=jsxc.options.saveSettinsPermanent.call(this,data);return"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[success]),setTimeout(function(){success?self.find('button[type="submit"]').switchClass("btn-primary","btn-success"):self.find('button[type="submit"]').switchClass("btn-primary","btn-danger"),setTimeout(function(){self.find('button[type="submit"]').switchClass("btn-danger btn-success","btn-primary")},2e3)},200),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender_",{sender:bid});jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},showSelectionDialog:function(header,msg,primary,option,primaryLabel,optionLabel){var opt;opt=1===arguments.length&&"object"==typeof header&&null!==header?header:{header:header,msg:msg,primary:{label:primaryLabel,cb:primary},option:{label:optionLabel,cb:option}};var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("selectionDialog"),{noClose:!0});opt.header?dialog.find("h3").text(opt.header):dialog.find("h3").hide(),opt.msg?dialog.find("p").text(opt.msg):dialog.find("p").hide(),opt.primary&&opt.primary.label&&dialog.find(".btn-primary").text(opt.primary.label),opt.primary&&opt.option.label&&dialog.find(".btn-default").text(opt.option.label),opt.primary&&opt.primary.cb&&dialog.find(".btn-primary").click(opt.primary.cb),opt.primary&&opt.option.cb&&dialog.find(".btn-primary").click(opt.option.cb)},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('.jsxc_presence[data-bid="'+bid+'"]').removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)},unreadMsg:function(bid){var winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?1:count+1,winData.unread=count,jsxc.storage.setUserItem("window",bid,winData);var total=jsxc.storage.getUserItem("unreadMsg")||0;total++,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.gui._unreadMsg(bid,count)},_unreadMsg:function(bid,count){var win=jsxc.gui.window.get(bid);if("number"!=typeof count){var winData=jsxc.storage.getUserItem("window",bid);count=winData&&winData.unread||1,count=count===!0?1:count}var el=jsxc.gui.roster.getItem(bid).add(win);el.addClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(count)},readMsg:function(bid){var win=jsxc.gui.window.get(bid),winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?0:count;var el=jsxc.gui.roster.getItem(bid).add(win);if(el.removeClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(0),count>0){var total=jsxc.storage.getUserItem("unreadMsg")||0;total-=count,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.storage.updateUserItem("window",bid,"unread",0)}},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *mailto:/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())}},jsxc.gui.roster={ready:!1,loaded:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text(hideOffline?$.t("Show_offline"):$.t("Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open(jsxc.options.onlineHelp,"onlineHelp")}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence > ul > li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))});var rosterState=jsxc.storage.getUserItem("roster")||(jsxc.options.get("loginForm").startMinimized?"hidden":"shown");$("#jsxc_roster").addClass("jsxc_state_"+rosterState),"hidden"===rosterState&&($("#jsxc_roster").css("right",-1*$("#jsxc_roster").innerWidth()+"px"),$("#jsxc_windowList").css("right","10px"));var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence > ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_chaticon").click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),"groupchat"!==data.type&&bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),bud.toggleClass("jsxc_expand"),jsxc.gui.updateAvatar(bud,data.jid,data.avatar),!1};bud.find(".jsxc_control").click(expandClick),bud.dblclick(expandClick),bud.find(".jsxc_vcardicon").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"}),$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1,status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;return $(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||status>thisStatus?($(this).before(li),insert=!0,!1):void 0}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_options, .jsxc_control, .jsxc_unread"),input=$('<input type="text" name="name"/>');options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid)||{};if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}else"groupchat"===d.type&&jsxc.xmpp.bookmarks.add(bid,newname,d.nickname,d.autojoin)}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(d){var duration=d||500,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList"),roster_width=roster.innerWidth(),roster_right=parseFloat($("#jsxc_roster").css("right")),state=0>roster_right?"shown":"hidden";jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),roster.animate({right:-1*(roster_width+roster_right)+"px"},duration),wl.animate({right:10-roster_right+"px"},duration),$(document).trigger("toggle.roster.jsxc",[state,duration])},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_")+"</p>"),link=text.find("a");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={open:function(data,o){var opt=o||{};return $.magnificPopup.open({items:{src:'<div id="jsxc_dialog">'+data+"</div>"},type:"inline",modal:opt.noClose,callbacks:{beforeClose:function(){$(document).trigger("cleanup.dialog.jsxc")},afterClose:function(){$(document).trigger("close.dialog.jsxc")},open:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),$("#jsxc_dialog form").each(function(){var form=$(this);form.find("button[data-jsxc-loading-text]").each(function(){var btn=$(this);btn.on("btnloading.jsxc",function(){btn.prop("disabled")||(btn.prop("disabled",!0),btn.data("jsxc_value",btn.text()),btn.text(btn.attr("data-jsxc-loading-text")))}),btn.on("btnfinished.jsxc",function(){btn.prop("disabled")&&(btn.prop("disabled",!1),btn.text(btn.data("jsxc_value")))})})}),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")}}}),$("#jsxc_dialog")},close:function(){jsxc.debug("close dialog"),$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).hide().appendTo("#jsxc_windowList > ul").show("slow"),data=jsxc.storage.getUserItem("buddy",bid);if(win.data("jid",data.jid),jsxc.gui.toggleList.call(win.find(".jsxc_settings")),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_tools").click(function(){return!1}),win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13===ev.which&&(body=""),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){13===ev.which&&$(this).val()&&(ev.stopPropagation(),ev.preventDefault(),jsxc.gui.window.postMessage(bid,"out",$(this).val()),$(this).val(""))}).focus(function(){jsxc.gui.readMsg(bid)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_fade").hide(),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height});var offset=win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",ui.size.height+offset+6+"px"),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])}}),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist");wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:0})}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui._unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$('<li><div title="'+ins+'" class="jsxc_'+val[1]+'"/></li>');li.click(function(){win.find("input").val(win.find("input").val()+ins),win.find("input").focus()}),win.find(".jsxc_emoticons ul").append(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid);var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;0>left&&jsxc.gui.scrollWindowListBy(-1*left),0>right&&jsxc.gui.scrollWindowListBy(right)}return win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).hide("slow",function(){$(this).remove(),jsxc.gui.updateWindowListSB()})},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.find(".jsxc_fade").is(":hidden")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid);jsxc.gui.window.get(bid).find(".jsxc_fade").slideDown(),win.removeClass("jsxc_min"),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)},_hide:function(bid){jsxc.gui.window.get(bid).addClass("jsxc_min").find(" .jsxc_fade").slideUp(),jsxc.gui.window.get(bid).trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){
+var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var data=jsxc.storage.getUserItem("buddy",bid),html_msg=msg;msg=jsxc.removeHTML(msg),msg=jsxc.escapeHTML(msg),"out"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&forwarded!==!0&&(direction="sys",msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),"in"===direction&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(direction="sys",msg=$.t("unencrypted_message_received")+" "+msg),encrypted=encrypted||data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;var post=jsxc.storage.saveMessage(bid,direction,msg,encrypted,forwarded,stamp,sender);"in"!==direction||jsxc.gui.window.get(bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(bid),$(document).trigger("postmessagein.jsxc",[bid,html_msg])),"out"===direction&&jsxc.master&&forwarded!==!0&&jsxc.xmpp.sendMessage(bid,html_msg,post.uid),jsxc.gui.window._postMessage(bid,post),"out"===direction&&"?"===msg&&jsxc.gui.window.postMessage(bid,"sys","42")},_postMessage:function(bid,post,restore){var win=jsxc.gui.window.get(bid),msg=post.msg,direction=post.direction,uid=post.uid;win.find(".jsxc_textinput").is(":not(:focus)")&&"in"===direction&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],function(match,p1){var i,esc="";for(i=0;i<p1.length;i++)esc+="&#"+p1.charCodeAt(i)+";";return'<div title="'+esc+'" class="jsxc_emoticon jsxc_'+val[1]+'"/>'})});var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(post.stamp)),post.received&&msgDiv.addClass("jsxc_received"),post.forwarded&&msgDiv.addClass("jsxc_forwarded"),post.encrypted&&msgDiv.addClass("jsxc_encrypted"),"sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div style="clear:both"/>'):"undefined"!=typeof post.stamp&&msgDiv.append(msgTsDiv),win.find(".jsxc_textarea").append(msgDiv),"object"==typeof post.sender&&null!==post.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof post.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(post.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(post.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(post.sender.jid),data.avatar),title=jsxc.jidToBid(post.sender.jid)}"string"==typeof post.sender.name&&(msgDiv.attr("data-name",post.sender.name),"string"!=typeof post.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,post.sender.name),""!==title&&(title="\n"+title),title=post.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+post.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title))}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){for(var chat=jsxc.storage.getUserItem("chat",bid);null!==chat&&chat.length>0;){var c=chat.pop();jsxc.gui.window._postMessage(bid,c,!0)}},clear:function(bid){jsxc.storage.setUserItem("chat",bid,[]),jsxc.gui.window.get(bid).find(".jsxc_textarea").empty()}},jsxc.gui.template={},jsxc.gui.template.get=function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name,version:jsxc.version};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?data.name:bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=ret.replace(/\{\{root\}\}/g,ph.root),ret=$("<div>").append($(ret).i18n()).html(),ret=ret.replace(/\{\{([a-zA-Z0-9_\-]+)\}\}/g,function(s,key){return"string"==typeof ph[key]?ph[key]:s})):(jsxc.debug("Template not available: "+name),name)},jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4},ROOMCONFIG:{INSTANT:"instant"}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul").append(li)},showJoinChat:function(r,p){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),"string"==typeof r&&dialog.find("#jsxc_room").val(r),"string"==typeof p&&dialog.find("#jsxc_password").val(p),dialog.find("#jsxc_server").val(jsxc.options.get("muc").server);var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),dialog.find(".jsxc_warning").text(msg)};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),self.conn.muc.listRooms(jsxc.options.get("muc").server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(){jsxc.warn("Could not load rooms"),dialog.find(".jsxc_inputinfo").hide()}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),password=$("#jsxc_password").val()||null;if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(room.match(/@(.*)$/)||(room+="@"+jsxc.options.get("muc").server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){ev.preventDefault();var bookmark=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked");return self.join(room,nickname,password,roomName,subject,bookmark,autojoin),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18n.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else dialog.find(".jsxc_warning").text($.t("You_already_joined_this_room"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").empty(),void(dialog.find(".jsxc_continue").is(":hidden")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},showRoomConfiguration:function(room){var self=jsxc.muc;self.conn.muc.configure(room,function(stanza){var form=Strophe.x.Form.fromXML(stanza);window.f=form,self._showRoomConfiguration(room,form)},function(){jsxc.debug("Could not load room configuration")})},_showRoomConfiguration:function(room,config){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.muc.helper.formToHTML(config)),form=dialog.find("form"),submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Join"));var cancel=$("<button>");cancel.addClass("btn btn-default"),cancel.attr("type","button"),cancel.text($.t("Cancel"));var formGroup=$("<div>");formGroup.addClass("form-group"),$("<div>").addClass("col-sm-offset-6 col-sm-6").appendTo(formGroup),formGroup.find(">div").append(cancel),formGroup.find(">div").append(submit),form.append(formGroup),form.submit(function(ev){ev.preventDefault();var config=Strophe.x.Form.fromHTML(form.get(0));return self.conn.muc.saveConfiguration(room,config,function(){jsxc.storage.updateUserItem("buddy",room,"config",config),jsxc.debug("Room configuration saved.")},function(){jsxc.warn("Could not save room configuration.")}),jsxc.gui.dialog.close(),!1}),cancel.click(function(){self.conn.muc.cancelConfigure(room),jsxc.gui.dialog.close()})},join:function(room,nickname,password,roomName,subject,bookmark,autojoin){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject,bookmarked:bookmark||!1,autojoin:autojoin||!1,nickname:nickname,config:null}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password),bookmark&&jsxc.xmpp.bookmarks.add(room,roomName,nickname,autojoin)},leave:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},roomdata=jsxc.storage.getUserItem("buddy",room)||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.EXITED),roomdata.bookmarked||jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room);jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage(room,"sys",$.t("This_room_will_be_closed"));var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb),roomdata.bookmarked&&jsxc.xmpp.bookmarks["delete"](room)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata)},initWindow:function(event,win){var self=jsxc.muc,data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if(!jsxc.xmpp.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});if("groupchat"===roomdata.type){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_transfer").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)}),setTimeout(function(){var top=win.find(".jsxc_emoticons").position().top+win.find(".slimScrollDiv").position().top;win.find(".jsxc_emoticons").css("top",top+"px")},400);var destroy=$("<li>");if(destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append(destroy),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show()})}var leave=$("<li>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append(leave)}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),roomdata=jsxc.storage.getUserItem("buddy",room),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),roomdata.state===self.CONST.ROOMSTATE.INIT){if(jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),jsxc.storage.removeUserItem("chat",room),member={},0===jsxc.gui.roster.getItem(room).length){var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room)}$("#jsxc_dialog").length>0&&(jsxc.gui.window.open(room),jsxc.gui.dialog.close())}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage(room,"sys",$.t("This_room_has_been_closed")),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage(room,"sys",$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0}))):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage(room,"sys",$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0}))}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage(room,"sys",$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_enabled"))},171:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_logging_is_disabled"))},172:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_is_now_non-anoymous"))},173:function(room){jsxc.gui.window.postMessage(room,"sys",$.t("Room_is_now_semi-anonymous"))},201:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};roomdata.autojoin&&roomdata.config===self.CONST.ROOMCONFIG.INSTANT?self.conn.muc.createInstantRoom(room):roomdata.autojoin&&"undefined"!=typeof roomdata.config&&null!==roomdata.config?self.conn.muc.saveConfiguration(room,roomdata.config,function(){jsxc.debug("Cached room configuration saved.")},function(){jsxc.warn("Could not save cached room configuration.")}):jsxc.gui.showSelectionDialog({header:$.t("Room_creation"),msg:$.t("Do_you_want_to_change_the_default_room_configuration"),primary:{label:$.t("Default"),cb:function(){jsxc.gui.dialog.close(),self.conn.muc.createInstantRoom(room),jsxc.storage.updateUserItem("buddy",room,"config",self.CONST.ROOMCONFIG.INSTANT)}},option:{label:$.t("Change"),cb:function(){self.showRoomConfiguration(room)}}})},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_banned")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0}))},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_kicked")),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0}))},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_affiliation"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0}))},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_membersonly"))):jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0}))},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage(room,"sys",$.t("muc_removed_shutdown"))}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage(room,"in",reason,!1,!1,null,actor):jsxc.gui.window.postMessage(room,"sys",reason))},insertMember:function(room,nickname,memberdata){var self=jsxc.muc,win=jsxc.gui.window.get(room),jid=memberdata.jid,m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===jsxc.jidToBid(self.conn.jid)&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,width>scrollWidth||left>0?left=0:width-scrollWidth>left&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(jsxc.el_exists($("#"+id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.postMessage(room,"in",body,!1,!1,stamp,sender)}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage(room,"sys",$.t("changed_subject_to",{nickname:nickname,subject:subject.text()}))}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length?!0:($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_item-not-found")):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_forbidden")):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send_not-acceptable")):jsxc.gui.window.postMessage(room,"sys",$.t("message_not_send")),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;if("groupchat"===data.type){var bo=$("<div>");bo.text("+"),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_rename").before(bo),data.bookmarked&&bud.addClass("jsxc_bookmarked"),bud.off("click").click(function(){var data=jsxc.storage.getUserItem("buddy",room);data.state===self.CONST.ROOMSTATE.INIT||data.state===self.CONST.ROOMSTATE.EXITED?(self.showJoinChat(),$("#jsxc_room").val(Strophe.getNodeFromJid(data.jid)),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_dialog .jsxc_bookmark").hide()):jsxc.gui.window.open(room)}),bud.find(".jsxc_delete").click(function(){return data.bookmarked&&jsxc.xmpp.bookmarks["delete"](room),self.leave(room),!1})}},helper:{formToHTML:function(form){if(form instanceof Strophe.x.Form){var html=$("<form>");if(html.attr("data-type",form.type),html.addClass("form-horizontal"),form.title&&html.append("<h3>"+form.title+"</h3>"),form.instructions&&html.append("<p>"+form.instructions+"</p>"),form.fields.length>0){var i;for(i=0;i<form.fields.length;i++)html.append(jsxc.muc.helper.fieldToHtml(form.fields[i]))}return $("<div>").append(html).html()}},fieldToHtml:function(field){var self=field||this;field=null;var el,val,opt,i,o,j,k,txt,line,_ref2,id="Strophe.x.Field-"+self.type+"-"+self["var"],html=$("<div>");if(html.addClass("form-group"),self.label){var label=$("<label>");label.attr("for",id),label.addClass("col-sm-6 control-label"),label.text(self.label),label.appendTo(html)}switch(self.type.toLowerCase()){case"list-single":case"list-multi":for(el=$("<select>"),"list-multi"===self.type&&el.attr("multiple","multiple"),i=0;i<self.options.length;i++)if(opt=self.options[i]){for(o=$(opt.toHTML()),j=0;j<self.values;j++)k=self.values[j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var i,_results;for(_results=[],i=0;i<self.values.length;i++)line=self.values[i],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),self.values&&el.attr("value",self.values[0]),self.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",self.desc),el.addClass("form-control");break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=self.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password"),el.addClass("form-control");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly"),el.addClass("form-control");break;case"jid-single":el.attr("type","email"),el.addClass("form-control")}break;default:el=$("<input type='text'>")}el.attr("id",id),el.attr("name",self["var"]),self.required&&el.attr("required",self.required);var inner=el;return el=$("<div>"),el.addClass("col-sm-6"),el.append(inner),html.append(el),html.get(0)}}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).one("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val.msg,val.description,val.fnName,val.fnParams,key)}},add:function(msg,description,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>");if(notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num),!id){var saved=jsxc.storage.getUserItem("notices")||{};saved[nid]={msg:msg,description:description,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)}},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices");delete s[nid],jsxc.storage.setUserItem("notices",s)},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){return val.fnName===fnName?(has=!0,!1):void 0}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from",{name:data.name}),msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){
+var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return window.Notification?!0:!1},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add($.t("Notifications")+"?",$.t("Should_we_notify_you_"),"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),jsxc.notification.hasPermission()?$(document).trigger("notificationready.jsxc"):$(document).trigger("notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!0,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",loginTimeout:6e5,displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(){},carbons:{enable:!1},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html"},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage(bid,"in",d.msg,d.encrypted,d.forwarded,d.stamp):jsxc.gui.window.postMessage(bid,"sys",$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",d.encrypted,d.forwarded,d.stamp)},sendMessage:function(jid,msg,uid){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,uid)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage(bid,"sys",$.t("trying_to_start_private_conversation"));break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg_state=jsxc.otr.objects[bid].trust?"Verified":"Unverified",msg=$.t(msg_state+"_private_conversation_started");jsxc.gui.window.postMessage(bid,"sys",msg);break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage(bid,"sys",$.t("private_conversation_aborted"))):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage(bid,"sys",$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":if(jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_request_received")),$("#jsxc_dialog").length>0){jsxc.otr.objects[bid].sm.abort();break}jsxc.otr.onSmpQuestion(bid,data),jsxc.storage.setUserItem("smp_"+bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage(bid,"sys",$.t("conversation_is_now_verified")):jsxc.gui.window.postMessage(bid,"sys",$.t("authentication_failed")),jsxc.storage.removeUserItem("smp_"+bid),jsxc.gui.dialog.close();break;case"abort":jsxc.gui.window.postMessage(bid,"sys",$.t("Authentication_aborted"));break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded})}),jsxc.otr.objects[bid].on("io",function(msg,uid){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,uid)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage(bid,"sys","[OTR] "+$.t(err)),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".jsxc_submit").text($("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question"))):$("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp_"+bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){"function"==typeof OTR&&(0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid))},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv){if("function"!=typeof OTR)return jsxc.warn("OTR support disabled"),OTR={},OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2},void jsxc._onMaster();if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/lib/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(jsxc._onMaster(),worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()}},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),jsxc.otr.dsaFallback!==!1&&jsxc._onMaster()},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback?jsxc.gui.dialog.close():$.each(jsxc.storage.getUserItem("windowlist"),function(index,val){jsxc.otr.create(val)}),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&"lastActivity"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value,function(key,val){return val instanceof jQuery?void 0:val})),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&"lastActivity"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&null!==item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"lastActivity"){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),void jsxc.storage.ink("alive");if(!(jsxc.master||"alive"!==key&&"alive_busy"!==key||jsxc.triggeredFromElement))return window.clearTimeout(jsxc.to),jsxc.to=window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60)),void(jsxc.role_allocation||jsxc.onSlave());if(key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^chat"+jsxc.storage.SEP)))for(var data,el,posts=JSON.parse(e.newValue);posts.length>0;)data=posts.pop(),el=$("#"+data.uid),0===el.length?(jsxc.master&&"out"===data.direction&&jsxc.xmpp.sendMessage(bid,data.msg,data.uid),jsxc.gui.window._postMessage(bid,data)):data.received&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),n.minimize!==o.minimize&&(n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid)),jsxc.gui.window.setText(bid,n.text),void(n.unread!==o.unread&&(0===n.unread?jsxc.gui.readMsg(bid):jsxc.gui._unreadMsg(bid,n.unread)))):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(/^unreadMsg/)&&jsxc.gui.favicon&&jsxc.gui.favicon.badge(parseInt(e.newValue)||0),key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close(),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.otr.onSmpQuestion(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close(),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(!e.oldValue)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),(o.status!==n.status||o.sub!==n.sub)&&jsxc.gui.roster.reorder(bid)}if(jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"sid"===key)return void(e.newValue||jsxc.xmpp.logout());"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid))}}}},saveMessage:function(bid,direction,msg,encrypted,forwarded,stamp,sender){var chat=jsxc.storage.getUserItem("chat",bid)||[],uid=(new Date).getTime()+":msg";chat.length>jsxc.options.get("numberOfMsg")&&chat.pop();var post={direction:direction,msg:msg,uid:uid.replace(/:/,"-"),received:!1,encrypted:encrypted||!1,forwarded:forwarded||!1,stamp:stamp||(new Date).getTime(),sender:sender};return chat.unshift(post),jsxc.storage.setUserItem("chat",bid,chat),post},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],chatJids:{},init:function(){var self=jsxc.webrtc;if(self.conn=jsxc.xmpp.conn,!self.conn.jingle)return void jsxc.error("No jingle plugin found!");var manager=self.conn.jingle.manager;$(document).on("message.jsxc",self.onMessage),$(document).on("presence.jsxc",self.onPresence),$(document).on("mediaready.jingle",self.onMediaReady),$(document).on("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onCallIncoming,self)),manager.on("terminated",$.proxy(self.onCallTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("peerStreamAdded",$.proxy(self.onRemoteStreamAdded,self)),manager.on("peerStreamRemoved",$.proxy(self.onRemoteStreamRemoved,self)),manager.on("log:*",function(level,msg){jsxc.debug("[JINGLE]["+level+"]",msg)}),self.conn.caps&&$(document).on("caps.strophe",self.onCaps);var url=jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath,peerConfig=jsxc.options.get("RTCPeerConfig");"string"==typeof url&&url.length>0?self.getTurnCrendentials(url):(jsxc.storage.getUserItem("iceValidity")&&(jsxc.storage.removeUserItem("iceValidity"),peerConfig.iceServers=jsxc.options.RTCPeerConfig.iceServers,jsxc.options.set("RTCPeerConfig",peerConfig)),self.conn.jingle.setICEServers(peerConfig.iceServers))},onConnected:function(){jsxc.storage.removeUserItem("iceValidity")},onDisconnected:function(){var self=jsxc.webrtc;$(document).off("message.jsxc",self.onMessage),$(document).off("presence.jsxc",self.onPresence),$(document).off("mediaready.jingle",self.onMediaReady),$(document).off("mediafailure.jingle",self.onMediaFailure),$(document).off("caps.strophe",self.onCaps)},getTurnCrendentials:function(url){var self=jsxc.webrtc;url=url||jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath;var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return jsxc.storage.getUserItem("iceConfig")&&(jsxc.storage.removeUserItem("iceConfig"),ttl=-1),ttl>0?(self.conn.jingle.setICEServers(jsxc.options.get("RTCPeerConfig").iceServers),void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500)):void $.ajax(url,{async:!0,success:function(data){var ttl=data.ttl||3600,iceServers=data.iceServers;if(!iceServers&&data.url&&(jsxc.warn("Received RTCPeer configuration is deprecated. Use now RTCPeerConfig.url."),iceServers=[{urls:data.url}],data.username&&(iceServers[0].username=data.username),data.credential&&(iceServers[0].credential=data.credential)),iceServers&&iceServers.length>0){var url=iceServers[0].url&&iceServers[0].url.length>0,urls=iceServers[0].urls&&iceServers[0].urls.length>0;if(urls||url){jsxc.debug("ice servers received");var peerConfig=jsxc.options.get("RTCPeerConfig");peerConfig.iceServers=iceServers,jsxc.options.set("RTCPeerConfig",peerConfig),self.conn.jingle.setICEServers(iceServers),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*ttl)}else jsxc.warn("No valid url found in first ice object.")}},dataType:"json"})},getCapableRes:function(jid){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=jsxc.storage.getUserItem("res",bid)||[],available=[];return $.each(res,function(r){self.conn.caps.hasFeatureByJid(bid+"/"+r,self.reqVideoFeatures)&&available.push(r)}),available},onAddRosterItem:function(event,bid,data,el){var self=jsxc.webrtc;if(!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.onAddRosterItem(null,bid,data,el)});var videoIcon=$('<div class="jsxc_video jsxc_disabled" title="'+$.t("Start_video_call")+'"></div>');videoIcon.click(function(){return self.startCall(data.jid),!1}),el.find(".jsxc_options.jsxc_left").append(videoIcon),el.on("extra.jsxc",function(){self.updateIcon(bid)})},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("connectionReady.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_transfer:eq(1)").after(div),self.updateIcon(jsxc.jidToBid(win.data("jid")))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),ls=jsxc.storage.getUserItem("buddy",bid);if("string"!=typeof jid){if(!ls||"string"!=typeof ls.jid)return void jsxc.debug("[webrtc] Could not update icon, because could not find jid for "+bid);jid=ls.jid}var el=win.find(".jsxc_video").add(jsxc.gui.roster.getItem(bid).find(".jsxc_video")),capableRes=self.getCapableRes(jid),targetRes=Strophe.getResourceFromJid(jid);null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){return capableRes.indexOf(val)>-1?(targetRes=val,!1):void 0}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")))}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid,status,presence){var self=jsxc.webrtc;0===$(presence).find('c[xmlns="'+Strophe.NS.CAPS+'"]').length&&(jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid)))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;jsxc.gui.roster.loaded?self.updateIcon(jsxc.jidToBid(jid)):$(document).on("cloaded.roster.jsxc",function(){self.updateIcon(jsxc.jidToBid(jid))})},onMediaReady:function(event,stream){jsxc.debug("media ready");var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var i,dialog=jsxc.gui.showVideoWindow(self.last_caller),audioTracks=stream.getAudioTracks(),videoTracks=stream.getVideoTracks();for(i=0;i<audioTracks.length;i++)self.setStatus(audioTracks.length>0?$.t("Use_local_audio_device"):$.t("No_local_audio_device")),jsxc.debug('using audio device "'+audioTracks[i].label+'"');for(i=0;i<videoTracks.length;i++)self.setStatus(videoTracks.length>0?$.t("Use_local_video_device"):$.t("No_local_video_device")),jsxc.debug('using video device "'+videoTracks[i].label+'"'),dialog.find(".jsxc_localvideo").show();$(document).one("cleanup.dialog.jsxc",$.proxy(self.hangUp,self)),$(document).trigger("finish.mediaready.jsxc")},onMediaFailure:function(ev,err){var self=jsxc.webrtc;err=err||{name:"Undefined"},self.setStatus("media failure"),jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller),"sys",$.t("Media_failure")+": "+$.t(err.name)+" ("+err.name+")."),jsxc.debug("media failure: "+err.name)},onCallIncoming:function(session){jsxc.debug("incoming call from "+session.peerID);var self=this,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),jsxc.gui.window.postMessage(bid,"sys",$.t("Incoming_call")),jsxc.notification.notify($.t("Incoming_call"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void self.reqUserMedia();var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){$(document).trigger("accept.call.jsxc"),jsxc.switchEvents({"mediaready.jingle":function(event,stream){self.setStatus("Accept call"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onCallTerminated:function(session,reason){this.setStatus("call terminated "+session.peer+(reason?reason.condition:""));var bid=jsxc.jidToBid(session.peer);this.localStream&&this.localStream.stop(),$(".jsxc_videoContainer").length&&($(".jsxc_remotevideo")[0].src="",$(".jsxc_localvideo")[0].src=""),this.conn.jingle.localStream=null,this.localStream=null,this.remoteStream=null;var win=$("#jsxc_dialog .jsxc_chatarea > ul > li");$("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),$(document).off("cleanup.dialog.jsxc"),$(document).off("error.jingle"),jsxc.gui.dialog.close(),jsxc.gui.window.postMessage(bid,"sys",$.t("Call_terminated")+(reason?": "+$.t("jingle_reason_"+reason.condition):"")+".")},onCallRinging:function(){this.setStatus("ringing...",0)},onRemoteStreamAdded:function(session,stream){this.setStatus("Remote stream for session "+session.sid+" added."),this.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;this.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),this.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(this.attachMediaStream($("#jsxc_dialog .jsxc_remotevideo"),stream),$("#jsxc_dialog .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},attachMediaStream:function(element,stream){var self=jsxc.webrtc;self.conn.jingle.RTC.attachMediaStream(element instanceof jQuery?element.get(0):element,stream)},onRemoteStreamRemoved:function(session){this.setStatus("Remote stream for "+session.jid+" removed.")},onIceConnectionStateChanged:function(session,state){var self=jsxc.webrtc;jsxc.debug("connection state for "+session.sid,state),"connected"===state?($("#jsxc_dialog .jsxc_deviceAvailable").show(),$("#jsxc_dialog .bubblingG").hide()):"failed"===state?(jsxc.gui.window.postMessage(jsxc.jidToBid(session.peerID),"sys",$.t("ICE_connection_failure")),$(document).off("cleanup.dialog.jsxc"),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"finish.mediaready.jsxc":function(){self.setStatus("Initiate call"),jsxc.gui.window.postMessage(jsxc.jidToBid(jid),"sys",$.t("Call_started")),$(document).one("error.jingle",function(e,sid,error){"offer"===error.source&&($(document).off("cleanup.dialog.jsxc"),setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500))});var session=self.conn.jingle.initiate(jid);session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self))},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},hangUp:function(reason,text){$(document).off("cleanup.dialog.jsxc"),jsxc.webrtc.conn.jingle.terminate(null,reason,text),$(document).trigger("callterminated.jingle")},reqUserMedia:function(um){return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),this.setStatus("please allow access to microphone and camera"),void("undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(function(sourceInfo){var availableDevices=sourceInfo.map(function(el){return el.kind});um=um.filter(function(el){return-1!==availableDevices.indexOf(el)}),jsxc.webrtc.getUserMedia(um)}):jsxc.webrtc.getUserMedia(um)))},getUserMedia:function(um){var self=jsxc.webrtc,constraints={};um.indexOf("video")>-1&&(constraints.video=!0),um.indexOf("audio")>-1&&(constraints.audio=!0);try{self.conn.jingle.RTC.getUserMedia(constraints,function(stream){
+jsxc.debug("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){jsxc.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){jsxc.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()}},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;return $(document).one("complete.dialog.jsxc",function(){$("#jsxc_dialog .jsxc_localvideo")[0].muted=!0,$("#jsxc_dialog .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_dialog .jsxc_remotevideo"),lv=$("#jsxc_dialog .jsxc_localvideo");lv.draggable({containment:"parent"}),self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_dialog").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_dialog .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(self.attachMediaStream(rv,self.remoteStream),$("#jsxc_dialog .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var toggleMulti=function(elem,open){$("#jsxc_dialog .jsxc_multi > div").not(elem).slideUp();var opt={complete:jsxc.gui.dialog.resize};open?elem.slideDown(opt):elem.slideToggle(opt)},win=jsxc.gui.window.open(jsxc.jidToBid(jid));win.find(".slimScrollDiv").resizable("disable"),win.find(".jsxc_textarea").slimScroll({height:413}),win.find(".jsxc_emoticons").css("top","419px"),$("#jsxc_dialog .jsxc_chatarea ul").append(win.detach()),$("#jsxc_dialog .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_dialog .jsxc_snapshot").click(function(){jsxc.webrtc.snapshot(rv),toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"),!0)}),$("#jsxc_dialog .jsxc_snapshots").click(function(){toggleMulti($("#jsxc_dialog .jsxc_snapshotbar"))}),$("#jsxc_dialog .jsxc_showchat").click(function(){var chatarea=$("#jsxc_dialog .jsxc_chatarea");chatarea.is(":hidden")?(chatarea.show(),$("#jsxc_dialog .jsxc_webrtc").width("900"),jsxc.gui.dialog.resize({width:"920px"})):(chatarea.hide(),$("#jsxc_dialog .jsxc_webrtc").width("650"),jsxc.gui.dialog.resize({width:"660px"}))}),$("#jsxc_dialog .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_dialog .jsxc_videoContainer").fullscreen())}),$("#jsxc_dialog .jsxc_volume").change(function(){rv[0].volume=$(this).val()}),$("#jsxc_dialog .jsxc_volume").dblclick(function(){$(this).val(.5)})}),jsxc.gui.dialog.close(),jsxc.gui.dialog.open(jsxc.gui.template.get("videoWindow"),{noClose:!0})},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){$(document).on("add.roster.jsxc",jsxc.webrtc.onAddRosterItem),$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init),$(document).on("disconnected.jsxc",jsxc.webrtc.onDisconnected),$(document).on("connected.jsxc",jsxc.webrtc.onConnected)}),jsxc.xmpp.bookmarks={},jsxc.xmpp.bookmarks.remote=function(){return jsxc.xmpp.conn.caps&&jsxc.xmpp.hasFeatureByJid(jsxc.xmpp.conn.domain,Strophe.NS.PUBSUB+"#publish")},jsxc.xmpp.bookmarks.load=function(){var caps=jsxc.xmpp.conn.caps,ver=caps._jidVerIndex[jsxc.xmpp.conn.domain];ver&&caps._knownCapabilities[ver]||$(document).on("caps.strophe",function(ev,from){from===jsxc.xmpp.conn.domain&&(jsxc.xmpp.bookmarks.load(),$(document).off(ev))}),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.loadFromRemote():jsxc.xmpp.bookmarks.loadFromLocal()},jsxc.xmpp.bookmarks.loadFromLocal=function(){jsxc.debug("Load bookmarks from local storage");var bookmarks=jsxc.storage.getUserItem("bookmarks")||[],bl=jsxc.storage.getUserItem("buddylist")||[];$.each(bookmarks,function(){var room=this,roomdata=jsxc.storage.getUserItem("buddy",room)||{};bl.push(room),jsxc.gui.roster.add(room),roomdata.autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,roomdata.nickname))}),jsxc.storage.setUserItem("buddylist",bl)},jsxc.xmpp.bookmarks.loadFromRemote=function(){jsxc.debug("Load bookmarks from pubsub");var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.get(function(stanza){var bl=jsxc.storage.getUserItem("buddylist");$(stanza).find("conference").each(function(){var conference=$(this),room=conference.attr("jid"),roomName=conference.attr("name")||room,autojoin=conference.attr("autojoin")||!1,nickname=conference.find("nick").text();nickname=nickname.length>0?nickname:Strophe.getNodeFromJid(jsxc.xmpp.conn.jid),"true"===autojoin?autojoin=!0:"false"===autojoin&&(autojoin=!1);var data=jsxc.storage.getUserItem("buddy",room)||{};data=$.extend(data,{jid:room,name:roomName,sub:"both",status:0,type:"groupchat",state:jsxc.muc.CONST.ROOMSTATE.INIT,subject:null,bookmarked:!0,autojoin:autojoin,nickname:nickname}),jsxc.storage.setUserItem("buddy",room,data),bl.push(room),jsxc.gui.roster.add(room),autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,nickname))}),jsxc.storage.setUserItem("buddylist",bl)},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);"item-not-found"===err.reasons[0]?(jsxc.debug("create bookmark node"),bookmarks.createBookmarksNode()):jsxc.debug("[XMPP] Could not create bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.parseErr=function(stanza){var error=$(stanza).find("error"),type=error.attr("type"),reasons=error.children().map(function(){return $(this).prop("tagName")});return{type:type,reasons:reasons}},jsxc.xmpp.bookmarks["delete"]=function(room,soft){soft||jsxc.gui.roster.purge(room),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.deleteFromRemote(room,soft):jsxc.xmpp.bookmarks.deleteFromLocal(room,soft)},jsxc.xmpp.bookmarks.deleteFromRemote=function(room,soft){var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks["delete"](room,function(){jsxc.debug("Bookmark deleted "+room),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);jsxc.debug("[XMPP] Could not delete bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.deleteFromLocal=function(room,soft){var bookmarks=jsxc.storage.getUserItem("bookmarks"),index=bookmarks.indexOf(room);index>-1&&bookmarks.splice(index,1),jsxc.storage.setUserItem("bookmarks",bookmarks),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},jsxc.xmpp.bookmarks.add=function(room,alias,nick,autojoin){jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.addToRemote(room,alias,nick,autojoin):jsxc.xmpp.bookmarks.addToLocal(room,alias,nick,autojoin)},jsxc.xmpp.bookmarks.addToRemote=function(room,alias,nick,autojoin){var bookmarks=jsxc.xmpp.conn.bookmarks,success=function(){jsxc.debug("New bookmark created",room),jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick)},error=function(){jsxc.warn("Could not create bookmark",room)};bookmarks.add(room,alias,nick,autojoin,success,error)},jsxc.xmpp.bookmarks.addToLocal=function(room,alias,nick,autojoin){jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick);var bookmarks=jsxc.storage.getUserItem("bookmarks")||[];bookmarks.indexOf(room)<0&&(bookmarks.push(room),jsxc.storage.setUserItem("bookmarks",bookmarks))},jsxc.xmpp.bookmarks.showDialog=function(room){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("bookmarkDialog")),data=jsxc.storage.getUserItem("buddy",room);$("#jsxc_room").val(room),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_nickname").prop("disabled",!1),$("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_nickname").prop("disabled",!0),$("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_bookmark").change(),dialog.find("form").submit(function(ev){ev.preventDefault();var bookmarked=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked"),nickname=$("#jsxc_nickname").val();return bookmarked?jsxc.xmpp.bookmarks.add(room,data.name,nickname,autojoin):data.bookmarked&&jsxc.xmpp.bookmarks["delete"](room,!0),jsxc.gui.dialog.close(),!1})},jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b>{{version}}\n <br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a>\n</p>\n<p>\n <i>Released under the MIT license</i>\n</p>\n<p>\n Real-time chat app for {{app_name}} and more.\n <br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.\n</p>\n<p>\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>, <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>\n</p>\n<p class="jsxc_libraries">\n <b>Libraries: </b>\n <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT)\n</p>\n\n<button class="btn btn-default pull-right jsxc_debuglog">Show debug log</button>\n',jsxc.gui.template.alert='<h3 data-i18n="Alert"></h3>\n<div class="alert alert-info">\n <strong data-i18n="Info"></strong> {{msg}}\n</div>\n',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>\n',jsxc.gui.template.approveDialog='<h3 data-i18n="Subscription_request"></h3>\n<p>\n <span data-i18n="You_have_a_request_from"></span><b class="jsxc_their_jid"></b>.\n</p>\n\n<button class="btn btn-primary jsxc_approve pull-right" data-i18n="Approve"></button>\n<button class="btn btn-default jsxc_deny pull-right" data-i18n="Deny"></button>\n',jsxc.gui.template.authFailDialog='<h3 data-i18n="Login_failed"></h3>\n<p data-i18n="Sorry_we_cant_authentikate_"></p>\n\n<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n',jsxc.gui.template.authenticationDialog='<h3>Verification</h3>\n<p data-i18n="Authenticating_a_buddy_helps_"></p>\n<div>\n <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy"></p>\n\n <div class="btn-group" role="group">\n <button class="btn btn-default" data-i18n="Manual"></button>\n <button class="btn btn-default" data-i18n="Question"></button>\n <button class="btn btn-default" data-i18n="Secret"></button>\n </div>\n</div>\n<hr />\n<div style="display: none">\n <p data-i18n="To_verify_the_fingerprint_" class=".jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{my_priv_fingerprint}}</span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{bid_priv_fingerprint}}</span>\n </p>\n <div class="jsxc_right">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compared"></button>\n </div>\n</div>\n<div style="display: none" class="form-horizontal">\n <p data-i18n="To_authenticate_using_a_question_" class=".jsxc_explanation"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_quest" data-i18n="Question"></label>\n <div class="col-sm-8">\n <input type="text" name="quest" id="jsxc_quest" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret2" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret2" id="jsxc_secret2" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Ask"></button>\n </div>\n </div>\n</div>\n<div style="display: none" class="form-horizontal">\n <p class=".jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret" id="jsxc_secret" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compare"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.bookmarkDialog='<h3 data-i18n="Edit_bookmark"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" id="jsxc_room" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" disabled="disabled" required="required" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button type="button" class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button type="submit" class="btn btn-primary jsxc_submit" data-i18n="Save"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.chatWindow='<li class="jsxc_min jsxc_windowItem">\n <div class="jsxc_window">\n <div class="jsxc_bar">\n <div class="jsxc_avatar">☺</div>\n <div class="jsxc_tools">\n <div class="jsxc_settings">\n <ul>\n <li class="jsxc_fingerprints jsxc_otr jsxc_disabled" data-i18n="Fingerprints"></li>\n <li class="jsxc_verification" data-i18n="Authentication"></li>\n <li class="jsxc_transfer jsxc_otr jsxc_disabled" data-i18n="start_private"></li>\n <li class="jsxc_clear" data-i18n="clear_history"></li>\n </ul>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_unread" />\n <div class="jsxc_name" />\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_gradient" />\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <ul />\n </div>\n <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message" />\n </div>\n </div>\n</li>\n',jsxc.gui.template.confirmDialog='<p>{{msg}}</p>\n\n<button class="btn btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.contactDialog='<h3 data-i18n="Add_buddy"></h3>\n<p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" list="jsxc_userlist" pattern="^[^\\x22&\'\\\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" />\n </div>\n </div>\n <datalist id="jsxc_userlist"></datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_alias" data-i18n="Alias"></label>\n <div class="col-sm-8">\n <input type="text" name="alias" id="jsxc_alias" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" type="button" data-i18n="Close"></button>\n <button class="btn btn-primary" type="submit" data-i18n="Add"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.fingerprintsDialog='<div>\n <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{my_priv_fingerprint}}</span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span style="text-transform: uppercase">{{bid_priv_fingerprint}}</span>\n </p>\n</div>\n',jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3>\n<p>\n <span data-i18n="Do_you_want_to_accept_the_call_from"></span> {{bid_name}}?\n</p>\n\n<button class="btn btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="btn btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n',jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3>\n<p class=".jsxc_explanation" data-i18n="muc_explanation"></p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_server" data-i18n="Server"></label>\n <div class="col-sm-8">\n <input type="text" name="server" id="jsxc_server" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" name="room" id="jsxc_room" class="form-control" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" />\n </div>\n </div>\n <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p>\n <datalist id="jsxc_roomlist">\n <p>\n <label for="jsxc_roomlist_select"></label>\n <select id="jsxc_roomlist_select">\n <option></option>\n <option>workaround</option>\n </select>\n </p>\n </datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="text" name="password" id="jsxc_password" class="form-control" />\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="jsxc_msg"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <span class="jsxc_warning"></span>\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_continue" data-i18n="Continue"></button>\n <button class="btn btn-success jsxc_join" data-i18n="Join"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.loginBox='<h3 data-i18n="Login"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" required="required" value="{{my_node}}" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="password" name="password" required="required" class="form-control" id="jsxc_password" />\n </div>\n </div>\n <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-9">\n <button type="reset" class="btn btn-default jsxc_close" name="clear" data-i18n="Cancel" />\n <button type="submit" class="btn btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect" />\n </div>\n </div>\n</form>\n',jsxc.gui.template.pleaseAccept='<p data-i18n="Please_accept_"></p>\n',jsxc.gui.template.removeDialog='<h3 data-i18n="Remove_buddy"></h3>\n<p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p>\n\n<button class="btn btn-primary jsxc_remove pull-right" data-i18n="Remove"></button>\n<button class="btn btn-default jsxc_cancel jsxc_close pull-right" data-i18n="Cancel"></button>\n',jsxc.gui.template.roster='<div id="jsxc_roster">\n <ul id="jsxc_buddylist"></ul>\n <div class="jsxc_bottom jsxc_presence" data-bid="own">\n <div id="jsxc_avatar">\n <div class="jsxc_avatar">☺</div>\n </div>\n <div id="jsxc_menu">\n <span></span>\n <ul>\n <li class="jsxc_settings" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_addBuddy" data-i18n="Add_buddy"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_onlineHelp" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <ul></ul>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Online"></span>\n <ul>\n <li data-pres="online" class="jsxc_online" data-i18n="Online"></li>\n <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li>\n <li data-pres="away" class="jsxc_away" data-i18n="Away"></li>\n <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li>\n <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li>\n <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li>\n <div class="jsxc_avatar">☺</div>\n <div class="jsxc_control"></div>\n <div class="jsxc_unread" />\n <div class="jsxc_name" />\n <div class="jsxc_options jsxc_right">\n <div class="jsxc_rename" data-i18n="[title]rename_buddy">✎</div>\n <div class="jsxc_delete" data-i18n="[title]delete_buddy">✘</div>\n </div>\n <div class="jsxc_options jsxc_left">\n <div class="jsxc_chaticon" data-i18n="[title]send_message" />\n <div class="jsxc_vcardicon" data-i18n="[title]get_info">i</div>\n </div>\n</li>\n',jsxc.gui.template.selectionDialog='<h3></h3>\n<p></p>\n\n<button class="btn btn-primary pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.settings='<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <legend data-i18n="Login_options"></legend>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-url" data-i18n="BOSH_url"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-url" class="form-control" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-username" data-i18n="Username"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-username" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-domain" data-i18n="Domain"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-domain" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-resource" data-i18n="Resource"></label>\n <div class="col-sm-6">\n <input class="form-control" type="text" id="xmpp-resource" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <legend data-i18n="On_login"></legend>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="loginForm-enable"><span data-i18n="On_login"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <legend data-i18n="Priority"></legend>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-online" data-i18n="Online"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-online" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-chat" data-i18n="Chatty"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-chat" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-away" data-i18n="Away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-away" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-xa" data-i18n="Extended_away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-xa" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-dnd" data-i18n="dnd"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-dnd" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <legend data-i18n="Carbon_copy"></legend>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="carbons-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n',jsxc.gui.template.vCard='<h3>\n <span data-i18n="Info_about"></span> <span>{{bid_name}}</span>\n</h3>\n<ul class="jsxc_vCard"></ul>\n<p>\n <img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...\n</p>\n',jsxc.gui.template.videoWindow='<div class="jsxc_webrtc">\n <div class="jsxc_chatarea">\n <ul></ul>\n </div>\n <div class="jsxc_videoContainer">\n <video class="jsxc_localvideo" autoplay></video>\n <video class="jsxc_remotevideo" autoplay></video>\n <div class="jsxc_status"></div>\n <div class="bubblingG">\n <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span>\n </div>\n <div class="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n </div>\n <div class="jsxc_controlbar">\n <button class="btn btn-default jsxc_showchat" data-i18n="chat"></button>\n <button class="btn btn-primary jsxc_hangUp" data-i18n="hang_up"></button>\n <input type="range" class="jsxc_volume" min="0.0" max="1.0" step="0.05" value="0.5" style="width: 150px" />\n <div class="btn-group">\n <button class="btn btn-default jsxc_snapshot" data-i18n="snapshot"></button>\n <button class="btn btn-default jsxc_snapshots">&#9660;</button>\n </div>\n <!-- <button type="button" class="jsxc_mute_local" data-i18n="mute_my_audio"></button>\n <button type="button" class="jsxc_pause_local" data-i18n="pause_my_video"></button> -->\n <button class="btn btn-default jsxc_fullscreen" data-i18n="fullscreen"></button>\n <button class="btn btn-default jsxc_info" data-i18n="Info"></button>\n\n </div>\n <div class="jsxc_multi">\n <div class="jsxc_snapshotbar">\n <p>No pictures yet!</p>\n </div>\n <!--<div class="jsxc_chatarea">\n <ul></ul>\n </div>-->\n <div class="jsxc_infobar"></div>\n </div>\n</div>\n',
+jsxc.gui.template.waitAlert='<h3>{{msg}}</h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" style="width: 100%" data-i18n="Please_wait">\n </div>\n</div>\n',jsxc.gui.template.windowList='<div id="jsxc_windowList">\n <ul></ul>\n</div>\n<div id="jsxc_windowListSB">\n <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div>\n <div class="jsxc_scrollRight jsxc_disabled">&gt;</div>\n</div>\n'}(jQuery);
//# sourceMappingURL=jsxc.min.js.map \ No newline at end of file
diff --git a/build/js/jsxc/jsxc.min.js.map b/build/js/jsxc/jsxc.min.js.map
index a34ef5b..90f4e66 100644
--- a/build/js/jsxc/jsxc.min.js.map
+++ b/build/js/jsxc/jsxc.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"jsxc.min.js","sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepalive","restore","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","getFormattedTime","unixtime","msgDate","Date","parseInt","date","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","time","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","language","substr","defaultLang","i18n","lng","fallbackLng","resStore","I18next","useLocalStorage","localStorageExpirationTime","otr","window","addEventListener","onStorage","lastActivity","loginTimeout","document","on","logoutElement","length","logout","this","xmpp","off","one","isLoginForm","loginForm","attachIfFound","jidToBid","gui","checkMaster","onMaster","removeItem","displayRosterMinimized","setUserItem","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","prepareLogin","settings","enabled","enable","onlogin","triggered","login","submitLoginForm","el_exists","jid","pass","username","password","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","split","old","onSlave","restoreRoster","restoreWindows","trigger","setItem","startKeepAlive","createDSA","_onMaster","create","noti","notification","hasSupport","hasPermission","prepareRequest","updateAvatar","setTimeout","ink","setInterval","keepAlive","timeout","keepBusyAlive","clearTimeout","clearInterval","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","buddies","add","loaded","empty","windows","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","apply","arguments","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","conn","authenticated","sid","rid","url","connected","attached","disconnected","onRidChange","onConnfail","onAuthFail","addNamespace","Connection","stropheGetUniqueId","getUniqueId","suffix","uid","_uniqueId","xmlInput","xmlOutput","callback","status","condition","Object","getOwnPropertyNames","Status","CONNECTING","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","caps","node","attach","_addSysHandler","stanza","from","c","querySelector","ver","getAttribute","_jidNodeIndex","parse","localStorage","_jidVerIndex","CAPS","connect","complete","removeUserItem","remove","numOtr","keys","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","nomJid","getResourceFromJid","_proto","removeUserElement","onConnected","connectionReady","removeClass","resume","dialog","close","addHandler","onRosterChanged","onMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","ev","_knownCapabilities","_requestCapabilities","sendPres","iq","$iq","type","xmlns","sendIQ","onRoster","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","location","attr","showAuthFail","name","sub","saveBuddy","res","bookmarks","load","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","approve","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","body","mid","delay","stamp","direction","postMessage","request","chat","saveMessage","win","updateUserItem","$msg","id","receiveMsg","resFriendReq","addBuddy","alias","removeBuddy","subscription","received","receivedId","addClass","sendMessage","sendMsg","_sendMessage","isBar","xmlMsg","loadVcard","error_cb","vcard","result","state","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","emotions","favicon","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","muc","showJoinChat","append","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","trust","info","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","vCard","img","width","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","is","slideToggle","toggleClass","mouseleave","mouseenter","showLoginBox","alert","preventDefault","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","stopPropagation","getUsers","list","displayname","option","appendTo","getDomainFromJid","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","screen","height","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","saveSettinsPermanent","switchClass","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","sender","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","changePresence","external","updatePresence","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","hasClass","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","ready","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","innerWidth","bud","insert","rename","expandClick","dblclick","scrollTo","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","roster_width","roster_right","parseFloat","animate","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","toggleTransfer","clear","getSelection","resizable","handles","minHeight","minWidth","event","ui","size","position","top","inArray","ins","restoreChat","highlight","outerWidth","left","parents","_show","slideDown","scrollDown","_hide","effect","scrollHeight","encrypted","html_msg","MSGSTATE_FINISHED","post","_postMessage","protocol","p1","esc","msgDiv","msgTsDiv","avatarDiv","prependTo","pop","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","root","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","roomNames","discovered","mucFeature","MUC","mucIdentity","p","error_handler","room","roomIndex","splice","rooms","listRooms","rjid","rnode","rname","change","discoReceived","roomName","subject","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","own","onExited","roomdata","destroy","handler_cb","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","role","onStatus",110,170,171,172,173,201,"createInstantRoom",301,"postReason",307,321,322,332,"actor","reason","memberdata","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","description","nid","now","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","permission","checkPermission","func","Audio","play","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","online","away","xa","dnd","numberOfMsg","muteNotification","turnCredentialsPath","RTCPeerConfig","ttl","iceServers","urls","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","sm","abort","onSmpQuestion","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","savekey","packPublic","ake","otr_version","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","jQuery","prefix","variable","Number","removeElement","grep","re","newValue","oldValue","n","posts","transferReq","unshift","webrtc","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMediaReady","onMediaFailure","proxy","onCallIncoming","onCallTerminated","onCallRinging","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","credential","dataType","getCapableRes","available","onAddRosterItem","videoIcon","startCall","updateIcon","capableRes","targetRes","setStatus","margin-left","display","stop","stream","showVideoWindow","audioTracks","getAudioTracks","videoTracks","getVideoTracks","hangUp","session","peerID","onIceConnectionStateChanged","ring","reqUserMedia","mediaready.jingle","addStream","accept","mediafailure.jingle","decline","peer","isVideoDevice","isAudioDevice","attachMediaStream","end","um","finish.mediaready.jsxc","initiate","terminate","MediaStreamTrack","getSources","sourceInfo","availableDevices","map","kind","filter","getUserMedia","constraints","video","snapshot","canvas","ctx","getContext","drawImage","toDataURL","target","muted","volume","rv","lv","draggable","containment","w_dialog","w_remote","scale","new_h","new_w","vc","toggleMulti","elem","not","chatarea","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"jsxc.min.js","sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepalive","restore","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","getFormattedTime","unixtime","msgDate","Date","parseInt","date","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","time","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","language","substr","defaultLang","i18n","lng","fallbackLng","resStore","I18next","useLocalStorage","localStorageExpirationTime","otr","window","addEventListener","onStorage","lastActivity","loginTimeout","document","on","logoutElement","length","logout","this","xmpp","off","one","isLoginForm","loginForm","attachIfFound","jidToBid","gui","checkMaster","onMaster","removeItem","displayRosterMinimized","setUserItem","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","prepareLogin","settings","enabled","enable","onlogin","triggered","login","submitLoginForm","el_exists","jid","pass","username","password","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","split","old","onSlave","restoreRoster","restoreWindows","trigger","setItem","startKeepAlive","createDSA","_onMaster","create","noti","notification","hasSupport","hasPermission","prepareRequest","updateAvatar","setTimeout","ink","setInterval","keepAlive","timeout","keepBusyAlive","clearTimeout","clearInterval","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","buddies","add","loaded","empty","windows","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","apply","arguments","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","conn","authenticated","sid","rid","url","connected","attached","disconnected","onRidChange","onConnfail","onAuthFail","addNamespace","Connection","stropheGetUniqueId","getUniqueId","suffix","uid","_uniqueId","xmlInput","xmlOutput","callback","status","condition","Object","getOwnPropertyNames","Status","CONNECTING","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","caps","node","attach","_addSysHandler","stanza","from","c","querySelector","ver","getAttribute","_jidNodeIndex","parse","localStorage","_jidVerIndex","CAPS","connect","complete","removeUserItem","remove","numOtr","keys","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","nomJid","getResourceFromJid","_proto","removeUserElement","onConnected","connectionReady","removeClass","resume","dialog","close","addHandler","onRosterChanged","onMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","ev","_knownCapabilities","_requestCapabilities","sendPres","iq","$iq","type","xmlns","sendIQ","onRoster","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","location","attr","showAuthFail","name","sub","saveBuddy","res","bookmarks","load","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","approve","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","body","mid","delay","stamp","direction","postMessage","request","chat","saveMessage","win","updateUserItem","$msg","id","receiveMsg","resFriendReq","addBuddy","alias","removeBuddy","subscription","received","receivedId","addClass","sendMessage","sendMsg","_sendMessage","isBar","xmlMsg","loadVcard","error_cb","vcard","result","state","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","emotions","favicon","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","muc","showJoinChat","append","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","trust","info","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","vCard","img","width","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","is","slideToggle","toggleClass","mouseleave","mouseenter","showLoginBox","alert","preventDefault","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","stopPropagation","getUsers","list","displayname","option","appendTo","getDomainFromJid","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","screen","height","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","saveSettinsPermanent","switchClass","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","sender","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","changePresence","external","updatePresence","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","hasClass","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","ready","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","innerWidth","bud","insert","rename","expandClick","dblclick","scrollTo","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","roster_width","roster_right","parseFloat","animate","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","toggleTransfer","clear","getSelection","resizable","handles","minHeight","minWidth","event","ui","size","position","top","inArray","ins","restoreChat","highlight","outerWidth","left","parents","_show","slideDown","scrollDown","_hide","effect","scrollHeight","encrypted","html_msg","MSGSTATE_FINISHED","post","_postMessage","protocol","p1","esc","msgDiv","msgTsDiv","avatarDiv","prependTo","pop","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","root","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","roomNames","discovered","mucFeature","MUC","mucIdentity","p","error_handler","room","roomIndex","splice","rooms","listRooms","rjid","rnode","rname","change","discoReceived","roomName","subject","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","own","onExited","roomdata","destroy","handler_cb","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","role","onStatus",110,170,171,172,173,201,"createInstantRoom",301,"postReason",307,321,322,332,"actor","reason","memberdata","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","description","nid","now","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","permission","checkPermission","func","Audio","play","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","online","away","xa","dnd","numberOfMsg","muteNotification","turnCredentialsPath","RTCPeerConfig","ttl","iceServers","urls","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","sm","abort","onSmpQuestion","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","savekey","packPublic","ake","otr_version","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","jQuery","prefix","variable","Number","removeElement","grep","re","newValue","oldValue","n","posts","transferReq","unshift","webrtc","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMediaReady","onMediaFailure","proxy","onCallIncoming","onCallTerminated","onCallRinging","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","credential","dataType","getCapableRes","available","onAddRosterItem","videoIcon","startCall","updateIcon","capableRes","targetRes","setStatus","margin-left","display","stop","stream","showVideoWindow","audioTracks","getAudioTracks","videoTracks","getVideoTracks","hangUp","session","peerID","onIceConnectionStateChanged","ring","reqUserMedia","mediaready.jingle","addStream","accept","mediafailure.jingle","decline","peer","isVideoDevice","isAudioDevice","attachMediaStream","end","um","finish.mediaready.jsxc","initiate","terminate","MediaStreamTrack","getSources","sourceInfo","availableDevices","map","kind","filter","getUserMedia","constraints","video","snapshot","canvas","ctx","getContext","drawImage","toDataURL","target","muted","volume","rv","lv","draggable","containment","w_dialog","w_remote","scale","new_h","new_w","vc","toggleMulti","elem","not","chatarea","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal"],"mappings":"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"} \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.js b/build/js/jsxc/lib/jsxc.dep.js
index 3bf0141..754e993 100644
--- a/build/js/jsxc/lib/jsxc.dep.js
+++ b/build/js/jsxc/lib/jsxc.dep.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.1.4 - 2015-09-10
+ * jsxc v2.1.5 - 2015-11-17
*
* This file concatenates all dependencies of jsxc.
*
diff --git a/build/js/jsxc/lib/jsxc.dep.min.js b/build/js/jsxc/lib/jsxc.dep.min.js
index db9ac6b..0acc04d 100644
--- a/build/js/jsxc/lib/jsxc.dep.min.js
+++ b/build/js/jsxc/lib/jsxc.dep.min.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v2.1.4 - 2015-09-10
+ * jsxc v2.1.5 - 2015-11-17
*
* This file concatenates all dependencies of jsxc.
*
@@ -19,14 +19,14 @@
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for details.
*/
-function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),8*s.length))}function str_sha1(s){return binb2str(core_sha1(str2binb(s),8*s.length))}function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data))}function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data))}function core_sha1(x,len){x[len>>5]|=128<<24-len%32,x[(len+64>>9<<4)+15]=len;var i,j,t,olda,oldb,oldc,oldd,olde,w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;for(i=0;i<x.length;i+=16){for(olda=a,oldb=b,oldc=c,oldd=d,olde=e,j=0;80>j;j++)w[j]=16>j?x[i+j]:rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j))),e=d,d=c,c=rol(b,30),b=a,a=t;a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd),e=safe_add(e,olde)}return[a,b,c,d,e]}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function core_hmac_sha1(key,data){var bkey=str2binb(key);bkey.length>16&&(bkey=core_sha1(bkey,8*key.length));for(var ipad=new Array(16),opad=new Array(16),i=0;16>i;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=core_sha1(ipad.concat(str2binb(data)),512+8*data.length);return core_sha1(opad.concat(hash),672)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function rol(num,cnt){return num<<cnt|num>>>32-cnt}function str2binb(str){for(var bin=[],mask=255,i=0;i<8*str.length;i+=8)bin[i>>5]|=(str.charCodeAt(i/8)&mask)<<24-i%32;return bin}function binb2str(bin){for(var str="",mask=255,i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>24-i%32&mask);return str}function binb2b64(binarray){for(var triplet,j,tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(triplet=(binarray[i>>2]>>8*(3-i%4)&255)<<16|(binarray[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|binarray[i+2>>2]>>8*(3-(i+2)%4)&255,j=0;4>j;j++)str+=8*i+6*j>32*binarray.length?"=":tab.charAt(triplet>>6*(3-j)&63);return str}var Base64=function(){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",obj={encode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;do chr1=input.charCodeAt(i++),chr2=input.charCodeAt(i++),chr3=input.charCodeAt(i++),enc1=chr1>>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);while(i<input.length);return output},decode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do enc1=keyStr.indexOf(input.charAt(i++)),enc2=keyStr.indexOf(input.charAt(i++)),enc3=keyStr.indexOf(input.charAt(i++)),enc4=keyStr.indexOf(input.charAt(i++)),chr1=enc1<<2|enc2>>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));while(i<input.length);return output}};return obj}(),MD5=function(){var safe_add=function(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw},bit_rol=function(num,cnt){return num<<cnt|num>>>32-cnt},str2binl=function(str){for(var bin=[],i=0;i<8*str.length;i+=8)bin[i>>5]|=(255&str.charCodeAt(i/8))<<i%32;return bin},binl2str=function(bin){for(var str="",i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>i%32&255);return str},binl2hex=function(binarray){for(var hex_tab="0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15);return str},md5_cmn=function(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)},md5_ff=function(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)},md5_gg=function(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)},md5_hh=function(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)},md5_ii=function(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)},core_md5=function(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var olda,oldb,oldc,oldd,a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16)olda=a,oldb=b,oldc=c,oldd=d,a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd);return[a,b,c,d]},obj={hexdigest:function(s){return binl2hex(core_md5(str2binl(s),8*s.length))},hash:function(s){return binl2str(core_md5(str2binl(s),8*s.length))}};return obj}();/*!
+function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),8*s.length))}function str_sha1(s){return binb2str(core_sha1(str2binb(s),8*s.length))}function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data))}function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data))}function core_sha1(x,len){x[len>>5]|=128<<24-len%32,x[(len+64>>9<<4)+15]=len;var i,j,t,olda,oldb,oldc,oldd,olde,w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;for(i=0;i<x.length;i+=16){for(olda=a,oldb=b,oldc=c,oldd=d,olde=e,j=0;80>j;j++)16>j?w[j]=x[i+j]:w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j))),e=d,d=c,c=rol(b,30),b=a,a=t;a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd),e=safe_add(e,olde)}return[a,b,c,d,e]}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function core_hmac_sha1(key,data){var bkey=str2binb(key);bkey.length>16&&(bkey=core_sha1(bkey,8*key.length));for(var ipad=new Array(16),opad=new Array(16),i=0;16>i;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=core_sha1(ipad.concat(str2binb(data)),512+8*data.length);return core_sha1(opad.concat(hash),672)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function rol(num,cnt){return num<<cnt|num>>>32-cnt}function str2binb(str){for(var bin=[],mask=255,i=0;i<8*str.length;i+=8)bin[i>>5]|=(str.charCodeAt(i/8)&mask)<<24-i%32;return bin}function binb2str(bin){for(var str="",mask=255,i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>24-i%32&mask);return str}function binb2b64(binarray){for(var triplet,j,tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(triplet=(binarray[i>>2]>>8*(3-i%4)&255)<<16|(binarray[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|binarray[i+2>>2]>>8*(3-(i+2)%4)&255,j=0;4>j;j++)str+=8*i+6*j>32*binarray.length?"=":tab.charAt(triplet>>6*(3-j)&63);return str}var Base64=function(){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",obj={encode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;do chr1=input.charCodeAt(i++),chr2=input.charCodeAt(i++),chr3=input.charCodeAt(i++),enc1=chr1>>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);while(i<input.length);return output},decode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do enc1=keyStr.indexOf(input.charAt(i++)),enc2=keyStr.indexOf(input.charAt(i++)),enc3=keyStr.indexOf(input.charAt(i++)),enc4=keyStr.indexOf(input.charAt(i++)),chr1=enc1<<2|enc2>>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));while(i<input.length);return output}};return obj}(),MD5=function(){var safe_add=function(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw},bit_rol=function(num,cnt){return num<<cnt|num>>>32-cnt},str2binl=function(str){for(var bin=[],i=0;i<8*str.length;i+=8)bin[i>>5]|=(255&str.charCodeAt(i/8))<<i%32;return bin},binl2str=function(bin){for(var str="",i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>i%32&255);return str},binl2hex=function(binarray){for(var hex_tab="0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15);return str},md5_cmn=function(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)},md5_ff=function(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)},md5_gg=function(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)},md5_hh=function(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)},md5_ii=function(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)},core_md5=function(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var olda,oldb,oldc,oldd,a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16)olda=a,oldb=b,oldc=c,oldd=d,a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd);return[a,b,c,d]},obj={hexdigest:function(s){return binl2hex(core_md5(str2binl(s),8*s.length))},hash:function(s){return binl2str(core_md5(str2binl(s),8*s.length))}};return obj}();/*!
This program is distributed under the terms of the MIT license.
Please see the LICENSE file for details.
Copyright 2006-2008, OGG, LLC
*/
-Function.prototype.bind||(Function.prototype.bind=function(obj){var func=this,_slice=Array.prototype.slice,_concat=Array.prototype.concat,_args=_slice.call(arguments,1);return function(){return func.apply(obj?obj:this,_concat.call(_args,_slice.call(arguments,0)))}}),Array.prototype.indexOf||(Array.prototype.indexOf=function(elt){var len=this.length,from=Number(arguments[1])||0;for(from=0>from?Math.ceil(from):Math.floor(from),0>from&&(from+=len);len>from;from++)if(from in this&&this[from]===elt)return from;return-1}),function(callback){function $build(name,attrs){return new Strophe.Builder(name,attrs)}function $msg(attrs){return new Strophe.Builder("message",attrs)}function $iq(attrs){return new Strophe.Builder("iq",attrs)}function $pres(attrs){return new Strophe.Builder("presence",attrs)}var Strophe;Strophe={VERSION:"1.1.3",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",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(tag){for(var i=0;i<Strophe.XHTML.tags.length;i++)if(tag==Strophe.XHTML.tags[i])return!0;return!1},validAttribute:function(tag,attribute){if("undefined"!=typeof Strophe.XHTML.attributes[tag]&&Strophe.XHTML.attributes[tag].length>0)for(var i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute==Strophe.XHTML.attributes[tag][i])return!0;return!1},validCSS:function(style){for(var i=0;i<Strophe.XHTML.css.length;i++)if(style==Strophe.XHTML.css[i])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8},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(name,value){Strophe.NS[name]=value},forEachChild:function(elem,elemName,func){var i,childNode;for(i=0;i<elem.childNodes.length;i++)childNode=elem.childNodes[i],childNode.nodeType!=Strophe.ElementType.NORMAL||elemName&&!this.isTagEqual(childNode,elemName)||func(childNode)},isTagEqual:function(el,name){return el.tagName.toLowerCase()==name.toLowerCase()},_xmlGenerator:null,_makeGenerator:function(){var doc;return void 0===document.implementation.createDocument||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(doc=this._getIEXmlDom(),doc.appendChild(doc.createElement("strophe"))):doc=document.implementation.createDocument("jabber:client","strophe",null),doc},xmlGenerator:function(){return Strophe._xmlGenerator||(Strophe._xmlGenerator=Strophe._makeGenerator()),Strophe._xmlGenerator},_getIEXmlDom:function(){for(var doc=null,docStrings=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],d=0;d<docStrings.length&&null===doc;d++)try{doc=new ActiveXObject(docStrings[d])}catch(e){doc=null}return doc},xmlElement:function(name){if(!name)return null;var a,i,k,node=Strophe.xmlGenerator().createElement(name);for(a=1;a<arguments.length;a++)if(arguments[a])if("string"==typeof arguments[a]||"number"==typeof arguments[a])node.appendChild(Strophe.xmlTextNode(arguments[a]));else if("object"==typeof arguments[a]&&"function"==typeof arguments[a].sort)for(i=0;i<arguments[a].length;i++)"object"==typeof arguments[a][i]&&"function"==typeof arguments[a][i].sort&&node.setAttribute(arguments[a][i][0],arguments[a][i][1]);else if("object"==typeof arguments[a])for(k in arguments[a])arguments[a].hasOwnProperty(k)&&node.setAttribute(k,arguments[a][k]);return node},xmlescape:function(text){return text=text.replace(/\&/g,"&amp;"),text=text.replace(/</g,"&lt;"),text=text.replace(/>/g,"&gt;"),text=text.replace(/'/g,"&apos;"),text=text.replace(/"/g,"&quot;")},xmlTextNode:function(text){return Strophe.xmlGenerator().createTextNode(text)},xmlHtmlNode:function(html){var node;if(window.DOMParser){var parser=new DOMParser;node=parser.parseFromString(html,"text/xml")}else node=new ActiveXObject("Microsoft.XMLDOM"),node.async="false",node.loadXML(html);return node},getText:function(elem){if(!elem)return null;var str="";0===elem.childNodes.length&&elem.nodeType==Strophe.ElementType.TEXT&&(str+=elem.nodeValue);for(var i=0;i<elem.childNodes.length;i++)elem.childNodes[i].nodeType==Strophe.ElementType.TEXT&&(str+=elem.childNodes[i].nodeValue);return Strophe.xmlescape(str)},copyElement:function(elem){var i,el;if(elem.nodeType==Strophe.ElementType.NORMAL){for(el=Strophe.xmlElement(elem.tagName),i=0;i<elem.attributes.length;i++)el.setAttribute(elem.attributes[i].nodeName.toLowerCase(),elem.attributes[i].value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.copyElement(elem.childNodes[i]))}else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlGenerator().createTextNode(elem.nodeValue));return el},createHtml:function(elem){var i,el,j,tag,attribute,value,css,cssAttrs,attr,cssName,cssValue;if(elem.nodeType==Strophe.ElementType.NORMAL)if(tag=elem.nodeName.toLowerCase(),Strophe.XHTML.validTag(tag))try{for(el=Strophe.xmlElement(tag),i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute=Strophe.XHTML.attributes[tag][i],value=elem.getAttribute(attribute),"undefined"!=typeof value&&null!==value&&""!==value&&value!==!1&&0!==value)if("style"==attribute&&"object"==typeof value&&"undefined"!=typeof value.cssText&&(value=value.cssText),"style"==attribute){for(css=[],cssAttrs=value.split(";"),j=0;j<cssAttrs.length;j++)attr=cssAttrs[j].split(":"),cssName=attr[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),Strophe.XHTML.validCSS(cssName)&&(cssValue=attr[1].replace(/^\s*/,"").replace(/\s*$/,""),css.push(cssName+": "+cssValue));css.length>0&&(value=css.join("; "),el.setAttribute(attribute,value))}else el.setAttribute(attribute,value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]))}catch(e){el=Strophe.xmlTextNode("")}else for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else if(elem.nodeType==Strophe.ElementType.FRAGMENT)for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlTextNode(elem.nodeValue));return el},escapeNode:function(node){return node.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(node){return node.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(jid){return jid.indexOf("@")<0?null:jid.split("@")[0]},getDomainFromJid:function(jid){var bare=Strophe.getBareJidFromJid(jid);if(bare.indexOf("@")<0)return bare;var parts=bare.split("@");return parts.splice(0,1),parts.join("@")},getResourceFromJid:function(jid){var s=jid.split("/");return s.length<2?null:(s.splice(0,1),s.join("/"))},getBareJidFromJid:function(jid){return jid?jid.split("/")[0]:null},log:function(){},debug:function(msg){this.log(this.LogLevel.DEBUG,msg)},info:function(msg){this.log(this.LogLevel.INFO,msg)},warn:function(msg){this.log(this.LogLevel.WARN,msg)},error:function(msg){this.log(this.LogLevel.ERROR,msg)},fatal:function(msg){this.log(this.LogLevel.FATAL,msg)},serialize:function(elem){var result;if(!elem)return null;"function"==typeof elem.tree&&(elem=elem.tree());var i,child,nodeName=elem.nodeName;for(elem.getAttribute("_realname")&&(nodeName=elem.getAttribute("_realname")),result="<"+nodeName,i=0;i<elem.attributes.length;i++)"_realname"!=elem.attributes[i].nodeName&&(result+=" "+elem.attributes[i].nodeName.toLowerCase()+"='"+elem.attributes[i].value.replace(/&/g,"&amp;").replace(/\'/g,"&apos;").replace(/>/g,"&gt;").replace(/</g,"&lt;")+"'");if(elem.childNodes.length>0){for(result+=">",i=0;i<elem.childNodes.length;i++)switch(child=elem.childNodes[i],child.nodeType){case Strophe.ElementType.NORMAL:result+=Strophe.serialize(child);break;case Strophe.ElementType.TEXT:result+=Strophe.xmlescape(child.nodeValue);break;case Strophe.ElementType.CDATA:result+="<![CDATA["+child.nodeValue+"]]>"}result+="</"+nodeName+">"}else result+="/>";return result},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(name,ptype){Strophe._connectionPlugins[name]=ptype}},Strophe.Builder=function(name,attrs){("presence"==name||"message"==name||"iq"==name)&&(attrs&&!attrs.xmlns?attrs.xmlns=Strophe.NS.CLIENT:attrs||(attrs={xmlns:Strophe.NS.CLIENT})),this.nodeTree=Strophe.xmlElement(name,attrs),this.node=this.nodeTree},Strophe.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return Strophe.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(moreattrs){for(var k in moreattrs)moreattrs.hasOwnProperty(k)&&this.node.setAttribute(k,moreattrs[k]);return this},c:function(name,attrs,text){var child=Strophe.xmlElement(name,attrs,text);return this.node.appendChild(child),text||(this.node=child),this},cnode:function(elem){var impNode,xmlGen=Strophe.xmlGenerator();try{impNode=void 0!==xmlGen.importNode}catch(e){impNode=!1}var newElem=impNode?xmlGen.importNode(elem,!0):Strophe.copyElement(elem);return this.node.appendChild(newElem),this.node=newElem,this},t:function(text){var child=Strophe.xmlTextNode(text);return this.node.appendChild(child),this},h:function(html){var fragment=document.createElement("body");fragment.innerHTML=html;for(var xhtml=Strophe.createHtml(fragment);xhtml.childNodes.length>0;)this.node.appendChild(xhtml.childNodes[0]);return this}},Strophe.Handler=function(handler,ns,name,type,id,from,options){this.handler=handler,this.ns=ns,this.name=name,this.type=type,this.id=id,this.options=options||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.from=this.options.matchBare?from?Strophe.getBareJidFromJid(from):null:from,this.user=!0},Strophe.Handler.prototype={isMatch:function(elem){var nsMatch,from=null;if(from=this.options.matchBare?Strophe.getBareJidFromJid(elem.getAttribute("from")):elem.getAttribute("from"),nsMatch=!1,this.ns){var that=this;Strophe.forEachChild(elem,null,function(elem){elem.getAttribute("xmlns")==that.ns&&(nsMatch=!0)}),nsMatch=nsMatch||elem.getAttribute("xmlns")==this.ns}else nsMatch=!0;return!nsMatch||this.name&&!Strophe.isTagEqual(elem,this.name)||this.type&&elem.getAttribute("type")!=this.type||this.id&&elem.getAttribute("id")!=this.id||this.from&&from!=this.from?!1:!0},run:function(elem){var result=null;try{result=this.handler(elem)}catch(e){throw e.sourceURL?Strophe.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message):e.fileName?("undefined"!=typeof console&&(console.trace(),console.error(this.handler," - error - ",e,e.message)),Strophe.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message)):Strophe.fatal("error: "+e.message+"\n"+e.stack),e}return result},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},Strophe.TimedHandler=function(period,handler){this.period=period,this.handler=handler,this.lastCalled=(new Date).getTime(),this.user=!0},Strophe.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+")}"}},Strophe.Connection=function(service,options){this.service=service,this.options=options||{};var proto=this.options.protocol||"";this._proto=0===service.indexOf("ws:")||0===service.indexOf("wss:")||0===proto.indexOf("ws")?new Strophe.Websocket(this):new Strophe.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.errors=0,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 k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k],F=function(){};F.prototype=ptype,this[k]=new F,this[k].init(this)}},Strophe.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.errors=0,this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(suffix){return"string"==typeof suffix||"number"==typeof suffix?++this._uniqueId+":"+suffix:++this._uniqueId+""},connect:function(jid,pass,callback,wait,hold,route){this.jid=jid,this.authzid=Strophe.getBareJidFromJid(this.jid),this.authcid=Strophe.getNodeFromJid(this.jid),this.pass=pass,this.servtype="xmpp",this.connect_callback=callback,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.errors=0,this.domain=Strophe.getDomainFromJid(this.jid),this._changeConnectStatus(Strophe.Status.CONNECTING,null),this._proto._connect(wait,hold,route)},attach:function(jid,sid,rid,callback,wait,hold,wind){this._proto._attach(jid,sid,rid,callback,wait,hold,wind)},xmlInput:function(){},xmlOutput:function(){},rawInput:function(){},rawOutput:function(){},send:function(elem){if(null!==elem){if("function"==typeof elem.sort)for(var i=0;i<elem.length;i++)this._queueData(elem[i]);else this._queueData("function"==typeof elem.tree?elem.tree():elem);this._proto._send()}},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(elem,callback,errback,timeout){var timeoutHandler=null,that=this;"function"==typeof elem.tree&&(elem=elem.tree());var id=elem.getAttribute("id");id||(id=this.getUniqueId("sendIQ"),elem.setAttribute("id",id));var handler=this.addHandler(function(stanza){timeoutHandler&&that.deleteTimedHandler(timeoutHandler);var iqtype=stanza.getAttribute("type");if("result"==iqtype)callback&&callback(stanza);else{if("error"!=iqtype)throw{name:"StropheError",message:"Got bad IQ type of "+iqtype};errback&&errback(stanza)}},null,"iq",null,id);return timeout&&(timeoutHandler=this.addTimedHandler(timeout,function(){return that.deleteHandler(handler),errback&&errback(null),!1})),this.send(elem),id},_queueData:function(element){if(null===element||!element.tagName||!element.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(element)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return this.addTimeds.push(thand),thand},deleteTimedHandler:function(handRef){this.removeTimeds.push(handRef)},addHandler:function(handler,ns,name,type,id,from,options){var hand=new Strophe.Handler(handler,ns,name,type,id,from,options);return this.addHandlers.push(hand),hand},deleteHandler:function(handRef){this.removeHandlers.push(handRef)},disconnect:function(reason){if(this._changeConnectStatus(Strophe.Status.DISCONNECTING,reason),Strophe.info("Disconnect was called because: "+reason),this.connected){var pres=!1;this.disconnecting=!0,this.authenticated&&(pres=$pres({xmlns:Strophe.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(pres)}},_changeConnectStatus:function(status,condition){for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var plugin=this[k];if(plugin.statusChanged)try{plugin.statusChanged(status,condition)}catch(err){Strophe.error(""+k+" plugin caused an exception changing status: "+err)}}if(this.connect_callback)try{this.connect_callback(status,condition)}catch(e){Strophe.error("User connection callback caused an exception: "+e)}},_doDisconnect:function(){null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),Strophe.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(Strophe.Status.DISCONNECTED,null),this.connected=!1},_dataRecv:function(req,raw){Strophe.info("_dataRecv called");var elem=this._proto._reqToData(req);if(null!==elem){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&this.xmlInput(elem.nodeName===this._proto.strip&&elem.childNodes.length?elem.childNodes[0]:elem),this.rawInput!==Strophe.Connection.prototype.rawInput&&this.rawInput(raw?raw:Strophe.serialize(elem));for(var i,hand;this.removeHandlers.length>0;)hand=this.removeHandlers.pop(),i=this.handlers.indexOf(hand),i>=0&&this.handlers.splice(i,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();var cond,conflict,typ=elem.getAttribute("type");if(null!==typ&&"terminate"==typ){if(this.disconnecting)return;return cond=elem.getAttribute("condition"),conflict=elem.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),void this.disconnect("unknown stream-error")}var that=this;Strophe.forEachChild(elem,null,function(child){var i,newList;for(newList=that.handlers,that.handlers=[],i=0;i<newList.length;i++){var hand=newList[i];try{!hand.isMatch(child)||!that.authenticated&&hand.user?that.handlers.push(hand):hand.run(child)&&that.handlers.push(hand)}catch(e){Strophe.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}}})}},mechanisms:{},_connect_cb:function(req,_callback,raw){Strophe.info("_connect_cb was called"),this.connected=!0;var bodyWrap=this._proto._reqToData(req);if(bodyWrap){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&this.xmlInput(bodyWrap.nodeName===this._proto.strip&&bodyWrap.childNodes.length?bodyWrap.childNodes[0]:bodyWrap),this.rawInput!==Strophe.Connection.prototype.rawInput&&this.rawInput(raw?raw:Strophe.serialize(bodyWrap));var conncheck=this._proto._connect_cb(bodyWrap);if(conncheck!==Strophe.Status.CONNFAIL){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 hasFeatures=bodyWrap.getElementsByTagName("stream:features").length>0;hasFeatures||(hasFeatures=bodyWrap.getElementsByTagName("features").length>0);var i,mech,mechanisms=bodyWrap.getElementsByTagName("mechanism"),matched=[],found_authentication=!1;if(!hasFeatures)return void this._proto._no_auth_received(_callback);if(mechanisms.length>0)for(i=0;i<mechanisms.length;i++)mech=Strophe.getText(mechanisms[i]),this.mechanisms[mech]&&matched.push(this.mechanisms[mech]);return this._authentication.legacy_auth=bodyWrap.getElementsByTagName("auth").length>0,(found_authentication=this._authentication.legacy_auth||matched.length>0)?void(this.do_authentication!==!1&&this.authenticate(matched)):void this._proto._no_auth_received(_callback)}}},authenticate:function(matched){var i;for(i=0;i<matched.length-1;++i){for(var higher=i,j=i+1;j<matched.length;++j)matched[j].prototype.priority>matched[higher].prototype.priority&&(higher=j);if(higher!=i){var swap=matched[i];matched[i]=matched[higher],matched[higher]=swap}}var mechanism_found=!1;for(i=0;i<matched.length;++i)if(matched[i].test(this)){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 matched[i],this._sasl_mechanism.onStart(this);var request_auth_exchange=$build("auth",{xmlns:Strophe.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var response=this._sasl_mechanism.onChallenge(this,null);request_auth_exchange.t(Base64.encode(response))}this.send(request_auth_exchange.tree()),mechanism_found=!0;break}mechanism_found||(null===Strophe.getNodeFromJid(this.jid)?(this._changeConnectStatus(Strophe.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(Strophe.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send($iq({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(elem){var challenge=Base64.decode(Strophe.getText(elem)),response=this._sasl_mechanism.onChallenge(this,challenge),stanza=$build("response",{xmlns:Strophe.NS.SASL});return""!==response&&stanza.t(Base64.encode(response)),this.send(stanza.tree()),!0},_auth1_cb:function(){var iq=$iq({type:"set",id:"_auth_2"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return Strophe.getResourceFromJid(this.jid)||(this.jid=Strophe.getBareJidFromJid(this.jid)+"/strophe"),iq.up().c("resource",{}).t(Strophe.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(iq.tree()),!1},_sasl_success_cb:function(elem){if(this._sasl_data["server-signature"]){var serverSignature,success=Base64.decode(Strophe.getText(elem)),attribMatch=/([a-z]+)=([^,]+)(,|$)/,matches=success.match(attribMatch);if("v"==matches[1]&&(serverSignature=matches[2]),serverSignature!=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)}return Strophe.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),this._addSysHandler(this._sasl_auth1_cb.bind(this),null,"stream:features",null,null),this._sendRestart(),!1},_sasl_auth1_cb:function(elem){this.features=elem;var i,child;for(i=0;i<elem.childNodes.length;i++)child=elem.childNodes[i],"bind"==child.nodeName&&(this.do_bind=!0),"session"==child.nodeName&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var resource=Strophe.getResourceFromJid(this.jid);return this.send(resource?$iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).c("resource",{}).t(resource).tree():$iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).tree()),!1},_sasl_bind_cb:function(elem){if("error"==elem.getAttribute("type")){Strophe.info("SASL binding failed.");var condition,conflict=elem.getElementsByTagName("conflict");return conflict.length>0&&(condition="conflict"),this._changeConnectStatus(Strophe.Status.AUTHFAIL,condition),!1}var jidNode,bind=elem.getElementsByTagName("bind");return bind.length>0?(jidNode=bind[0].getElementsByTagName("jid"),void(jidNode.length>0&&(this.jid=Strophe.getText(jidNode[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send($iq({type:"set",id:"_session_auth_2"}).c("session",{xmlns:Strophe.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null))))):(Strophe.info("SASL binding failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1)},_sasl_session_cb:function(elem){if("result"==elem.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null);else if("error"==elem.getAttribute("type"))return Strophe.info("Session creation failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(){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(Strophe.Status.AUTHFAIL,null),!1},_auth2_cb:function(elem){return"result"==elem.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null)):"error"==elem.getAttribute("type")&&(this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return thand.user=!1,this.addTimeds.push(thand),thand},_addSysHandler:function(handler,ns,name,type,id){var hand=new Strophe.Handler(handler,ns,name,type,id);return hand.user=!1,this.addHandlers.push(hand),hand},_onDisconnectTimeout:function(){return Strophe.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var i,thand,since,newList;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)thand=this.removeTimeds.pop(),i=this.timedHandlers.indexOf(thand),i>=0&&this.timedHandlers.splice(i,1);var now=(new Date).getTime();for(newList=[],i=0;i<this.timedHandlers.length;i++)thand=this.timedHandlers[i],(this.authenticated||!thand.user)&&(since=thand.lastCalled+thand.period,0>=since-now?thand.run()&&newList.push(thand):newList.push(thand));this.timedHandlers=newList,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},callback&&callback(Strophe,$build,$msg,$iq,$pres),Strophe.SASLMechanism=function(name,isClientFirst,priority){this.name=name,this.isClientFirst=isClientFirst,this.priority=priority},Strophe.SASLMechanism.prototype={test:function(){return!0},onStart:function(connection){this._connection=connection},onChallenge:function(){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},Strophe.SASLAnonymous=function(){},Strophe.SASLAnonymous.prototype=new Strophe.SASLMechanism("ANONYMOUS",!1,10),Strophe.SASLAnonymous.test=function(connection){return null===connection.authcid},Strophe.Connection.prototype.mechanisms[Strophe.SASLAnonymous.prototype.name]=Strophe.SASLAnonymous,Strophe.SASLPlain=function(){},Strophe.SASLPlain.prototype=new Strophe.SASLMechanism("PLAIN",!0,20),Strophe.SASLPlain.test=function(connection){return null!==connection.authcid},Strophe.SASLPlain.prototype.onChallenge=function(connection){var auth_str=connection.authzid;return auth_str+="\x00",auth_str+=connection.authcid,auth_str+="\x00",auth_str+=connection.pass},Strophe.Connection.prototype.mechanisms[Strophe.SASLPlain.prototype.name]=Strophe.SASLPlain,Strophe.SASLSHA1=function(){},Strophe.SASLSHA1.prototype=new Strophe.SASLMechanism("SCRAM-SHA-1",!0,40),Strophe.SASLSHA1.test=function(connection){return null!==connection.authcid},Strophe.SASLSHA1.prototype.onChallenge=function(connection,challenge,test_cnonce){var cnonce=test_cnonce||MD5.hexdigest(1234567890*Math.random()),auth_str="n="+connection.authcid;return auth_str+=",r=",auth_str+=cnonce,connection._sasl_data.cnonce=cnonce,connection._sasl_data["client-first-message-bare"]=auth_str,auth_str="n,,"+auth_str,this.onChallenge=function(connection,challenge){for(var nonce,salt,iter,Hi,U,U_old,i,k,clientKey,serverKey,clientSignature,responseText="c=biws,",authMessage=connection._sasl_data["client-first-message-bare"]+","+challenge+",",cnonce=connection._sasl_data.cnonce,attribMatch=/([a-z]+)=([^,]+)(,|$)/;challenge.match(attribMatch);){var matches=challenge.match(attribMatch);switch(challenge=challenge.replace(matches[0],""),matches[1]){case"r":nonce=matches[2];break;case"s":salt=matches[2];break;case"i":iter=matches[2]}}if(nonce.substr(0,cnonce.length)!==cnonce)return connection._sasl_data={},connection._sasl_failure_cb();for(responseText+="r="+nonce,authMessage+=responseText,salt=Base64.decode(salt),salt+="\x00\x00\x00",Hi=U_old=core_hmac_sha1(connection.pass,salt),i=1;iter>i;i++){for(U=core_hmac_sha1(connection.pass,binb2str(U_old)),k=0;5>k;k++)Hi[k]^=U[k];U_old=U}for(Hi=binb2str(Hi),clientKey=core_hmac_sha1(Hi,"Client Key"),serverKey=str_hmac_sha1(Hi,"Server Key"),clientSignature=core_hmac_sha1(str_sha1(binb2str(clientKey)),authMessage),connection._sasl_data["server-signature"]=b64_hmac_sha1(serverKey,authMessage),k=0;5>k;k++)clientKey[k]^=clientSignature[k];return responseText+=",p="+Base64.encode(binb2str(clientKey))}.bind(this),auth_str},Strophe.Connection.prototype.mechanisms[Strophe.SASLSHA1.prototype.name]=Strophe.SASLSHA1,Strophe.SASLMD5=function(){},Strophe.SASLMD5.prototype=new Strophe.SASLMechanism("DIGEST-MD5",!1,30),Strophe.SASLMD5.test=function(connection){return null!==connection.authcid},Strophe.SASLMD5.prototype._quote=function(str){return'"'+str.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},Strophe.SASLMD5.prototype.onChallenge=function(connection,challenge,test_cnonce){for(var matches,attribMatch=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,cnonce=test_cnonce||MD5.hexdigest(""+1234567890*Math.random()),realm="",host=null,nonce="",qop="";challenge.match(attribMatch);)switch(matches=challenge.match(attribMatch),challenge=challenge.replace(matches[0],""),matches[2]=matches[2].replace(/^"(.+)"$/,"$1"),matches[1]){case"realm":realm=matches[2];break;case"nonce":nonce=matches[2];break;case"qop":qop=matches[2];break;case"host":host=matches[2]}var digest_uri=connection.servtype+"/"+connection.domain;null!==host&&(digest_uri=digest_uri+"/"+host);var A1=MD5.hash(connection.authcid+":"+realm+":"+this._connection.pass)+":"+nonce+":"+cnonce,A2="AUTHENTICATE:"+digest_uri,responseText="";return responseText+="charset=utf-8,",responseText+="username="+this._quote(connection.authcid)+",",responseText+="realm="+this._quote(realm)+",",responseText+="nonce="+this._quote(nonce)+",",responseText+="nc=00000001,",responseText+="cnonce="+this._quote(cnonce)+",",responseText+="digest-uri="+this._quote(digest_uri)+",",responseText+="response="+MD5.hexdigest(MD5.hexdigest(A1)+":"+nonce+":00000001:"+cnonce+":auth:"+MD5.hexdigest(A2))+",",responseText+="qop=auth",this.onChallenge=function(){return""
-}.bind(this),responseText},Strophe.Connection.prototype.mechanisms[Strophe.SASLMD5.prototype.name]=Strophe.SASLMD5}(function(){window.Strophe=arguments[0],window.$build=arguments[1],window.$msg=arguments[2],window.$iq=arguments[3],window.$pres=arguments[4]}),Strophe.Request=function(elem,func,rid,sends){this.id=++Strophe._requestId,this.xmlData=elem,this.data=Strophe.serialize(elem),this.origFunc=func,this.func=func,this.rid=rid,this.date=0/0,this.sends=sends||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var now=new Date;return(now-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var now=new Date;return(now-this.dead)/1e3},this.xhr=this._newXHR()},Strophe.Request.prototype={getResponse:function(){var node=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){if(node=this.xhr.responseXML.documentElement,"parsererror"==node.tagName)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)));return node},_newXHR:function(){var xhr=null;return window.XMLHttpRequest?(xhr=new XMLHttpRequest,xhr.overrideMimeType&&xhr.overrideMimeType("text/xml")):window.ActiveXObject&&(xhr=new ActiveXObject("Microsoft.XMLHTTP")),xhr.onreadystatechange=this.func.bind(null,this),xhr}},Strophe.Bosh=function(connection){this._conn=connection,this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this._requests=[]},Strophe.Bosh.prototype={strip:null,_buildBody:function(){var bodyWrap=$build("body",{rid:this.rid++,xmlns:Strophe.NS.HTTPBIND});return null!==this.sid&&bodyWrap.attrs({sid:this.sid}),bodyWrap},_reset:function(){this.rid=Math.floor(4294967295*Math.random()),this.sid=null,jQuery(document).trigger("ridChange",{rid:this.rid})},_connect:function(wait,hold,route){this.wait=wait||this.wait,this.hold=hold||this.hold;var body=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":Strophe.NS.BOSH});route&&body.attrs({route:route});var _connect_cb=this._conn._connect_cb;this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_connect_cb.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(jid,sid,rid,callback,wait,hold,wind){this._conn.jid=jid,this.sid=sid,this.rid=rid,this._conn.connect_callback=callback,this._conn.domain=Strophe.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=wait||this.wait,this.hold=hold||this.hold,this.window=wind||this.window,this._conn._changeConnectStatus(Strophe.Status.ATTACHED,null)},_connect_cb:function(bodyWrap){var cond,conflict,typ=bodyWrap.getAttribute("type");if(null!==typ&&"terminate"==typ)return Strophe.error("BOSH-Connection failed: "+cond),cond=bodyWrap.getAttribute("condition"),conflict=bodyWrap.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(),Strophe.Status.CONNFAIL;this.sid||(this.sid=bodyWrap.getAttribute("sid"));var wind=bodyWrap.getAttribute("requests");wind&&(this.window=parseInt(wind,10));var hold=bodyWrap.getAttribute("hold");hold&&(this.hold=parseInt(hold,10));var wait=bodyWrap.getAttribute("wait");wait&&(this.wait=parseInt(wait,10))},_disconnect:function(pres){this._sendTerminate(pres)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random()),jQuery(document).trigger("ridChange",{rid:this.rid})},_emptyQueue:function(){return 0===this._requests.length},_hitError:function(reqStatus){this.errors++,Strophe.warn("request errored, status: "+reqStatus+", number of errors: "+this.errors),this.errors>4&&this._onDisconnectTimeout()},_no_auth_received:function(_callback){_callback=_callback?_callback.bind(this._conn):this._conn._connect_cb.bind(this._conn);var body=this._buildBody();this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_callback.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){for(var req;this._requests.length>0;)req=this._requests.pop(),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){}},_onIdle:function(){var data=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===data.length&&!this._conn.disconnecting&&(Strophe.info("no requests during idle cycle, sending blank request"),data.push(null)),this._requests.length<2&&data.length>0&&!this._conn.paused){for(var body=this._buildBody(),i=0;i<data.length;i++)null!==data[i]&&("restart"===data[i]?body.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":Strophe.NS.BOSH}):body.cnode(data[i]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"))),this._processRequest(this._requests.length-1)}if(this._requests.length>0){var time_elapsed=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait)&&(Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}},_onRequestStateChange:function(func,req){if(Strophe.debug("request id "+req.id+"."+req.sends+" state changed to "+req.xhr.readyState),req.abort)return void(req.abort=!1);2==req.xhr.readyState&&jQuery(document).trigger("ridChange",{rid:Number(req.rid)+1});var reqStatus;if(4==req.xhr.readyState){reqStatus=0;try{reqStatus=req.xhr.status}catch(e){}if("undefined"==typeof reqStatus&&(reqStatus=0),this.disconnecting&&reqStatus>=400)return void this._hitError(reqStatus);var reqIs0=this._requests[0]==req,reqIs1=this._requests[1]==req;(reqStatus>0&&500>reqStatus||req.sends>5)&&(this._removeRequest(req),Strophe.debug("request id "+req.id+" should now be removed")),200==reqStatus?((reqIs1||reqIs0&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),Strophe.debug("request id "+req.id+"."+req.sends+" got 200"),func(req),this.errors=0):(Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened"),(0===reqStatus||reqStatus>=400&&600>reqStatus||reqStatus>=12e3)&&(this._hitError(reqStatus),reqStatus>=400&&500>reqStatus&&(this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING,null),this._conn._doDisconnect()))),reqStatus>0&&500>reqStatus||req.sends>5||this._throttledRequestHandler()}},_processRequest:function(i){var self=this,req=this._requests[i],reqStatus=-1;try{4==req.xhr.readyState&&(reqStatus=req.xhr.status)}catch(e){Strophe.error("caught an error in _requests["+i+"], reqStatus: "+reqStatus)}if("undefined"==typeof reqStatus&&(reqStatus=-1),req.sends>this.maxRetries)return void this._onDisconnectTimeout();var time_elapsed=req.age(),primaryTimeout=!isNaN(time_elapsed)&&time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait),secondaryTimeout=null!==req.dead&&req.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait),requestCompletedWithServerError=4==req.xhr.readyState&&(1>reqStatus||reqStatus>=500);if((primaryTimeout||secondaryTimeout||requestCompletedWithServerError)&&(secondaryTimeout&&Strophe.error("Request "+this._requests[i].id+" timed out (secondary), restarting"),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){},this._requests[i]=new Strophe.Request(req.xmlData,req.origFunc,req.rid,req.sends),req=this._requests[i]),0===req.xhr.readyState){Strophe.debug("request id "+req.id+"."+req.sends+" posting");try{req.xhr.open("POST",this._conn.service,this._conn.options.sync?!1:!0)}catch(e2){return Strophe.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var sendFunc=function(){if(req.date=new Date,self._conn.options.customHeaders){var headers=self._conn.options.customHeaders;for(var header in headers)headers.hasOwnProperty(header)&&req.xhr.setRequestHeader(header,headers[header])}req.xhr.send(req.data)};if(req.sends>1){var backoff=1e3*Math.min(Math.floor(Strophe.TIMEOUT*this.wait),Math.pow(req.sends,3));setTimeout(sendFunc,backoff)}else sendFunc();req.sends++,this._conn.xmlOutput!==Strophe.Connection.prototype.xmlOutput&&this._conn.xmlOutput(req.xmlData.nodeName===this.strip&&req.xmlData.childNodes.length?req.xmlData.childNodes[0]:req.xmlData),this._conn.rawOutput!==Strophe.Connection.prototype.rawOutput&&this._conn.rawOutput(req.data)}else Strophe.debug("_processRequest: "+(0===i?"first":"second")+" request has readyState of "+req.xhr.readyState)},_removeRequest:function(req){Strophe.debug("removing request");var i;for(i=this._requests.length-1;i>=0;i--)req==this._requests[i]&&this._requests.splice(i,1);req.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(i){var req=this._requests[i];null===req.dead&&(req.dead=new Date),this._processRequest(i)},_reqToData:function(req){try{return req.getResponse()}catch(e){if("parsererror"!=e)throw e;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(pres){Strophe.info("_sendTerminate was called");var body=this._buildBody().attrs({type:"terminate"});pres&&body.cnode(pres.tree());var req=new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"));this._requests.push(req),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(){Strophe.debug(this._requests?"_throttledRequestHandler called with "+this._requests.length+" requests":"_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(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))}},Strophe.Websocket=function(connection){this._conn=connection,this.strip="stream:stream";var service=connection.service;if(0!==service.indexOf("ws:")&&0!==service.indexOf("wss:")){var new_service="";new_service+="ws"===connection.options.protocol&&"https:"!==window.location.protocol?"ws":"wss",new_service+="://"+window.location.host,new_service+=0!==service.indexOf("/")?window.location.pathname+service:service,connection.service=new_service}},Strophe.Websocket.prototype={_buildStream:function(){return $build("stream:stream",{to:this._conn.domain,xmlns:Strophe.NS.CLIENT,"xmlns:stream":Strophe.NS.STREAM,version:"1.0"})},_check_streamerror:function(bodyWrap,connectstatus){var errors=bodyWrap.getElementsByTagName("stream:error");if(0===errors.length)return!1;for(var error=errors[0],condition="",text="",ns="urn:ietf:params:xml:ns:xmpp-streams",i=0;i<error.childNodes.length;i++){var e=error.childNodes[i];if(e.getAttribute("xmlns")!==ns)break;"text"===e.nodeName?text=e.textContent:condition=e.nodeName}var errorString="WebSocket stream error: ";return errorString+=condition?condition:"unknown",text&&(errorString+=" - "+condition),Strophe.error(errorString),this._conn._changeConnectStatus(connectstatus,condition),this._conn._doDisconnect(),!0},_reset:function(){},_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(bodyWrap){var error=this._check_streamerror(bodyWrap,Strophe.Status.CONNFAIL);return error?Strophe.Status.CONNFAIL:void 0},_handleStreamStart:function(message){var error=!1,ns=message.getAttribute("xmlns");"string"!=typeof ns?error="Missing xmlns in stream:stream":ns!==Strophe.NS.CLIENT&&(error="Wrong xmlns in stream:stream: "+ns);var ns_stream=message.namespaceURI;"string"!=typeof ns_stream?error="Missing xmlns:stream in stream:stream":ns_stream!==Strophe.NS.STREAM&&(error="Wrong xmlns:stream in stream:stream: "+ns_stream);var ver=message.getAttribute("version");return"string"!=typeof ver?error="Missing version in stream:stream":"1.0"!==ver&&(error="Wrong version in stream:stream: "+ver),error?(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,error),this._conn._doDisconnect(),!1):!0},_connect_cb_wrapper:function(message){if(0===message.data.indexOf("<stream:stream ")||0===message.data.indexOf("<?xml")){var data=message.data.replace(/^(<\?.*?\?>\s*)*/,"");if(""===data)return;data=message.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>");var streamStart=(new DOMParser).parseFromString(data,"text/xml").documentElement;this._conn.xmlInput(streamStart),this._conn.rawInput(message.data),this._handleStreamStart(streamStart)&&(this._connect_cb(streamStart),this.streamStart=message.data.replace(/^<stream:(.*)\/>$/,"<stream:$1>"))}else{if("</stream:stream>"===message.data)return this._conn.rawInput(message.data),this._conn.xmlInput(document.createElement("stream:stream")),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Received closing stream"),void this._conn._doDisconnect();var string=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(string,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(elem,null,message.data)}},_disconnect:function(pres){if(this.socket.readyState!==WebSocket.CLOSED){pres&&this._conn.send(pres);var close="</stream:stream>";this._conn.xmlOutput(document.createElement("stream:stream")),this._conn.rawOutput(close);try{this.socket.send(close)}catch(e){Strophe.info("Couldn't send closing stream tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){Strophe.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(stanza){return this.streamStart+stanza+"</stream:stream>"},_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?(Strophe.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):Strophe.info("Websocket closed")},_no_auth_received:function(_callback){Strophe.error("Server did not send any auth methods"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Server did not send any auth methods"),_callback&&(_callback=_callback.bind(this._conn))(),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_onError:function(error){Strophe.error("Websocket error "+error),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var data=this._conn._data;if(data.length>0&&!this._conn.paused){for(var i=0;i<data.length;i++)if(null!==data[i]){var stanza,rawStanza;"restart"===data[i]?(stanza=this._buildStream(),rawStanza=this._removeClosingTag(stanza),stanza=stanza.tree()):(stanza=data[i],rawStanza=Strophe.serialize(stanza)),this._conn.xmlOutput(stanza),this._conn.rawOutput(rawStanza),this.socket.send(rawStanza)}this._conn._data=[]}},_onMessage:function(message){var elem,data;if("</stream:stream>"===message.data){var close="</stream:stream>";return this._conn.rawInput(close),this._conn.xmlInput(document.createElement("stream:stream")),void(this._conn.disconnecting||this._conn._doDisconnect())}if(0===message.data.search("<stream:stream ")){if(data=message.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>"),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement,!this._handleStreamStart(elem))return}else data=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement;if(!this._check_streamerror(elem,Strophe.Status.ERROR))return this._conn.disconnecting&&"presence"===elem.firstChild.nodeName&&"unavailable"===elem.firstChild.getAttribute("type")?(this._conn.xmlInput(elem),void this._conn.rawInput(Strophe.serialize(elem))):void this._conn._dataRecv(elem,message.data)},_onOpen:function(){Strophe.info("Websocket open");var start=this._buildStream();this._conn.xmlOutput(start.tree());var startString=this._removeClosingTag(start);this._conn.rawOutput(startString),this.socket.send(startString)},_removeClosingTag:function(elem){var string=Strophe.serialize(elem);return string=string.replace(/<(stream:stream .*[^\/])\/>$/,"<$1>")},_reqToData:function(stanza){return stanza},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}};/*!
+Function.prototype.bind||(Function.prototype.bind=function(obj){var func=this,_slice=Array.prototype.slice,_concat=Array.prototype.concat,_args=_slice.call(arguments,1);return function(){return func.apply(obj?obj:this,_concat.call(_args,_slice.call(arguments,0)))}}),Array.prototype.indexOf||(Array.prototype.indexOf=function(elt){var len=this.length,from=Number(arguments[1])||0;for(from=0>from?Math.ceil(from):Math.floor(from),0>from&&(from+=len);len>from;from++)if(from in this&&this[from]===elt)return from;return-1}),function(callback){function $build(name,attrs){return new Strophe.Builder(name,attrs)}function $msg(attrs){return new Strophe.Builder("message",attrs)}function $iq(attrs){return new Strophe.Builder("iq",attrs)}function $pres(attrs){return new Strophe.Builder("presence",attrs)}var Strophe;Strophe={VERSION:"1.1.3",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",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(tag){for(var i=0;i<Strophe.XHTML.tags.length;i++)if(tag==Strophe.XHTML.tags[i])return!0;return!1},validAttribute:function(tag,attribute){if("undefined"!=typeof Strophe.XHTML.attributes[tag]&&Strophe.XHTML.attributes[tag].length>0)for(var i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute==Strophe.XHTML.attributes[tag][i])return!0;return!1},validCSS:function(style){for(var i=0;i<Strophe.XHTML.css.length;i++)if(style==Strophe.XHTML.css[i])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8},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(name,value){Strophe.NS[name]=value},forEachChild:function(elem,elemName,func){var i,childNode;for(i=0;i<elem.childNodes.length;i++)childNode=elem.childNodes[i],childNode.nodeType!=Strophe.ElementType.NORMAL||elemName&&!this.isTagEqual(childNode,elemName)||func(childNode)},isTagEqual:function(el,name){return el.tagName.toLowerCase()==name.toLowerCase()},_xmlGenerator:null,_makeGenerator:function(){var doc;return void 0===document.implementation.createDocument||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(doc=this._getIEXmlDom(),doc.appendChild(doc.createElement("strophe"))):doc=document.implementation.createDocument("jabber:client","strophe",null),doc},xmlGenerator:function(){return Strophe._xmlGenerator||(Strophe._xmlGenerator=Strophe._makeGenerator()),Strophe._xmlGenerator},_getIEXmlDom:function(){for(var doc=null,docStrings=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],d=0;d<docStrings.length&&null===doc;d++)try{doc=new ActiveXObject(docStrings[d])}catch(e){doc=null}return doc},xmlElement:function(name){if(!name)return null;var a,i,k,node=Strophe.xmlGenerator().createElement(name);for(a=1;a<arguments.length;a++)if(arguments[a])if("string"==typeof arguments[a]||"number"==typeof arguments[a])node.appendChild(Strophe.xmlTextNode(arguments[a]));else if("object"==typeof arguments[a]&&"function"==typeof arguments[a].sort)for(i=0;i<arguments[a].length;i++)"object"==typeof arguments[a][i]&&"function"==typeof arguments[a][i].sort&&node.setAttribute(arguments[a][i][0],arguments[a][i][1]);else if("object"==typeof arguments[a])for(k in arguments[a])arguments[a].hasOwnProperty(k)&&node.setAttribute(k,arguments[a][k]);return node},xmlescape:function(text){return text=text.replace(/\&/g,"&amp;"),text=text.replace(/</g,"&lt;"),text=text.replace(/>/g,"&gt;"),text=text.replace(/'/g,"&apos;"),text=text.replace(/"/g,"&quot;")},xmlTextNode:function(text){return Strophe.xmlGenerator().createTextNode(text)},xmlHtmlNode:function(html){var node;if(window.DOMParser){var parser=new DOMParser;node=parser.parseFromString(html,"text/xml")}else node=new ActiveXObject("Microsoft.XMLDOM"),node.async="false",node.loadXML(html);return node},getText:function(elem){if(!elem)return null;var str="";0===elem.childNodes.length&&elem.nodeType==Strophe.ElementType.TEXT&&(str+=elem.nodeValue);for(var i=0;i<elem.childNodes.length;i++)elem.childNodes[i].nodeType==Strophe.ElementType.TEXT&&(str+=elem.childNodes[i].nodeValue);return Strophe.xmlescape(str)},copyElement:function(elem){var i,el;if(elem.nodeType==Strophe.ElementType.NORMAL){for(el=Strophe.xmlElement(elem.tagName),i=0;i<elem.attributes.length;i++)el.setAttribute(elem.attributes[i].nodeName.toLowerCase(),elem.attributes[i].value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.copyElement(elem.childNodes[i]))}else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlGenerator().createTextNode(elem.nodeValue));return el},createHtml:function(elem){var i,el,j,tag,attribute,value,css,cssAttrs,attr,cssName,cssValue;if(elem.nodeType==Strophe.ElementType.NORMAL)if(tag=elem.nodeName.toLowerCase(),Strophe.XHTML.validTag(tag))try{for(el=Strophe.xmlElement(tag),i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute=Strophe.XHTML.attributes[tag][i],value=elem.getAttribute(attribute),"undefined"!=typeof value&&null!==value&&""!==value&&value!==!1&&0!==value)if("style"==attribute&&"object"==typeof value&&"undefined"!=typeof value.cssText&&(value=value.cssText),"style"==attribute){for(css=[],cssAttrs=value.split(";"),j=0;j<cssAttrs.length;j++)attr=cssAttrs[j].split(":"),cssName=attr[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),Strophe.XHTML.validCSS(cssName)&&(cssValue=attr[1].replace(/^\s*/,"").replace(/\s*$/,""),css.push(cssName+": "+cssValue));css.length>0&&(value=css.join("; "),el.setAttribute(attribute,value))}else el.setAttribute(attribute,value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]))}catch(e){el=Strophe.xmlTextNode("")}else for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else if(elem.nodeType==Strophe.ElementType.FRAGMENT)for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlTextNode(elem.nodeValue));return el},escapeNode:function(node){return node.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(node){return node.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(jid){return jid.indexOf("@")<0?null:jid.split("@")[0]},getDomainFromJid:function(jid){var bare=Strophe.getBareJidFromJid(jid);if(bare.indexOf("@")<0)return bare;var parts=bare.split("@");return parts.splice(0,1),parts.join("@")},getResourceFromJid:function(jid){var s=jid.split("/");return s.length<2?null:(s.splice(0,1),s.join("/"))},getBareJidFromJid:function(jid){return jid?jid.split("/")[0]:null},log:function(level,msg){},debug:function(msg){this.log(this.LogLevel.DEBUG,msg)},info:function(msg){this.log(this.LogLevel.INFO,msg)},warn:function(msg){this.log(this.LogLevel.WARN,msg)},error:function(msg){this.log(this.LogLevel.ERROR,msg)},fatal:function(msg){this.log(this.LogLevel.FATAL,msg)},serialize:function(elem){var result;if(!elem)return null;"function"==typeof elem.tree&&(elem=elem.tree());var i,child,nodeName=elem.nodeName;for(elem.getAttribute("_realname")&&(nodeName=elem.getAttribute("_realname")),result="<"+nodeName,i=0;i<elem.attributes.length;i++)"_realname"!=elem.attributes[i].nodeName&&(result+=" "+elem.attributes[i].nodeName.toLowerCase()+"='"+elem.attributes[i].value.replace(/&/g,"&amp;").replace(/\'/g,"&apos;").replace(/>/g,"&gt;").replace(/</g,"&lt;")+"'");if(elem.childNodes.length>0){for(result+=">",i=0;i<elem.childNodes.length;i++)switch(child=elem.childNodes[i],child.nodeType){case Strophe.ElementType.NORMAL:result+=Strophe.serialize(child);break;case Strophe.ElementType.TEXT:result+=Strophe.xmlescape(child.nodeValue);break;case Strophe.ElementType.CDATA:result+="<![CDATA["+child.nodeValue+"]]>"}result+="</"+nodeName+">"}else result+="/>";return result},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(name,ptype){Strophe._connectionPlugins[name]=ptype}},Strophe.Builder=function(name,attrs){("presence"==name||"message"==name||"iq"==name)&&(attrs&&!attrs.xmlns?attrs.xmlns=Strophe.NS.CLIENT:attrs||(attrs={xmlns:Strophe.NS.CLIENT})),this.nodeTree=Strophe.xmlElement(name,attrs),this.node=this.nodeTree},Strophe.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return Strophe.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(moreattrs){for(var k in moreattrs)moreattrs.hasOwnProperty(k)&&this.node.setAttribute(k,moreattrs[k]);return this},c:function(name,attrs,text){var child=Strophe.xmlElement(name,attrs,text);return this.node.appendChild(child),text||(this.node=child),this},cnode:function(elem){var impNode,xmlGen=Strophe.xmlGenerator();try{impNode=void 0!==xmlGen.importNode}catch(e){impNode=!1}var newElem=impNode?xmlGen.importNode(elem,!0):Strophe.copyElement(elem);return this.node.appendChild(newElem),this.node=newElem,this},t:function(text){var child=Strophe.xmlTextNode(text);return this.node.appendChild(child),this},h:function(html){var fragment=document.createElement("body");fragment.innerHTML=html;for(var xhtml=Strophe.createHtml(fragment);xhtml.childNodes.length>0;)this.node.appendChild(xhtml.childNodes[0]);return this}},Strophe.Handler=function(handler,ns,name,type,id,from,options){this.handler=handler,this.ns=ns,this.name=name,this.type=type,this.id=id,this.options=options||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.options.matchBare?this.from=from?Strophe.getBareJidFromJid(from):null:this.from=from,this.user=!0},Strophe.Handler.prototype={isMatch:function(elem){var nsMatch,from=null;if(from=this.options.matchBare?Strophe.getBareJidFromJid(elem.getAttribute("from")):elem.getAttribute("from"),nsMatch=!1,this.ns){var that=this;Strophe.forEachChild(elem,null,function(elem){elem.getAttribute("xmlns")==that.ns&&(nsMatch=!0)}),nsMatch=nsMatch||elem.getAttribute("xmlns")==this.ns}else nsMatch=!0;return!nsMatch||this.name&&!Strophe.isTagEqual(elem,this.name)||this.type&&elem.getAttribute("type")!=this.type||this.id&&elem.getAttribute("id")!=this.id||this.from&&from!=this.from?!1:!0},run:function(elem){var result=null;try{result=this.handler(elem)}catch(e){throw e.sourceURL?Strophe.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message):e.fileName?("undefined"!=typeof console&&(console.trace(),console.error(this.handler," - error - ",e,e.message)),Strophe.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message)):Strophe.fatal("error: "+e.message+"\n"+e.stack),e}return result},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},Strophe.TimedHandler=function(period,handler){this.period=period,this.handler=handler,this.lastCalled=(new Date).getTime(),this.user=!0},Strophe.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+")}"}},Strophe.Connection=function(service,options){this.service=service,this.options=options||{};var proto=this.options.protocol||"";0===service.indexOf("ws:")||0===service.indexOf("wss:")||0===proto.indexOf("ws")?this._proto=new Strophe.Websocket(this):this._proto=new Strophe.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.errors=0,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 k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k],F=function(){};F.prototype=ptype,this[k]=new F,this[k].init(this)}},Strophe.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.errors=0,this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(suffix){return"string"==typeof suffix||"number"==typeof suffix?++this._uniqueId+":"+suffix:++this._uniqueId+""},connect:function(jid,pass,callback,wait,hold,route){this.jid=jid,this.authzid=Strophe.getBareJidFromJid(this.jid),this.authcid=Strophe.getNodeFromJid(this.jid),this.pass=pass,this.servtype="xmpp",this.connect_callback=callback,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.errors=0,this.domain=Strophe.getDomainFromJid(this.jid),this._changeConnectStatus(Strophe.Status.CONNECTING,null),this._proto._connect(wait,hold,route)},attach:function(jid,sid,rid,callback,wait,hold,wind){this._proto._attach(jid,sid,rid,callback,wait,hold,wind)},xmlInput:function(elem){},xmlOutput:function(elem){},rawInput:function(data){},rawOutput:function(data){},send:function(elem){if(null!==elem){if("function"==typeof elem.sort)for(var i=0;i<elem.length;i++)this._queueData(elem[i]);else"function"==typeof elem.tree?this._queueData(elem.tree()):this._queueData(elem);this._proto._send()}},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(elem,callback,errback,timeout){var timeoutHandler=null,that=this;"function"==typeof elem.tree&&(elem=elem.tree());var id=elem.getAttribute("id");id||(id=this.getUniqueId("sendIQ"),elem.setAttribute("id",id));var handler=this.addHandler(function(stanza){timeoutHandler&&that.deleteTimedHandler(timeoutHandler);var iqtype=stanza.getAttribute("type");if("result"==iqtype)callback&&callback(stanza);else{if("error"!=iqtype)throw{name:"StropheError",message:"Got bad IQ type of "+iqtype};errback&&errback(stanza)}},null,"iq",null,id);return timeout&&(timeoutHandler=this.addTimedHandler(timeout,function(){return that.deleteHandler(handler),errback&&errback(null),!1})),this.send(elem),id},_queueData:function(element){if(null===element||!element.tagName||!element.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(element)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return this.addTimeds.push(thand),thand},deleteTimedHandler:function(handRef){this.removeTimeds.push(handRef)},addHandler:function(handler,ns,name,type,id,from,options){var hand=new Strophe.Handler(handler,ns,name,type,id,from,options);return this.addHandlers.push(hand),hand},deleteHandler:function(handRef){this.removeHandlers.push(handRef)},disconnect:function(reason){if(this._changeConnectStatus(Strophe.Status.DISCONNECTING,reason),Strophe.info("Disconnect was called because: "+reason),this.connected){var pres=!1;this.disconnecting=!0,this.authenticated&&(pres=$pres({xmlns:Strophe.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(pres)}},_changeConnectStatus:function(status,condition){for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var plugin=this[k];if(plugin.statusChanged)try{plugin.statusChanged(status,condition)}catch(err){Strophe.error(""+k+" plugin caused an exception changing status: "+err)}}if(this.connect_callback)try{this.connect_callback(status,condition)}catch(e){Strophe.error("User connection callback caused an exception: "+e)}},_doDisconnect:function(){null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),Strophe.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(Strophe.Status.DISCONNECTED,null),this.connected=!1},_dataRecv:function(req,raw){Strophe.info("_dataRecv called");var elem=this._proto._reqToData(req);if(null!==elem){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(elem.nodeName===this._proto.strip&&elem.childNodes.length?this.xmlInput(elem.childNodes[0]):this.xmlInput(elem)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(elem)));for(var i,hand;this.removeHandlers.length>0;)hand=this.removeHandlers.pop(),i=this.handlers.indexOf(hand),i>=0&&this.handlers.splice(i,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();var cond,conflict,typ=elem.getAttribute("type");if(null!==typ&&"terminate"==typ){if(this.disconnecting)return;return cond=elem.getAttribute("condition"),conflict=elem.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),void this.disconnect("unknown stream-error")}var that=this;Strophe.forEachChild(elem,null,function(child){var i,newList;for(newList=that.handlers,that.handlers=[],i=0;i<newList.length;i++){var hand=newList[i];try{!hand.isMatch(child)||!that.authenticated&&hand.user?that.handlers.push(hand):hand.run(child)&&that.handlers.push(hand)}catch(e){Strophe.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}}})}},mechanisms:{},_connect_cb:function(req,_callback,raw){Strophe.info("_connect_cb was called"),this.connected=!0;var bodyWrap=this._proto._reqToData(req);if(bodyWrap){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(bodyWrap.nodeName===this._proto.strip&&bodyWrap.childNodes.length?this.xmlInput(bodyWrap.childNodes[0]):this.xmlInput(bodyWrap)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(bodyWrap)));var conncheck=this._proto._connect_cb(bodyWrap);if(conncheck!==Strophe.Status.CONNFAIL){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 hasFeatures=bodyWrap.getElementsByTagName("stream:features").length>0;hasFeatures||(hasFeatures=bodyWrap.getElementsByTagName("features").length>0);var i,mech,mechanisms=bodyWrap.getElementsByTagName("mechanism"),matched=[],found_authentication=!1;if(!hasFeatures)return void this._proto._no_auth_received(_callback);if(mechanisms.length>0)for(i=0;i<mechanisms.length;i++)mech=Strophe.getText(mechanisms[i]),this.mechanisms[mech]&&matched.push(this.mechanisms[mech]);return this._authentication.legacy_auth=bodyWrap.getElementsByTagName("auth").length>0,(found_authentication=this._authentication.legacy_auth||matched.length>0)?void(this.do_authentication!==!1&&this.authenticate(matched)):void this._proto._no_auth_received(_callback)}}},authenticate:function(matched){var i;for(i=0;i<matched.length-1;++i){for(var higher=i,j=i+1;j<matched.length;++j)matched[j].prototype.priority>matched[higher].prototype.priority&&(higher=j);if(higher!=i){var swap=matched[i];matched[i]=matched[higher],matched[higher]=swap}}var mechanism_found=!1;for(i=0;i<matched.length;++i)if(matched[i].test(this)){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 matched[i],this._sasl_mechanism.onStart(this);var request_auth_exchange=$build("auth",{xmlns:Strophe.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var response=this._sasl_mechanism.onChallenge(this,null);request_auth_exchange.t(Base64.encode(response))}this.send(request_auth_exchange.tree()),mechanism_found=!0;break}mechanism_found||(null===Strophe.getNodeFromJid(this.jid)?(this._changeConnectStatus(Strophe.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(Strophe.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send($iq({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(elem){var challenge=Base64.decode(Strophe.getText(elem)),response=this._sasl_mechanism.onChallenge(this,challenge),stanza=$build("response",{xmlns:Strophe.NS.SASL});return""!==response&&stanza.t(Base64.encode(response)),this.send(stanza.tree()),!0},_auth1_cb:function(elem){var iq=$iq({type:"set",id:"_auth_2"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return Strophe.getResourceFromJid(this.jid)||(this.jid=Strophe.getBareJidFromJid(this.jid)+"/strophe"),iq.up().c("resource",{}).t(Strophe.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(iq.tree()),!1},_sasl_success_cb:function(elem){if(this._sasl_data["server-signature"]){var serverSignature,success=Base64.decode(Strophe.getText(elem)),attribMatch=/([a-z]+)=([^,]+)(,|$)/,matches=success.match(attribMatch);if("v"==matches[1]&&(serverSignature=matches[2]),serverSignature!=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)}return Strophe.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),this._addSysHandler(this._sasl_auth1_cb.bind(this),null,"stream:features",null,null),this._sendRestart(),!1},_sasl_auth1_cb:function(elem){this.features=elem;var i,child;for(i=0;i<elem.childNodes.length;i++)child=elem.childNodes[i],"bind"==child.nodeName&&(this.do_bind=!0),"session"==child.nodeName&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var resource=Strophe.getResourceFromJid(this.jid);return resource?this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).c("resource",{}).t(resource).tree()):this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).tree()),!1},_sasl_bind_cb:function(elem){if("error"==elem.getAttribute("type")){Strophe.info("SASL binding failed.");var condition,conflict=elem.getElementsByTagName("conflict");return conflict.length>0&&(condition="conflict"),this._changeConnectStatus(Strophe.Status.AUTHFAIL,condition),!1}var jidNode,bind=elem.getElementsByTagName("bind");return bind.length>0?(jidNode=bind[0].getElementsByTagName("jid"),void(jidNode.length>0&&(this.jid=Strophe.getText(jidNode[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send($iq({type:"set",id:"_session_auth_2"}).c("session",{xmlns:Strophe.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null))))):(Strophe.info("SASL binding failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1)},_sasl_session_cb:function(elem){if("result"==elem.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null);else if("error"==elem.getAttribute("type"))return Strophe.info("Session creation failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(elem){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(Strophe.Status.AUTHFAIL,null),!1},_auth2_cb:function(elem){return"result"==elem.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null)):"error"==elem.getAttribute("type")&&(this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return thand.user=!1,this.addTimeds.push(thand),thand},_addSysHandler:function(handler,ns,name,type,id){var hand=new Strophe.Handler(handler,ns,name,type,id);return hand.user=!1,this.addHandlers.push(hand),hand},_onDisconnectTimeout:function(){return Strophe.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var i,thand,since,newList;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)thand=this.removeTimeds.pop(),i=this.timedHandlers.indexOf(thand),i>=0&&this.timedHandlers.splice(i,1);var now=(new Date).getTime();for(newList=[],i=0;i<this.timedHandlers.length;i++)thand=this.timedHandlers[i],(this.authenticated||!thand.user)&&(since=thand.lastCalled+thand.period,0>=since-now?thand.run()&&newList.push(thand):newList.push(thand));this.timedHandlers=newList,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},callback&&callback(Strophe,$build,$msg,$iq,$pres),Strophe.SASLMechanism=function(name,isClientFirst,priority){this.name=name,this.isClientFirst=isClientFirst,this.priority=priority},Strophe.SASLMechanism.prototype={test:function(connection){return!0},onStart:function(connection){this._connection=connection},onChallenge:function(connection,challenge){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},Strophe.SASLAnonymous=function(){},Strophe.SASLAnonymous.prototype=new Strophe.SASLMechanism("ANONYMOUS",!1,10),Strophe.SASLAnonymous.test=function(connection){return null===connection.authcid},Strophe.Connection.prototype.mechanisms[Strophe.SASLAnonymous.prototype.name]=Strophe.SASLAnonymous,Strophe.SASLPlain=function(){},Strophe.SASLPlain.prototype=new Strophe.SASLMechanism("PLAIN",!0,20),Strophe.SASLPlain.test=function(connection){return null!==connection.authcid},Strophe.SASLPlain.prototype.onChallenge=function(connection){var auth_str=connection.authzid;return auth_str+="\x00",auth_str+=connection.authcid,auth_str+="\x00",auth_str+=connection.pass},Strophe.Connection.prototype.mechanisms[Strophe.SASLPlain.prototype.name]=Strophe.SASLPlain,Strophe.SASLSHA1=function(){},Strophe.SASLSHA1.prototype=new Strophe.SASLMechanism("SCRAM-SHA-1",!0,40),Strophe.SASLSHA1.test=function(connection){return null!==connection.authcid},Strophe.SASLSHA1.prototype.onChallenge=function(connection,challenge,test_cnonce){var cnonce=test_cnonce||MD5.hexdigest(1234567890*Math.random()),auth_str="n="+connection.authcid;return auth_str+=",r=",auth_str+=cnonce,connection._sasl_data.cnonce=cnonce,connection._sasl_data["client-first-message-bare"]=auth_str,auth_str="n,,"+auth_str,this.onChallenge=function(connection,challenge){for(var nonce,salt,iter,Hi,U,U_old,i,k,clientKey,serverKey,clientSignature,responseText="c=biws,",authMessage=connection._sasl_data["client-first-message-bare"]+","+challenge+",",cnonce=connection._sasl_data.cnonce,attribMatch=/([a-z]+)=([^,]+)(,|$)/;challenge.match(attribMatch);){var matches=challenge.match(attribMatch);switch(challenge=challenge.replace(matches[0],""),matches[1]){case"r":nonce=matches[2];break;case"s":salt=matches[2];break;case"i":iter=matches[2]}}if(nonce.substr(0,cnonce.length)!==cnonce)return connection._sasl_data={},connection._sasl_failure_cb();for(responseText+="r="+nonce,authMessage+=responseText,salt=Base64.decode(salt),salt+="\x00\x00\x00",Hi=U_old=core_hmac_sha1(connection.pass,salt),i=1;iter>i;i++){for(U=core_hmac_sha1(connection.pass,binb2str(U_old)),k=0;5>k;k++)Hi[k]^=U[k];U_old=U}for(Hi=binb2str(Hi),clientKey=core_hmac_sha1(Hi,"Client Key"),serverKey=str_hmac_sha1(Hi,"Server Key"),clientSignature=core_hmac_sha1(str_sha1(binb2str(clientKey)),authMessage),connection._sasl_data["server-signature"]=b64_hmac_sha1(serverKey,authMessage),k=0;5>k;k++)clientKey[k]^=clientSignature[k];return responseText+=",p="+Base64.encode(binb2str(clientKey))}.bind(this),auth_str},Strophe.Connection.prototype.mechanisms[Strophe.SASLSHA1.prototype.name]=Strophe.SASLSHA1,Strophe.SASLMD5=function(){},Strophe.SASLMD5.prototype=new Strophe.SASLMechanism("DIGEST-MD5",!1,30),Strophe.SASLMD5.test=function(connection){return null!==connection.authcid},Strophe.SASLMD5.prototype._quote=function(str){return'"'+str.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},Strophe.SASLMD5.prototype.onChallenge=function(connection,challenge,test_cnonce){for(var matches,attribMatch=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,cnonce=test_cnonce||MD5.hexdigest(""+1234567890*Math.random()),realm="",host=null,nonce="",qop="";challenge.match(attribMatch);)switch(matches=challenge.match(attribMatch),challenge=challenge.replace(matches[0],""),matches[2]=matches[2].replace(/^"(.+)"$/,"$1"),matches[1]){case"realm":realm=matches[2];break;case"nonce":nonce=matches[2];break;case"qop":qop=matches[2];break;case"host":host=matches[2]}var digest_uri=connection.servtype+"/"+connection.domain;null!==host&&(digest_uri=digest_uri+"/"+host);var A1=MD5.hash(connection.authcid+":"+realm+":"+this._connection.pass)+":"+nonce+":"+cnonce,A2="AUTHENTICATE:"+digest_uri,responseText="";
+return responseText+="charset=utf-8,",responseText+="username="+this._quote(connection.authcid)+",",responseText+="realm="+this._quote(realm)+",",responseText+="nonce="+this._quote(nonce)+",",responseText+="nc=00000001,",responseText+="cnonce="+this._quote(cnonce)+",",responseText+="digest-uri="+this._quote(digest_uri)+",",responseText+="response="+MD5.hexdigest(MD5.hexdigest(A1)+":"+nonce+":00000001:"+cnonce+":auth:"+MD5.hexdigest(A2))+",",responseText+="qop=auth",this.onChallenge=function(){return""}.bind(this),responseText},Strophe.Connection.prototype.mechanisms[Strophe.SASLMD5.prototype.name]=Strophe.SASLMD5}(function(){window.Strophe=arguments[0],window.$build=arguments[1],window.$msg=arguments[2],window.$iq=arguments[3],window.$pres=arguments[4]}),Strophe.Request=function(elem,func,rid,sends){this.id=++Strophe._requestId,this.xmlData=elem,this.data=Strophe.serialize(elem),this.origFunc=func,this.func=func,this.rid=rid,this.date=NaN,this.sends=sends||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var now=new Date;return(now-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var now=new Date;return(now-this.dead)/1e3},this.xhr=this._newXHR()},Strophe.Request.prototype={getResponse:function(){var node=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){if(node=this.xhr.responseXML.documentElement,"parsererror"==node.tagName)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)));return node},_newXHR:function(){var xhr=null;return window.XMLHttpRequest?(xhr=new XMLHttpRequest,xhr.overrideMimeType&&xhr.overrideMimeType("text/xml")):window.ActiveXObject&&(xhr=new ActiveXObject("Microsoft.XMLHTTP")),xhr.onreadystatechange=this.func.bind(null,this),xhr}},Strophe.Bosh=function(connection){this._conn=connection,this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this._requests=[]},Strophe.Bosh.prototype={strip:null,_buildBody:function(){var bodyWrap=$build("body",{rid:this.rid++,xmlns:Strophe.NS.HTTPBIND});return null!==this.sid&&bodyWrap.attrs({sid:this.sid}),bodyWrap},_reset:function(){this.rid=Math.floor(4294967295*Math.random()),this.sid=null,jQuery(document).trigger("ridChange",{rid:this.rid})},_connect:function(wait,hold,route){this.wait=wait||this.wait,this.hold=hold||this.hold;var body=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":Strophe.NS.BOSH});route&&body.attrs({route:route});var _connect_cb=this._conn._connect_cb;this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_connect_cb.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(jid,sid,rid,callback,wait,hold,wind){this._conn.jid=jid,this.sid=sid,this.rid=rid,this._conn.connect_callback=callback,this._conn.domain=Strophe.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=wait||this.wait,this.hold=hold||this.hold,this.window=wind||this.window,this._conn._changeConnectStatus(Strophe.Status.ATTACHED,null)},_connect_cb:function(bodyWrap){var cond,conflict,typ=bodyWrap.getAttribute("type");if(null!==typ&&"terminate"==typ)return Strophe.error("BOSH-Connection failed: "+cond),cond=bodyWrap.getAttribute("condition"),conflict=bodyWrap.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(),Strophe.Status.CONNFAIL;this.sid||(this.sid=bodyWrap.getAttribute("sid"));var wind=bodyWrap.getAttribute("requests");wind&&(this.window=parseInt(wind,10));var hold=bodyWrap.getAttribute("hold");hold&&(this.hold=parseInt(hold,10));var wait=bodyWrap.getAttribute("wait");wait&&(this.wait=parseInt(wait,10))},_disconnect:function(pres){this._sendTerminate(pres)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random()),jQuery(document).trigger("ridChange",{rid:this.rid})},_emptyQueue:function(){return 0===this._requests.length},_hitError:function(reqStatus){this.errors++,Strophe.warn("request errored, status: "+reqStatus+", number of errors: "+this.errors),this.errors>4&&this._onDisconnectTimeout()},_no_auth_received:function(_callback){_callback=_callback?_callback.bind(this._conn):this._conn._connect_cb.bind(this._conn);var body=this._buildBody();this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_callback.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){for(var req;this._requests.length>0;)req=this._requests.pop(),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){}},_onIdle:function(){var data=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===data.length&&!this._conn.disconnecting&&(Strophe.info("no requests during idle cycle, sending blank request"),data.push(null)),this._requests.length<2&&data.length>0&&!this._conn.paused){for(var body=this._buildBody(),i=0;i<data.length;i++)null!==data[i]&&("restart"===data[i]?body.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":Strophe.NS.BOSH}):body.cnode(data[i]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"))),this._processRequest(this._requests.length-1)}if(this._requests.length>0){var time_elapsed=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait)&&(Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}},_onRequestStateChange:function(func,req){if(Strophe.debug("request id "+req.id+"."+req.sends+" state changed to "+req.xhr.readyState),req.abort)return void(req.abort=!1);2==req.xhr.readyState&&jQuery(document).trigger("ridChange",{rid:Number(req.rid)+1});var reqStatus;if(4==req.xhr.readyState){reqStatus=0;try{reqStatus=req.xhr.status}catch(e){}if("undefined"==typeof reqStatus&&(reqStatus=0),this.disconnecting&&reqStatus>=400)return void this._hitError(reqStatus);var reqIs0=this._requests[0]==req,reqIs1=this._requests[1]==req;(reqStatus>0&&500>reqStatus||req.sends>5)&&(this._removeRequest(req),Strophe.debug("request id "+req.id+" should now be removed")),200==reqStatus?((reqIs1||reqIs0&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),Strophe.debug("request id "+req.id+"."+req.sends+" got 200"),func(req),this.errors=0):(Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened"),(0===reqStatus||reqStatus>=400&&600>reqStatus||reqStatus>=12e3)&&(this._hitError(reqStatus),reqStatus>=400&&500>reqStatus&&(this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING,null),this._conn._doDisconnect()))),reqStatus>0&&500>reqStatus||req.sends>5||this._throttledRequestHandler()}},_processRequest:function(i){var self=this,req=this._requests[i],reqStatus=-1;try{4==req.xhr.readyState&&(reqStatus=req.xhr.status)}catch(e){Strophe.error("caught an error in _requests["+i+"], reqStatus: "+reqStatus)}if("undefined"==typeof reqStatus&&(reqStatus=-1),req.sends>this.maxRetries)return void this._onDisconnectTimeout();var time_elapsed=req.age(),primaryTimeout=!isNaN(time_elapsed)&&time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait),secondaryTimeout=null!==req.dead&&req.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait),requestCompletedWithServerError=4==req.xhr.readyState&&(1>reqStatus||reqStatus>=500);if((primaryTimeout||secondaryTimeout||requestCompletedWithServerError)&&(secondaryTimeout&&Strophe.error("Request "+this._requests[i].id+" timed out (secondary), restarting"),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){},this._requests[i]=new Strophe.Request(req.xmlData,req.origFunc,req.rid,req.sends),req=this._requests[i]),0===req.xhr.readyState){Strophe.debug("request id "+req.id+"."+req.sends+" posting");try{req.xhr.open("POST",this._conn.service,this._conn.options.sync?!1:!0)}catch(e2){return Strophe.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var sendFunc=function(){if(req.date=new Date,self._conn.options.customHeaders){var headers=self._conn.options.customHeaders;for(var header in headers)headers.hasOwnProperty(header)&&req.xhr.setRequestHeader(header,headers[header])}req.xhr.send(req.data)};if(req.sends>1){var backoff=1e3*Math.min(Math.floor(Strophe.TIMEOUT*this.wait),Math.pow(req.sends,3));setTimeout(sendFunc,backoff)}else sendFunc();req.sends++,this._conn.xmlOutput!==Strophe.Connection.prototype.xmlOutput&&(req.xmlData.nodeName===this.strip&&req.xmlData.childNodes.length?this._conn.xmlOutput(req.xmlData.childNodes[0]):this._conn.xmlOutput(req.xmlData)),this._conn.rawOutput!==Strophe.Connection.prototype.rawOutput&&this._conn.rawOutput(req.data)}else Strophe.debug("_processRequest: "+(0===i?"first":"second")+" request has readyState of "+req.xhr.readyState)},_removeRequest:function(req){Strophe.debug("removing request");var i;for(i=this._requests.length-1;i>=0;i--)req==this._requests[i]&&this._requests.splice(i,1);req.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(i){var req=this._requests[i];null===req.dead&&(req.dead=new Date),this._processRequest(i)},_reqToData:function(req){try{return req.getResponse()}catch(e){if("parsererror"!=e)throw e;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(pres){Strophe.info("_sendTerminate was called");var body=this._buildBody().attrs({type:"terminate"});pres&&body.cnode(pres.tree());var req=new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"));this._requests.push(req),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?Strophe.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):Strophe.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(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))}},Strophe.Websocket=function(connection){this._conn=connection,this.strip="stream:stream";var service=connection.service;if(0!==service.indexOf("ws:")&&0!==service.indexOf("wss:")){var new_service="";new_service+="ws"===connection.options.protocol&&"https:"!==window.location.protocol?"ws":"wss",new_service+="://"+window.location.host,new_service+=0!==service.indexOf("/")?window.location.pathname+service:service,connection.service=new_service}},Strophe.Websocket.prototype={_buildStream:function(){return $build("stream:stream",{to:this._conn.domain,xmlns:Strophe.NS.CLIENT,"xmlns:stream":Strophe.NS.STREAM,version:"1.0"})},_check_streamerror:function(bodyWrap,connectstatus){var errors=bodyWrap.getElementsByTagName("stream:error");if(0===errors.length)return!1;for(var error=errors[0],condition="",text="",ns="urn:ietf:params:xml:ns:xmpp-streams",i=0;i<error.childNodes.length;i++){var e=error.childNodes[i];if(e.getAttribute("xmlns")!==ns)break;"text"===e.nodeName?text=e.textContent:condition=e.nodeName}var errorString="WebSocket stream error: ";return errorString+=condition?condition:"unknown",text&&(errorString+=" - "+condition),Strophe.error(errorString),this._conn._changeConnectStatus(connectstatus,condition),this._conn._doDisconnect(),!0},_reset:function(){},_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(bodyWrap){var error=this._check_streamerror(bodyWrap,Strophe.Status.CONNFAIL);return error?Strophe.Status.CONNFAIL:void 0},_handleStreamStart:function(message){var error=!1,ns=message.getAttribute("xmlns");"string"!=typeof ns?error="Missing xmlns in stream:stream":ns!==Strophe.NS.CLIENT&&(error="Wrong xmlns in stream:stream: "+ns);var ns_stream=message.namespaceURI;"string"!=typeof ns_stream?error="Missing xmlns:stream in stream:stream":ns_stream!==Strophe.NS.STREAM&&(error="Wrong xmlns:stream in stream:stream: "+ns_stream);var ver=message.getAttribute("version");return"string"!=typeof ver?error="Missing version in stream:stream":"1.0"!==ver&&(error="Wrong version in stream:stream: "+ver),error?(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,error),this._conn._doDisconnect(),!1):!0},_connect_cb_wrapper:function(message){if(0===message.data.indexOf("<stream:stream ")||0===message.data.indexOf("<?xml")){var data=message.data.replace(/^(<\?.*?\?>\s*)*/,"");if(""===data)return;data=message.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>");var streamStart=(new DOMParser).parseFromString(data,"text/xml").documentElement;this._conn.xmlInput(streamStart),this._conn.rawInput(message.data),this._handleStreamStart(streamStart)&&(this._connect_cb(streamStart),this.streamStart=message.data.replace(/^<stream:(.*)\/>$/,"<stream:$1>"))}else{if("</stream:stream>"===message.data)return this._conn.rawInput(message.data),this._conn.xmlInput(document.createElement("stream:stream")),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Received closing stream"),void this._conn._doDisconnect();var string=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(string,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(elem,null,message.data)}},_disconnect:function(pres){if(this.socket.readyState!==WebSocket.CLOSED){pres&&this._conn.send(pres);var close="</stream:stream>";this._conn.xmlOutput(document.createElement("stream:stream")),this._conn.rawOutput(close);try{this.socket.send(close)}catch(e){Strophe.info("Couldn't send closing stream tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){Strophe.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(stanza){return this.streamStart+stanza+"</stream:stream>"},_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?(Strophe.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):Strophe.info("Websocket closed")},_no_auth_received:function(_callback){Strophe.error("Server did not send any auth methods"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Server did not send any auth methods"),_callback&&(_callback=_callback.bind(this._conn))(),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_onError:function(error){Strophe.error("Websocket error "+error),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var data=this._conn._data;if(data.length>0&&!this._conn.paused){for(var i=0;i<data.length;i++)if(null!==data[i]){var stanza,rawStanza;"restart"===data[i]?(stanza=this._buildStream(),rawStanza=this._removeClosingTag(stanza),stanza=stanza.tree()):(stanza=data[i],rawStanza=Strophe.serialize(stanza)),this._conn.xmlOutput(stanza),this._conn.rawOutput(rawStanza),this.socket.send(rawStanza)}this._conn._data=[]}},_onMessage:function(message){var elem,data;if("</stream:stream>"===message.data){var close="</stream:stream>";return this._conn.rawInput(close),this._conn.xmlInput(document.createElement("stream:stream")),void(this._conn.disconnecting||this._conn._doDisconnect())}if(0===message.data.search("<stream:stream ")){if(data=message.data.replace(/<stream:stream (.*[^\/])>/,"<stream:stream $1/>"),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement,!this._handleStreamStart(elem))return}else data=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement;if(!this._check_streamerror(elem,Strophe.Status.ERROR))return this._conn.disconnecting&&"presence"===elem.firstChild.nodeName&&"unavailable"===elem.firstChild.getAttribute("type")?(this._conn.xmlInput(elem),void this._conn.rawInput(Strophe.serialize(elem))):void this._conn._dataRecv(elem,message.data)},_onOpen:function(){Strophe.info("Websocket open");var start=this._buildStream();this._conn.xmlOutput(start.tree());var startString=this._removeClosingTag(start);this._conn.rawOutput(startString),this.socket.send(startString)},_removeClosingTag:function(elem){var string=Strophe.serialize(elem);return string=string.replace(/<(stream:stream .*[^\/])\/>$/,"<$1>")},_reqToData:function(stanza){return stanza},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}};/*!
* Source: lib/strophe.muc.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
*/
var Occupant,RoomConfig,XmppRoom,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Strophe.addConnectionPlugin("muc",{_connection:null,rooms:{},roomNames:[],init:function(conn){return this._connection=conn,this._muc_handler=null,Strophe.addNamespace("MUC_OWNER",Strophe.NS.MUC+"#owner"),Strophe.addNamespace("MUC_ADMIN",Strophe.NS.MUC+"#admin"),Strophe.addNamespace("MUC_USER",Strophe.NS.MUC+"#user"),Strophe.addNamespace("MUC_ROOMCONF",Strophe.NS.MUC+"#roomconfig")},join:function(room,nick,msg_handler_cb,pres_handler_cb,roster_cb,password,history_attrs,extended_presence){var msg,room_nick,_ref,_this=this;return room_nick=this.test_append_nick(room,nick),msg=$pres({from:this._connection.jid,to:room_nick}).c("x",{xmlns:Strophe.NS.MUC}),null!=history_attrs&&(msg=msg.c("history",history_attrs).up()),null!=password&&msg.cnode(Strophe.xmlElement("password",[],password)),null!=extended_presence&&msg.up().cnode(extended_presence),null==(_ref=this._muc_handler)&&(this._muc_handler=this._connection.addHandler(function(stanza){var from,handler,handlers,id,roomname,x,xmlns,xquery,_i,_len;if(from=stanza.getAttribute("from"),!from)return!0;if(roomname=from.split("/")[0],!_this.rooms[roomname])return!0;if(room=_this.rooms[roomname],handlers={},"message"===stanza.nodeName)handlers=room._message_handlers;else if("presence"===stanza.nodeName&&(xquery=stanza.getElementsByTagName("x"),xquery.length>0))for(_i=0,_len=xquery.length;_len>_i;_i++)if(x=xquery[_i],xmlns=x.getAttribute("xmlns"),xmlns&&xmlns.match(Strophe.NS.MUC)){handlers=room._presence_handlers;break}for(id in handlers)handler=handlers[id],handler(stanza,room)||delete handlers[id];return!0})),this.rooms.hasOwnProperty(room)||(this.rooms[room]=new XmppRoom(this,room,nick,password),this.roomNames.push(room)),pres_handler_cb&&this.rooms[room].addHandler("presence",pres_handler_cb),msg_handler_cb&&this.rooms[room].addHandler("message",msg_handler_cb),roster_cb&&this.rooms[room].addHandler("roster",roster_cb),this._connection.send(msg)},leave:function(room,nick,handler_cb,exit_msg){var id,presence,presenceid,room_nick;return id=this.roomNames.indexOf(room),delete this.rooms[room],id>=0&&(this.roomNames.splice(id,1),0===this.roomNames.length&&(this._connection.deleteHandler(this._muc_handler),this._muc_handler=null)),room_nick=this.test_append_nick(room,nick),presenceid=this._connection.getUniqueId(),presence=$pres({type:"unavailable",id:presenceid,from:this._connection.jid,to:room_nick}),null!=exit_msg&&presence.c("status",exit_msg),null!=handler_cb&&this._connection.addHandler(handler_cb,null,"presence",null,presenceid),this._connection.send(presence),presenceid},message:function(room,nick,message,html_message,type){var msg,msgid,parent,room_nick;return room_nick=this.test_append_nick(room,nick),type=type||(null!=nick?"chat":"groupchat"),msgid=this._connection.getUniqueId(),msg=$msg({to:room_nick,from:this._connection.jid,type:type,id:msgid}).c("body",{xmlns:Strophe.NS.CLIENT}).t(message),msg.up(),null!=html_message&&(msg.c("html",{xmlns:Strophe.NS.XHTML_IM}).c("body",{xmlns:Strophe.NS.XHTML}).t(html_message),0===msg.node.childNodes.length?(parent=msg.node.parentNode,msg.up().up(),msg.node.removeChild(parent)):msg.up().up()),msg.c("x",{xmlns:"jabber:x:event"}).c("composing"),this._connection.send(msg),msgid},groupchat:function(room,message,html_message){return this.message(room,null,message,html_message)},invite:function(room,receiver,reason){var invitation,msgid;return msgid=this._connection.getUniqueId(),invitation=$msg({from:this._connection.jid,to:room,id:msgid}).c("x",{xmlns:Strophe.NS.MUC_USER}).c("invite",{to:receiver}),null!=reason&&invitation.c("reason",reason),this._connection.send(invitation),msgid},directInvite:function(room,receiver,reason,password){var attrs,invitation,msgid;return msgid=this._connection.getUniqueId(),attrs={xmlns:"jabber:x:conference",jid:room},null!=reason&&(attrs.reason=reason),null!=password&&(attrs.password=password),invitation=$msg({from:this._connection.jid,to:receiver,id:msgid}).c("x",attrs),this._connection.send(invitation),msgid},queryOccupants:function(room,success_cb,error_cb){var attrs,info;return attrs={xmlns:Strophe.NS.DISCO_ITEMS},info=$iq({from:this._connection.jid,to:room,type:"get"}).c("query",attrs),this._connection.sendIQ(info,success_cb,error_cb)},configure:function(room,handler_cb,error_cb){var config,stanza;return config=$iq({to:room,type:"get"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),stanza=config.tree(),this._connection.sendIQ(stanza,handler_cb,error_cb)},cancelConfigure:function(room){var config,stanza;return config=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"cancel"}),stanza=config.tree(),this._connection.sendIQ(stanza)},saveConfiguration:function(room,config,success_cb,error_cb){var conf,iq,stanza,_i,_len;if(iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),Strophe.x&&config instanceof Strophe.x.Form)config.type="submit",iq.cnode(config.toXML());else for(iq.c("x",{xmlns:"jabber:x:data",type:"submit"}),_i=0,_len=config.length;_len>_i;_i++)conf=config[_i],iq.cnode(conf).up();return stanza=iq.tree(),this._connection.sendIQ(stanza,success_cb,error_cb)},createInstantRoom:function(room,success_cb,error_cb){var roomiq;return roomiq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"submit"}),this._connection.sendIQ(roomiq.tree(),success_cb,error_cb)},setTopic:function(room,topic){var msg;return msg=$msg({to:room,from:this._connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(topic),this._connection.send(msg.tree())},_modifyPrivilege:function(room,item,reason,handler_cb,error_cb){var iq;return iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_ADMIN}).cnode(item.node),null!=reason&&iq.c("reason",reason),this._connection.sendIQ(iq.tree(),handler_cb,error_cb)},modifyRole:function(room,nick,role,reason,handler_cb,error_cb){var item;return item=$build("item",{nick:nick,role:role}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},kick:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"none",reason,handler_cb,error_cb)},voice:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},mute:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"visitor",reason,handler_cb,error_cb)},op:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"moderator",reason,handler_cb,error_cb)},deop:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},modifyAffiliation:function(room,jid,affiliation,reason,handler_cb,error_cb){var item;return item=$build("item",{jid:jid,affiliation:affiliation}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},ban:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"outcast",reason,handler_cb,error_cb)},member:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"member",reason,handler_cb,error_cb)},revoke:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"none",reason,handler_cb,error_cb)},owner:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"owner",reason,handler_cb,error_cb)},admin:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"admin",reason,handler_cb,error_cb)},changeNick:function(room,user){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick,id:this._connection.getUniqueId()}),this._connection.send(presence.tree())},setStatus:function(room,user,show,status){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick}),null!=show&&presence.c("show",show).up(),null!=status&&presence.c("status",status),this._connection.send(presence.tree())},listRooms:function(server,handle_cb,error_cb){var iq;return iq=$iq({to:server,from:this._connection.jid,type:"get"}).c("query",{xmlns:Strophe.NS.DISCO_ITEMS}),this._connection.sendIQ(iq,handle_cb,error_cb)},test_append_nick:function(room,nick){return room+(null!=nick?"/"+Strophe.escapeNode(nick):"")}}),XmppRoom=function(){function XmppRoom(client,name,nick,password){this.client=client,this.name=name,this.nick=nick,this.password=password,this._roomRosterHandler=__bind(this._roomRosterHandler,this),this._addOccupant=__bind(this._addOccupant,this),this.roster={},this._message_handlers={},this._presence_handlers={},this._roster_handlers={},this._handler_ids=0,client.muc&&(this.client=client.muc),this.name=Strophe.getBareJidFromJid(name),this.addHandler("presence",this._roomRosterHandler)}return XmppRoom.prototype.join=function(msg_handler_cb,pres_handler_cb,roster_cb){return this.client.join(this.name,this.nick,msg_handler_cb,pres_handler_cb,roster_cb,this.password)},XmppRoom.prototype.leave=function(handler_cb,message){return this.client.leave(this.name,this.nick,handler_cb,message),delete this.client.rooms[this.name]},XmppRoom.prototype.message=function(nick,message,html_message,type){return this.client.message(this.name,nick,message,html_message,type)},XmppRoom.prototype.groupchat=function(message,html_message){return this.client.groupchat(this.name,message,html_message)},XmppRoom.prototype.invite=function(receiver,reason){return this.client.invite(this.name,receiver,reason)},XmppRoom.prototype.directInvite=function(receiver,reason){return this.client.directInvite(this.name,receiver,reason,this.password)},XmppRoom.prototype.configure=function(handler_cb){return this.client.configure(this.name,handler_cb)},XmppRoom.prototype.cancelConfigure=function(){return this.client.cancelConfigure(this.name)},XmppRoom.prototype.saveConfiguration=function(config){return this.client.saveConfiguration(this.name,config)},XmppRoom.prototype.queryOccupants=function(success_cb,error_cb){return this.client.queryOccupants(this.name,success_cb,error_cb)},XmppRoom.prototype.setTopic=function(topic){return this.client.setTopic(this.name,topic)},XmppRoom.prototype.modifyRole=function(nick,role,reason,success_cb,error_cb){return this.client.modifyRole(this.name,nick,role,reason,success_cb,error_cb)},XmppRoom.prototype.kick=function(nick,reason,handler_cb,error_cb){return this.client.kick(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.voice=function(nick,reason,handler_cb,error_cb){return this.client.voice(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.mute=function(nick,reason,handler_cb,error_cb){return this.client.mute(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.op=function(nick,reason,handler_cb,error_cb){return this.client.op(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.deop=function(nick,reason,handler_cb,error_cb){return this.client.deop(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.modifyAffiliation=function(jid,affiliation,reason,success_cb,error_cb){return this.client.modifyAffiliation(this.name,jid,affiliation,reason,success_cb,error_cb)},XmppRoom.prototype.ban=function(jid,reason,handler_cb,error_cb){return this.client.ban(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.member=function(jid,reason,handler_cb,error_cb){return this.client.member(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.revoke=function(jid,reason,handler_cb,error_cb){return this.client.revoke(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.owner=function(jid,reason,handler_cb,error_cb){return this.client.owner(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.admin=function(jid,reason,handler_cb,error_cb){return this.client.admin(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.changeNick=function(nick){return this.nick=nick,this.client.changeNick(this.name,nick)},XmppRoom.prototype.setStatus=function(show,status){return this.client.setStatus(this.name,this.nick,show,status)},XmppRoom.prototype.addHandler=function(handler_type,handler){var id;switch(id=this._handler_ids++,handler_type){case"presence":this._presence_handlers[id]=handler;break;case"message":this._message_handlers[id]=handler;break;case"roster":this._roster_handlers[id]=handler;break;default:return this._handler_ids--,null}return id},XmppRoom.prototype.removeHandler=function(id){return delete this._presence_handlers[id],delete this._message_handlers[id],delete this._roster_handlers[id]},XmppRoom.prototype._addOccupant=function(data){var occ;return occ=new Occupant(data,this),this.roster[occ.nick]=occ,occ},XmppRoom.prototype._roomRosterHandler=function(pres){var data,handler,id,newnick,nick,_ref;switch(data=XmppRoom._parsePresence(pres),nick=data.nick,newnick=data.newnick||null,data.type){case"error":return;case"unavailable":newnick&&(data.nick=newnick,this.roster[nick]&&this.roster[newnick]&&(this.roster[nick].update(this.roster[newnick]),this.roster[newnick]=this.roster[nick]),this.roster[nick]&&!this.roster[newnick]&&(this.roster[newnick]=this.roster[nick].update(data))),delete this.roster[nick];break;default:this.roster[nick]?this.roster[nick].update(data):this._addOccupant(data)}_ref=this._roster_handlers;for(id in _ref)handler=_ref[id],handler(this.roster,this)||delete this._roster_handlers[id];return!0},XmppRoom._parsePresence=function(pres){var a,c,c2,data,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4,_ref5,_ref6,_ref7;for(data={},a=pres.attributes,data.nick=Strophe.getResourceFromJid(a.from.textContent),data.type=(null!=(_ref=a.type)?_ref.textContent:void 0)||null,data.states=[],_ref1=pres.childNodes,_i=0,_len=_ref1.length;_len>_i;_i++)switch(c=_ref1[_i],c.nodeName){case"status":data.status=c.textContent||null;break;case"show":data.show=c.textContent||null;break;case"x":if(a=c.attributes,(null!=(_ref2=a.xmlns)?_ref2.textContent:void 0)===Strophe.NS.MUC_USER)for(_ref3=c.childNodes,_j=0,_len1=_ref3.length;_len1>_j;_j++)switch(c2=_ref3[_j],c2.nodeName){case"item":a=c2.attributes,data.affiliation=(null!=(_ref4=a.affiliation)?_ref4.textContent:void 0)||null,data.role=(null!=(_ref5=a.role)?_ref5.textContent:void 0)||null,data.jid=(null!=(_ref6=a.jid)?_ref6.textContent:void 0)||null,data.newnick=(null!=(_ref7=a.nick)?_ref7.textContent:void 0)||null;break;case"status":c2.attributes.code&&data.states.push(c2.attributes.code.textContent)}}return data},XmppRoom}(),RoomConfig=function(){function RoomConfig(info){this.parse=__bind(this.parse,this),null!=info&&this.parse(info)}return RoomConfig.prototype.parse=function(result){var attr,attrs,child,field,identity,query,_i,_j,_k,_len,_len1,_len2,_ref;for(query=result.getElementsByTagName("query")[0].childNodes,this.identities=[],this.features=[],this.x=[],_i=0,_len=query.length;_len>_i;_i++)switch(child=query[_i],attrs=child.attributes,child.nodeName){case"identity":for(identity={},_j=0,_len1=attrs.length;_len1>_j;_j++)attr=attrs[_j],identity[attr.name]=attr.textContent;this.identities.push(identity);break;case"feature":this.features.push(attrs["var"].textContent);break;case"x":if(attrs=child.childNodes[0].attributes,"FORM_TYPE"===!attrs["var"].textContent||"hidden"===!attrs.type.textContent)break;for(_ref=child.childNodes,_k=0,_len2=_ref.length;_len2>_k;_k++)field=_ref[_k],field.attributes.type||(attrs=field.attributes,this.x.push({"var":attrs["var"].textContent,label:attrs.label.textContent||"",value:field.firstChild.textContent||""}))}return{identities:this.identities,features:this.features,x:this.x}},RoomConfig}(),Occupant=function(){function Occupant(data,room){this.room=room,this.update=__bind(this.update,this),this.admin=__bind(this.admin,this),this.owner=__bind(this.owner,this),this.revoke=__bind(this.revoke,this),this.member=__bind(this.member,this),this.ban=__bind(this.ban,this),this.modifyAffiliation=__bind(this.modifyAffiliation,this),this.deop=__bind(this.deop,this),this.op=__bind(this.op,this),this.mute=__bind(this.mute,this),this.voice=__bind(this.voice,this),this.kick=__bind(this.kick,this),this.modifyRole=__bind(this.modifyRole,this),this.update(data)}return Occupant.prototype.modifyRole=function(role,reason,success_cb,error_cb){return this.room.modifyRole(this.nick,role,reason,success_cb,error_cb)},Occupant.prototype.kick=function(reason,handler_cb,error_cb){return this.room.kick(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.voice=function(reason,handler_cb,error_cb){return this.room.voice(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.mute=function(reason,handler_cb,error_cb){return this.room.mute(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.op=function(reason,handler_cb,error_cb){return this.room.op(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.deop=function(reason,handler_cb,error_cb){return this.room.deop(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.modifyAffiliation=function(affiliation,reason,success_cb,error_cb){return this.room.modifyAffiliation(this.jid,affiliation,reason,success_cb,error_cb)},Occupant.prototype.ban=function(reason,handler_cb,error_cb){return this.room.ban(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.member=function(reason,handler_cb,error_cb){return this.room.member(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.revoke=function(reason,handler_cb,error_cb){return this.room.revoke(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.owner=function(reason,handler_cb,error_cb){return this.room.owner(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.admin=function(reason,handler_cb,error_cb){return this.room.admin(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.update=function(data){return this.nick=data.nick||null,this.affiliation=data.affiliation||null,this.role=data.role||null,this.jid=data.jid||null,this.status=data.status||null,this.show=data.show||null,this},Occupant}(),/*!
@@ -50,13 +50,13 @@ Strophe.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[
function($){Strophe.addConnectionPlugin("caps",{HASH:"sha-1",node:"http://strophe.im/strophejs/",_ver:"",_connection:null,_knownCapabilities:JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{},_jidVerIndex:JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},init:function(conn){if(this._connection=conn,Strophe.addNamespace("CAPS","http://jabber.org/protocol/caps"),!this._connection.disco)throw"Caps plugin requires the disco plugin to be installed.";this._connection.disco.addFeature(Strophe.NS.CAPS),this._connection.addHandler(this._delegateCapabilities.bind(this),Strophe.NS.CAPS)},generateCapsAttrs:function(){return{xmlns:Strophe.NS.CAPS,hash:this.HASH,node:this.node,ver:this.generateVer()}},generateVer:function(){if(""!==this._ver)return this._ver;for(var ver="",identities=this._connection.disco._identities.sort(this._sortIdentities),identitiesLen=identities.length,features=this._connection.disco._features.sort(),featuresLen=features.length,i=0;identitiesLen>i;i++){var curIdent=identities[i];ver+=curIdent.category+"/"+curIdent.type+"/"+curIdent.lang+"/"+curIdent.name+"<"}for(var i=0;featuresLen>i;i++)ver+=features[i]+"<";return this._ver=b64_sha1(ver),this._ver},getCapabilitiesByJid:function(jid){return this._jidVerIndex[jid]?this._knownCapabilities[this._jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature){if(this._jidVerIndex[jid]&&null!==feature&&"undefined"!=typeof feature){$.isArray(feature)||(feature=$.makeArray(feature));var i,knownCapabilities;if(knownCapabilities=this._knownCapabilities[this._jidVerIndex[jid]],!knownCapabilities)return null;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0}return!1},_delegateCapabilities:function(stanza){var from=stanza.getAttribute("from"),c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node");return this._knownCapabilities[ver]?(this._jidVerIndex[from]=ver,this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver),localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!0):this._requestCapabilities(from,node,ver)},_requestCapabilities:function(to,node,ver){if(to!==this._connection.jid){var id=this._connection.disco.info(to,node+"#"+ver);this._connection.addHandler(this._handleDiscoInfoReply.bind(this),Strophe.NS.DISCO_INFO,"iq","result",id,to)}return!0},_handleDiscoInfoReply:function(stanza){var query=stanza.querySelector("query"),from=stanza.getAttribute("from"),node=query.getAttribute("node"),ver=node?node.split("#")[1]:this._jidVerIndex[from];if(this._knownCapabilities[ver])this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver);else{var childNodes=query.childNodes,childNodesLen=childNodes.length;this._knownCapabilities[ver]={features:[],identities:[]};for(var i=0;childNodesLen>i;i++){var node=childNodes[i];"feature"==node.nodeName?this._knownCapabilities[ver].features.push(node.getAttribute("var")):"identity"==node.nodeName?this._knownCapabilities[ver].identities.push(this._attributesToJsObject(node.attributes)):("undefined"==typeof this._knownCapabilities[ver][node.nodeName]&&(this._knownCapabilities[ver][node.nodeName]=[]),this._knownCapabilities[ver][node.nodeName].push(this._attributesToJsObject(node.attributes)))}this._jidVerIndex[from]=ver}return localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),localStorage.setItem("strophe.caps._knownCapabilities",JSON.stringify(this._knownCapabilities)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!1},_attributesToJsObject:function(attr){var obj={};for(i=0;i<attr.length;i++)obj[attr[i].name]=attr[i].value;return obj},_sortIdentities:function(a,b){return a.category>b.category?1:a.category<b.category?-1:a.type>b.type?1:a.type<b.type?-1:a.lang>b.lang?1:a.lang<b.lang?-1:0}})}(jQuery);/*!
* Source: lib/strophe.vcard.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
*/
-var buildIq;buildIq=function(type,jid,vCardEl){var iq;return iq=$iq(jid?{type:type,to:jid}:{type:type}),iq.c("vCard",{xmlns:Strophe.NS.VCARD}),vCardEl&&iq.cnode(vCardEl),iq},Strophe.addConnectionPlugin("vcard",{_connection:null,init:function(conn){return this._connection=conn,Strophe.addNamespace("VCARD","vcard-temp")},get:function(handler_cb,jid,error_cb){var iq;return iq=buildIq("get",jid),this._connection.sendIQ(iq,handler_cb,error_cb)},set:function(handler_cb,vCardEl,jid){var iq;return iq=buildIq("set",jid,vCardEl),this._connection.sendIQ(iq,handler_cb,error_rb)}}),/*!
+var buildIq;buildIq=function(type,jid,vCardEl){var iq;return iq=$iq(jid?{type:type,to:jid}:{type:type}),iq.c("vCard",{xmlns:Strophe.NS.VCARD}),vCardEl&&iq.cnode(vCardEl),iq},Strophe.addConnectionPlugin("vcard",{_connection:null,init:function(conn){return this._connection=conn,Strophe.addNamespace("VCARD","vcard-temp")},get:function(handler_cb,jid,error_cb){var iq;return iq=buildIq("get",jid),this._connection.sendIQ(iq,handler_cb,error_cb)},set:function(handler_cb,vCardEl,jid,error_cb){var iq;return iq=buildIq("set",jid,vCardEl),this._connection.sendIQ(iq,handler_cb,error_rb)}}),/*!
* Source: lib/strophe.bookmarks/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/bookmarks
*/
Strophe.addConnectionPlugin("bookmarks",{init:function(connection){this.connection=connection,Strophe.addNamespace("PRIVATE","jabber:iq:private"),Strophe.addNamespace("BOOKMARKS","storage:bookmarks"),Strophe.addNamespace("PRIVACY","jabber:iq:privacy"),Strophe.addNamespace("DELAY","jabber:x:delay"),Strophe.addNamespace("PUBSUB","http://jabber.org/protocol/pubsub")},createBookmarksNode:function(success,error){return this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("create",{node:"storage:bookmarks"}).up().c("configure").c("x",{xmlns:"jabber:x:data",type:"submit"}).c("field",{"var":"FORM_TYPE",type:"hidden"}).c("value").t("http://jabber.org/protocol/pubsub#node_config").up().up().c("field",{"var":"pubsub#persist_items"}).c("value").t("1").up().up().c("field",{"var":"pubsub#access_model"}).c("value").t("whitelist"),success,error),!0},add:function(roomJid,alias,nick,autojoin,success,error){var conferenceAttr={jid:roomJid,autojoin:autojoin||!1};alias&&(conferenceAttr.name=alias);var stanza=$iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("publish",{node:Strophe.NS.BOOKMARKS}).c("item",{id:roomJid}).c("storage",{xmlns:Strophe.NS.BOOKMARKS}).c("conference",conferenceAttr);nick&&stanza.c("nick").t(nick),this.connection.sendIQ(stanza,success,error)},get:function(success,error){this.connection.sendIQ($iq({type:"get"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("items",{node:Strophe.NS.BOOKMARKS}),success,error)},"delete":function(roomJid,success,error,notify){this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("retract",{node:Strophe.NS.BOOKMARKS,notify:notify||!1}).c("item",{id:roomJid}),success,error)}}),/*!
* Source: lib/strophe.x/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/dataforms
*/
-function(){var $field,$form,$item,$opt,Field,Form,Item,Option,helper,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};helper={fill:function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_len>_i;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},createHtmlFieldCouple:function(f){var div,id;return div=$("<div>"),id="Strophe.x.Field-"+f.type+"-"+f["var"],div.append("<label for='"+id+"'>"+(f.label||"")+"</label>").append($(f.toHTML()).attr("id",id)).append("<br />"),div.children()},getHtmlFields:function(html){return html=$(html),__slice.call(html.find("input")).concat(__slice.call(html.find("select")),__slice.call(html.find("textarea")))}},Form=function(){function Form(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this);var f,i,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3;if(this.fields=[],this.items=[],this.reported=[],opt)if(_ref=opt.type,__indexOf.call(Form._types,_ref)>=0&&(this.type=opt.type),this.title=opt.title,this.instructions=opt.instructions,helper.fill=function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_len>_i;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},opt.fields)opt.fields&&helper.fill(opt.fields,this.fields,Field);else if(opt.items)for(opt.items&&helper.fill(opt.items,this.items,Item),_ref1=this.items,_i=0,_len=_ref1.length;_len>_i;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_len1>_j;_j++)f=_ref2[_j],_ref3=f["var"],__indexOf.call(this.reported,_ref3)>=0||this.reported.push(f["var"])}return Form._types=["form","submit","cancel","result"],Form.prototype.type="form",Form.prototype.title=null,Form.prototype.instructions=null,Form.prototype.toXML=function(){var f,i,r,xml,_i,_j,_k,_len,_len1,_len2,_ref,_ref1,_ref2;if(xml=$build("x",{xmlns:"jabber:x:data",type:this.type}),this.title&&xml.c("title").t(this.title.toString()).up(),this.instructions&&xml.c("instructions").t(this.instructions.toString()).up(),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();else if(this.items.length>0){for(xml.c("reported"),_ref1=this.reported,_j=0,_len1=_ref1.length;_len1>_j;_j++)r=_ref1[_j],xml.c("field",{"var":r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_len2>_k;_k++)i=_ref2[_k],xml.cnode(i.toXML()).up()}return xml.tree()},Form.prototype.toJSON=function(){var f,i,json,_i,_j,_len,_len1,_ref,_ref1;if(json={type:this.type},this.title&&(json.title=this.title),this.instructions&&(json.instructions=this.instructions),this.fields.length>0)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],json.fields.push(f.toJSON());else if(this.items.length>0)for(json.items=[],json.reported=this.reported,_ref1=this.items,_j=0,_len1=_ref1.length;_len1>_j;_j++)i=_ref1[_j],json.items.push(i.toJSON());return json},Form.prototype.toHTML=function(){var f,form,i,_i,_j,_len,_len1,_ref,_ref1;if(form=$("<form data-type='"+this.type+"'>"),this.title&&form.append("<h1>"+this.title+"</h1>"),this.instructions&&form.append("<p>"+this.instructions+"</p>"),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_len1>_j;_j++)i=_ref1[_j],$(i.toHTML()).appendTo(form);return form[0]},Form.fromXML=function(xml){var f,fields,i,instr,items,j,r,reported,title;return xml=$(xml),f=new Form({type:xml.attr("type")}),title=xml.find("title"),1===title.length&&(f.title=title.text()),instr=xml.find("instructions"),1===instr.length&&(f.instructions=instr.text()),fields=xml.find("field"),items=xml.find("item"),items.length>0?f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_len>_i;_i++)i=items[_i],_results.push(Item.fromXML(i));return _results}():fields.length>0&&(f.fields=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)j=fields[_i],_results.push(Field.fromXML(j));return _results}()),reported=xml.find("reported"),1===reported.length&&(fields=reported.find("field"),f.reported=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)r=fields[_i],_results.push($(r).attr("var"));return _results}()),f},Form.fromHTML=function(html){var f,field,fields,i,instructions,item,items,j,title,_i,_j,_len,_len1,_ref,_ref1,_ref2;if(html=$(html),f=new Form({type:html.attr("data-type")}),title=html.find("h1").text(),title&&(f.title=title),instructions=html.find("p").text(),instructions&&(f.instructions=instructions),items=html.find("fieldset"),fields=helper.getHtmlFields(html),items.length>0)for(f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_len>_i;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_len>_i;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_len1>_j;_j++)field=_ref1[_j],_ref2=field["var"],__indexOf.call(f.reported,_ref2)>=0||f.reported.push(field["var"]);else fields.length>0&&(f.fields=function(){var _k,_len2,_results;for(_results=[],_k=0,_len2=fields.length;_len2>_k;_k++)j=fields[_k],_results.push(Field.fromHTML(j));return _results}());return f},Form}(),Field=function(){function Field(opt){this.toHTML=__bind(this.toHTML,this),this.toXML=__bind(this.toXML,this),this.toJSON=__bind(this.toJSON,this),this.addOptions=__bind(this.addOptions,this),this.addOption=__bind(this.addOption,this),this.addValues=__bind(this.addValues,this),this.addValue=__bind(this.addValue,this);var _ref,_ref1;this.options=[],this.values=[],opt&&(_ref=opt.type,__indexOf.call(Field._types,_ref)>=0&&(this.type=opt.type.toString()),opt.desc&&(this.desc=opt.desc.toString()),opt.label&&(this.label=opt.label.toString()),this["var"]=(null!=(_ref1=opt["var"])?_ref1.toString():void 0)||"_no_var_was_defined_",this.required=opt.required===!0||"true"===opt.required,opt.options&&this.addOptions(opt.options),opt.value&&(opt.values=[opt.value]),opt.values&&this.addValues(opt.values))}return Field._types=["boolean","fixed","hidden","jid-multi","jid-single","list-multi","list-single","text-multi","text-private","text-single"],Field._multiTypes=["list-multi","jid-multi","text-multi","hidden"],Field.prototype.type="text-single",Field.prototype.desc=null,Field.prototype.label=null,Field.prototype["var"]="_no_var_was_defined_",Field.prototype.required=!1,Field.prototype.addValue=function(val){return this.addValues([val])},Field.prototype.addValues=function(vals){var multi,v,_ref;return _ref=this.type,multi=__indexOf.call(Field._multiTypes,_ref)>=0,(multi||!multi&&1===vals.length)&&(this.values=__slice.call(this.values).concat(__slice.call(function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_len>_i;_i++)v=vals[_i],_results.push(v.toString());return _results}()))),this},Field.prototype.addOption=function(opt){return this.addOptions([opt])},Field.prototype.addOptions=function(opts){var o;return("list-single"===this.type||"list-multi"===this.type)&&("object"!=typeof opts[0]&&(opts=function(){var _i,_len,_results;for(_results=[],_i=0,_len=opts.length;_len>_i;_i++)o=opts[_i],_results.push(new Option({value:o.toString()}));return _results}()),helper.fill(opts,this.options,Option)),this},Field.prototype.toJSON=function(){var json,o,_i,_len,_ref;if(json={type:this.type,"var":this["var"],required:this.required},this.desc&&(json.desc=this.desc),this.label&&(json.label=this.label),this.values&&(json.values=this.values),this.options)for(json.options=[],_ref=this.options,_i=0,_len=_ref.length;_len>_i;_i++)o=_ref[_i],json.options.push(o.toJSON());return json},Field.prototype.toXML=function(){var attrs,o,v,xml,_i,_j,_len,_len1,_ref,_ref1;if(attrs={type:this.type,"var":this["var"]},this.label&&(attrs.label=this.label),xml=$build("field",attrs),this.desc&&xml.c("desc").t(this.desc).up(),this.required&&xml.c("required").up(),this.values)for(_ref=this.values,_i=0,_len=_ref.length;_len>_i;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_len1>_j;_j++)o=_ref1[_j],xml.cnode(o.toXML()).up();return xml.tree()},Field.prototype.toHTML=function(){var el,k,line,o,opt,txt,val,_i,_j,_len,_len1,_ref,_ref1,_ref2;switch(this.type.toLowerCase()){case"list-single":case"list-multi":if(el=$("<select>"),"list-multi"===this.type&&el.attr("multiple","multiple"),this.options.length>0)for(_ref=this.options,_i=0,_len=_ref.length;_len>_i;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_len1>_j;_j++)k=_ref1[_j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var _k,_len2,_ref2,_results;for(_ref2=this.values,_results=[],_k=0,_len2=_ref2.length;_len2>_k;_k++)line=_ref2[_k],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),this.values&&el.val(this.values[0]),this.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",this.desc);break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=this.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly");break;case"jid-single":el.attr("type","email")}break;default:el=$("<input type='text'>")}return el.attr("name",this["var"]),this.required&&el.attr("required",this.required),el[0]},Field.fromXML=function(xml){var o,v;return xml=$(xml),new Field({type:xml.attr("type"),"var":xml.attr("var"),label:xml.attr("label"),desc:xml.find("desc").text(),required:1===xml.find("required").length,values:function(){var _i,_len,_ref,_results;for(_ref=xml.find(">value"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)v=_ref[_i],_results.push($(v).text());return _results}(),options:function(){var _i,_len,_ref,_results;for(_ref=xml.find("option"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)o=_ref[_i],_results.push(Option.fromXML(o));return _results}()})},Field._htmlElementToFieldType=function(el){var r,type;switch(el=$(el),el[0].nodeName.toLowerCase()){case"textarea":type="text-multi";break;case"select":type="multiple"===el.attr("multiple")?"list-multi":"list-single";break;case"input":switch(el.attr("type")){case"checkbox":type="boolean";break;case"email":type="jid-single";break;case"hidden":type="hidden";break;case"password":type="text-private";break;case"text":r="readonly"===el.attr("readonly"),type=r?"fixed":"text-single"}}return type},Field.fromHTML=function(html){var el,f,txt,type;switch(html=$(html),type=Field._htmlElementToFieldType(html),f=new Field({type:type,"var":html.attr("name"),required:"required"===html.attr("required")}),type){case"list-multi":case"list-single":f.values=function(){var _i,_len,_ref,_results;for(_ref=html.find("option:selected"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)el=_ref[_i],_results.push($(el).val());return _results}(),f.options=function(){var _i,_len,_ref,_results;for(_ref=html.find("option"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)el=_ref[_i],_results.push(Option.fromHTML(el));return _results}();break;case"text-multi":case"jid-multi":txt=html.text(),""!==txt.trim()&&(f.values=txt.split("\n"));break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":""!==html.val().trim()&&(f.values=[html.val()])}return f},Field}(),Option=function(){function Option(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),opt&&(opt.label&&(this.label=opt.label.toString()),opt.value&&(this.value=opt.value.toString()))}return Option.prototype.label="",Option.prototype.value="",Option.prototype.toXML=function(){return $build("option",{label:this.label}).c("value").t(this.value.toString()).tree()},Option.prototype.toJSON=function(){return{label:this.label,value:this.value}},Option.prototype.toHTML=function(){return $("<option>").attr("value",this.value).text(this.label||this.value)[0]},Option.fromXML=function(xml){return new Option({label:$(xml).attr("label"),value:$(xml).text()})},Option.fromHTML=function(html){return new Option({value:$(html).attr("value"),label:$(html).text()})},Option}(),Item=function(){function Item(opts){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),this.fields=[],(null!=opts?opts.fields:void 0)&&helper.fill(opts.fields,this.fields,Field)}return Item.prototype.toXML=function(){var f,xml,_i,_len,_ref;for(xml=$build("item"),_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();return xml.tree()},Item.prototype.toJSON=function(){var f,json,_i,_len,_ref;if(json={},this.fields)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],json.fields.push(f.toJSON());return json},Item.prototype.toHTML=function(){var f,fieldset,_i,_len,_ref;for(fieldset=$("<fieldset>"),_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(fieldset);return fieldset[0]},Item.fromXML=function(xml){var f,fields;return xml=$(xml),fields=xml.find("field"),new Item({fields:function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)f=fields[_i],_results.push(Field.fromXML(f));return _results}()})},Item.fromHTML=function(html){var f;return new Item({fields:function(){var _i,_len,_ref,_results;for(_ref=helper.getHtmlFields(html),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],_results.push(Field.fromHTML(f));return _results}()})},Item}(),Strophe.x={Form:Form,Field:Field,Option:Option,Item:Item},$form=function(opt){return new Strophe.x.Form(opt)},$field=function(opt){return new Strophe.x.Field(opt)},$opt=function(opt){return new Strophe.x.Option(opt)},$item=function(opts){return new Strophe.x.Item(opts)},Strophe.addConnectionPlugin("x",{init:function(conn){var _ref,_ref1;return Strophe.addNamespace("DATA","jabber:x:data"),null!=(null!=(_ref=conn.disco)?_ref.addFeature:void 0)&&conn.disco.addFeature(Strophe.NS.DATA),null!=(null!=(_ref1=conn.disco)?_ref1.addNode:void 0)?conn.disco.addNode(Strophe.NS.DATA,{items:[]}):void 0},parseFromResult:function(result){var _ref;return Form.fromXML("x"===result.nodeName.toLowerCase()?result:null!=(_ref=$(result).find("x"))?_ref[0]:void 0)}})}.call(this),/*!
+function(){var $field,$form,$item,$opt,Field,Form,Item,Option,helper,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};helper={fill:function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_len>_i;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},createHtmlFieldCouple:function(f){var div,id;return div=$("<div>"),id="Strophe.x.Field-"+f.type+"-"+f["var"],div.append("<label for='"+id+"'>"+(f.label||"")+"</label>").append($(f.toHTML()).attr("id",id)).append("<br />"),div.children()},getHtmlFields:function(html){return html=$(html),__slice.call(html.find("input")).concat(__slice.call(html.find("select")),__slice.call(html.find("textarea")))}},Form=function(){function Form(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this);var f,i,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3;if(this.fields=[],this.items=[],this.reported=[],opt)if(_ref=opt.type,__indexOf.call(Form._types,_ref)>=0&&(this.type=opt.type),this.title=opt.title,this.instructions=opt.instructions,helper.fill=function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_len>_i;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},opt.fields)opt.fields&&helper.fill(opt.fields,this.fields,Field);else if(opt.items)for(opt.items&&helper.fill(opt.items,this.items,Item),_ref1=this.items,_i=0,_len=_ref1.length;_len>_i;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_len1>_j;_j++)f=_ref2[_j],_ref3=f["var"],__indexOf.call(this.reported,_ref3)>=0||this.reported.push(f["var"])}return Form._types=["form","submit","cancel","result"],Form.prototype.type="form",Form.prototype.title=null,Form.prototype.instructions=null,Form.prototype.toXML=function(){var f,i,r,xml,_i,_j,_k,_len,_len1,_len2,_ref,_ref1,_ref2;if(xml=$build("x",{xmlns:"jabber:x:data",type:this.type}),this.title&&xml.c("title").t(this.title.toString()).up(),this.instructions&&xml.c("instructions").t(this.instructions.toString()).up(),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();else if(this.items.length>0){for(xml.c("reported"),_ref1=this.reported,_j=0,_len1=_ref1.length;_len1>_j;_j++)r=_ref1[_j],xml.c("field",{"var":r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_len2>_k;_k++)i=_ref2[_k],xml.cnode(i.toXML()).up()}return xml.tree()},Form.prototype.toJSON=function(){var f,i,json,_i,_j,_len,_len1,_ref,_ref1;if(json={type:this.type},this.title&&(json.title=this.title),this.instructions&&(json.instructions=this.instructions),this.fields.length>0)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],json.fields.push(f.toJSON());else if(this.items.length>0)for(json.items=[],json.reported=this.reported,_ref1=this.items,_j=0,_len1=_ref1.length;_len1>_j;_j++)i=_ref1[_j],json.items.push(i.toJSON());return json},Form.prototype.toHTML=function(){var f,form,i,_i,_j,_len,_len1,_ref,_ref1;if(form=$("<form data-type='"+this.type+"'>"),this.title&&form.append("<h1>"+this.title+"</h1>"),this.instructions&&form.append("<p>"+this.instructions+"</p>"),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_len1>_j;_j++)i=_ref1[_j],$(i.toHTML()).appendTo(form);return form[0]},Form.fromXML=function(xml){var f,fields,i,instr,items,j,r,reported,title;return xml=$(xml),f=new Form({type:xml.attr("type")}),title=xml.find("title"),1===title.length&&(f.title=title.text()),instr=xml.find("instructions"),1===instr.length&&(f.instructions=instr.text()),fields=xml.find("field"),items=xml.find("item"),items.length>0?f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_len>_i;_i++)i=items[_i],_results.push(Item.fromXML(i));return _results}():fields.length>0&&(f.fields=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)j=fields[_i],_results.push(Field.fromXML(j));return _results}()),reported=xml.find("reported"),1===reported.length&&(fields=reported.find("field"),f.reported=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)r=fields[_i],_results.push($(r).attr("var"));return _results}()),f},Form.fromHTML=function(html){var f,field,fields,i,instructions,item,items,j,title,_i,_j,_len,_len1,_ref,_ref1,_ref2;if(html=$(html),f=new Form({type:html.attr("data-type")}),title=html.find("h1").text(),title&&(f.title=title),instructions=html.find("p").text(),instructions&&(f.instructions=instructions),items=html.find("fieldset"),fields=helper.getHtmlFields(html),items.length>0)for(f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_len>_i;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_len>_i;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_len1>_j;_j++)field=_ref1[_j],_ref2=field["var"],__indexOf.call(f.reported,_ref2)>=0||f.reported.push(field["var"]);else fields.length>0&&(f.fields=function(){var _k,_len2,_results;for(_results=[],_k=0,_len2=fields.length;_len2>_k;_k++)j=fields[_k],_results.push(Field.fromHTML(j));return _results}());return f},Form}(),Field=function(){function Field(opt){this.toHTML=__bind(this.toHTML,this),this.toXML=__bind(this.toXML,this),this.toJSON=__bind(this.toJSON,this),this.addOptions=__bind(this.addOptions,this),this.addOption=__bind(this.addOption,this),this.addValues=__bind(this.addValues,this),this.addValue=__bind(this.addValue,this);var _ref,_ref1;this.options=[],this.values=[],opt&&(_ref=opt.type,__indexOf.call(Field._types,_ref)>=0&&(this.type=opt.type.toString()),opt.desc&&(this.desc=opt.desc.toString()),opt.label&&(this.label=opt.label.toString()),this["var"]=(null!=(_ref1=opt["var"])?_ref1.toString():void 0)||"_no_var_was_defined_",this.required=opt.required===!0||"true"===opt.required,opt.options&&this.addOptions(opt.options),opt.value&&(opt.values=[opt.value]),opt.values&&this.addValues(opt.values))}return Field._types=["boolean","fixed","hidden","jid-multi","jid-single","list-multi","list-single","text-multi","text-private","text-single"],Field._multiTypes=["list-multi","jid-multi","text-multi","hidden"],Field.prototype.type="text-single",Field.prototype.desc=null,Field.prototype.label=null,Field.prototype["var"]="_no_var_was_defined_",Field.prototype.required=!1,Field.prototype.addValue=function(val){return this.addValues([val])},Field.prototype.addValues=function(vals){var multi,v,_ref;return _ref=this.type,multi=__indexOf.call(Field._multiTypes,_ref)>=0,(multi||!multi&&1===vals.length)&&(this.values=__slice.call(this.values).concat(__slice.call(function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_len>_i;_i++)v=vals[_i],_results.push(v.toString());return _results}()))),this},Field.prototype.addOption=function(opt){return this.addOptions([opt])},Field.prototype.addOptions=function(opts){var o;return("list-single"===this.type||"list-multi"===this.type)&&("object"!=typeof opts[0]&&(opts=function(){var _i,_len,_results;for(_results=[],_i=0,_len=opts.length;_len>_i;_i++)o=opts[_i],_results.push(new Option({value:o.toString()}));return _results}()),helper.fill(opts,this.options,Option)),this},Field.prototype.toJSON=function(){var json,o,_i,_len,_ref;if(json={type:this.type,"var":this["var"],required:this.required},this.desc&&(json.desc=this.desc),this.label&&(json.label=this.label),this.values&&(json.values=this.values),this.options)for(json.options=[],_ref=this.options,_i=0,_len=_ref.length;_len>_i;_i++)o=_ref[_i],json.options.push(o.toJSON());return json},Field.prototype.toXML=function(){var attrs,o,v,xml,_i,_j,_len,_len1,_ref,_ref1;if(attrs={type:this.type,"var":this["var"]},this.label&&(attrs.label=this.label),xml=$build("field",attrs),this.desc&&xml.c("desc").t(this.desc).up(),this.required&&xml.c("required").up(),this.values)for(_ref=this.values,_i=0,_len=_ref.length;_len>_i;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_len1>_j;_j++)o=_ref1[_j],xml.cnode(o.toXML()).up();return xml.tree()},Field.prototype.toHTML=function(){var el,k,line,o,opt,txt,val,_i,_j,_len,_len1,_ref,_ref1,_ref2;switch(this.type.toLowerCase()){case"list-single":case"list-multi":if(el=$("<select>"),"list-multi"===this.type&&el.attr("multiple","multiple"),this.options.length>0)for(_ref=this.options,_i=0,_len=_ref.length;_len>_i;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_len1>_j;_j++)k=_ref1[_j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var _k,_len2,_ref2,_results;for(_ref2=this.values,_results=[],_k=0,_len2=_ref2.length;_len2>_k;_k++)line=_ref2[_k],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),this.values&&el.val(this.values[0]),this.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",this.desc);break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=this.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly");break;case"jid-single":el.attr("type","email")}break;default:el=$("<input type='text'>")}return el.attr("name",this["var"]),this.required&&el.attr("required",this.required),el[0]},Field.fromXML=function(xml){var o,v;return xml=$(xml),new Field({type:xml.attr("type"),"var":xml.attr("var"),label:xml.attr("label"),desc:xml.find("desc").text(),required:1===xml.find("required").length,values:function(){var _i,_len,_ref,_results;for(_ref=xml.find(">value"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)v=_ref[_i],_results.push($(v).text());return _results}(),options:function(){var _i,_len,_ref,_results;for(_ref=xml.find("option"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)o=_ref[_i],_results.push(Option.fromXML(o));return _results}()})},Field._htmlElementToFieldType=function(el){var r,type;switch(el=$(el),el[0].nodeName.toLowerCase()){case"textarea":type="text-multi";break;case"select":type="multiple"===el.attr("multiple")?"list-multi":"list-single";break;case"input":switch(el.attr("type")){case"checkbox":type="boolean";break;case"email":type="jid-single";break;case"hidden":type="hidden";break;case"password":type="text-private";break;case"text":r="readonly"===el.attr("readonly"),type=r?"fixed":"text-single"}}return type},Field.fromHTML=function(html){var el,f,txt,type;switch(html=$(html),type=Field._htmlElementToFieldType(html),f=new Field({type:type,"var":html.attr("name"),required:"required"===html.attr("required")}),type){case"list-multi":case"list-single":f.values=function(){var _i,_len,_ref,_results;for(_ref=html.find("option:selected"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)el=_ref[_i],_results.push($(el).val());return _results}(),f.options=function(){var _i,_len,_ref,_results;for(_ref=html.find("option"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)el=_ref[_i],_results.push(Option.fromHTML(el));return _results}();break;case"text-multi":case"jid-multi":txt=html.text(),""!==txt.trim()&&(f.values=txt.split("\n"));break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":""!==html.val().trim()&&(f.values=[html.val()])}return f},Field}(),Option=function(){function Option(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),opt&&(opt.label&&(this.label=opt.label.toString()),opt.value&&(this.value=opt.value.toString()))}return Option.prototype.label="",Option.prototype.value="",Option.prototype.toXML=function(){return $build("option",{label:this.label}).c("value").t(this.value.toString()).tree()},Option.prototype.toJSON=function(){return{label:this.label,value:this.value}},Option.prototype.toHTML=function(){return $("<option>").attr("value",this.value).text(this.label||this.value)[0]},Option.fromXML=function(xml){return new Option({label:$(xml).attr("label"),value:$(xml).text()})},Option.fromHTML=function(html){return new Option({value:$(html).attr("value"),label:$(html).text()})},Option}(),Item=function(){function Item(opts){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),this.fields=[],(null!=opts?opts.fields:void 0)&&helper.fill(opts.fields,this.fields,Field)}return Item.prototype.toXML=function(){var f,xml,_i,_len,_ref;for(xml=$build("item"),_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();return xml.tree()},Item.prototype.toJSON=function(){var f,json,_i,_len,_ref;if(json={},this.fields)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],json.fields.push(f.toJSON());return json},Item.prototype.toHTML=function(){var f,fieldset,_i,_len,_ref;for(fieldset=$("<fieldset>"),_ref=this.fields,_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(fieldset);return fieldset[0]},Item.fromXML=function(xml){var f,fields;return xml=$(xml),fields=xml.find("field"),new Item({fields:function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_len>_i;_i++)f=fields[_i],_results.push(Field.fromXML(f));return _results}()})},Item.fromHTML=function(html){var f;return new Item({fields:function(){var _i,_len,_ref,_results;for(_ref=helper.getHtmlFields(html),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)f=_ref[_i],_results.push(Field.fromHTML(f));return _results}()})},Item}(),Strophe.x={Form:Form,Field:Field,Option:Option,Item:Item},$form=function(opt){return new Strophe.x.Form(opt)},$field=function(opt){return new Strophe.x.Field(opt)},$opt=function(opt){return new Strophe.x.Option(opt)},$item=function(opts){return new Strophe.x.Item(opts)},Strophe.addConnectionPlugin("x",{init:function(conn){var _ref,_ref1;return Strophe.addNamespace("DATA","jabber:x:data"),null!=(null!=(_ref=conn.disco)?_ref.addFeature:void 0)&&conn.disco.addFeature(Strophe.NS.DATA),null!=(null!=(_ref1=conn.disco)?_ref1.addNode:void 0)?conn.disco.addNode(Strophe.NS.DATA,{items:[]}):void 0},parseFromResult:function(result){var _ref;return"x"===result.nodeName.toLowerCase()?Form.fromXML(result):Form.fromXML(null!=(_ref=$(result).find("x"))?_ref[0]:void 0)}})}.call(this),/*!
* Source: lib/strophe.jinglejs/strophe.jinglejs-bundle.js, license: MIT, url: https://github.com/sualko/strophe.jinglejs
*/
/*!
@@ -71,15 +71,15 @@ function(){var $field,$form,$item,$opt,Field,Form,Item,Option,helper,__slice=[].
* @version 0.1.1
* @license MIT
*/
-function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(){},{}],2:[function(require,module,exports){function Buffer(arg){return this instanceof Buffer?(this.length=0,this.parent=void 0,"number"==typeof arg?fromNumber(this,arg):"string"==typeof arg?fromString(this,arg,arguments.length>1?arguments[1]:"utf8"):fromObject(this,arg)):arguments.length>1?new Buffer(arg,arguments[1]):new Buffer(arg)}function fromNumber(that,length){if(that=allocate(that,0>length?0:0|checked(length)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;length>i;i++)that[i]=0;return that}function fromString(that,string,encoding){("string"!=typeof encoding||""===encoding)&&(encoding="utf8");var length=0|byteLength(string,encoding);return that=allocate(that,length),that.write(string,encoding),that}function fromObject(that,object){if(Buffer.isBuffer(object))return fromBuffer(that,object);if(isArray(object))return fromArray(that,object);if(null==object)throw new TypeError("must start with number, buffer, array or string");return"undefined"!=typeof ArrayBuffer&&object.buffer instanceof ArrayBuffer?fromTypedArray(that,object):object.length?fromArrayLike(that,object):fromJsonObject(that,object)}function fromBuffer(that,buffer){var length=0|checked(buffer.length);return that=allocate(that,length),buffer.copy(that,0,0,length),that}function fromArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromTypedArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromArrayLike(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromJsonObject(that,object){var array,length=0;"Buffer"===object.type&&isArray(object.data)&&(array=object.data,length=0|checked(array.length)),that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function allocate(that,length){Buffer.TYPED_ARRAY_SUPPORT?that=Buffer._augment(new Uint8Array(length)):(that.length=length,that._isBuffer=!0);var fromPool=0!==length&&length<=Buffer.poolSize>>>1;return fromPool&&(that.parent=rootParent),that}function checked(length){if(length>=kMaxLength)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength.toString(16)+" bytes");return 0|length}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);return delete buf.parent,buf}function byteLength(string,encoding){if("string"!=typeof string&&(string=String(string)),0===string.length)return 0;switch(encoding||"utf8"){case"ascii":case"binary":case"raw":return string.length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*string.length;case"hex":return string.length>>>1;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"base64":return base64ToBytes(string).length;default:return string.length}}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))throw new Error("Invalid hex string");buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return base64.fromByteArray(0===start&&end===buf.length?buf:buf.slice(start,end))}function utf8Slice(buf,start,end){var res="",tmp="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)buf[i]<=127?(res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]),tmp=""):tmp+="%"+buf[i].toString(16);return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(127&buf[i]);return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length;i+=2)res+=String.fromCharCode(bytes[i]+256*bytes[i+1]);return res}function checkOffset(offset,ext,length){if(offset%1!==0||0>offset)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||min>value)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){0>value&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);j>i;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){0>value&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);j>i;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||min>value)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range");if(0>offset)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;length>i;i++){if(codePoint=string.charCodeAt(i),codePoint>55295&&57344>codePoint){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(56320>codePoint){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=leadSurrogate-55296<<10|codePoint-56320|65536,leadSurrogate=null}else leadSurrogate&&((units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=null);if(128>codePoint){if((units-=1)<0)break;bytes.push(codePoint)}else if(2048>codePoint){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(65536>codePoint){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(2097152>codePoint))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);i++)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}/*!
+function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){function Buffer(arg){return this instanceof Buffer?(this.length=0,this.parent=void 0,"number"==typeof arg?fromNumber(this,arg):"string"==typeof arg?fromString(this,arg,arguments.length>1?arguments[1]:"utf8"):fromObject(this,arg)):arguments.length>1?new Buffer(arg,arguments[1]):new Buffer(arg)}function fromNumber(that,length){if(that=allocate(that,0>length?0:0|checked(length)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;length>i;i++)that[i]=0;return that}function fromString(that,string,encoding){("string"!=typeof encoding||""===encoding)&&(encoding="utf8");var length=0|byteLength(string,encoding);return that=allocate(that,length),that.write(string,encoding),that}function fromObject(that,object){if(Buffer.isBuffer(object))return fromBuffer(that,object);if(isArray(object))return fromArray(that,object);if(null==object)throw new TypeError("must start with number, buffer, array or string");return"undefined"!=typeof ArrayBuffer&&object.buffer instanceof ArrayBuffer?fromTypedArray(that,object):object.length?fromArrayLike(that,object):fromJsonObject(that,object)}function fromBuffer(that,buffer){var length=0|checked(buffer.length);return that=allocate(that,length),buffer.copy(that,0,0,length),that}function fromArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromTypedArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromArrayLike(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function fromJsonObject(that,object){var array,length=0;"Buffer"===object.type&&isArray(object.data)&&(array=object.data,length=0|checked(array.length)),that=allocate(that,length);for(var i=0;length>i;i+=1)that[i]=255&array[i];return that}function allocate(that,length){Buffer.TYPED_ARRAY_SUPPORT?that=Buffer._augment(new Uint8Array(length)):(that.length=length,that._isBuffer=!0);var fromPool=0!==length&&length<=Buffer.poolSize>>>1;return fromPool&&(that.parent=rootParent),that}function checked(length){if(length>=kMaxLength)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength.toString(16)+" bytes");return 0|length}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);return delete buf.parent,buf}function byteLength(string,encoding){if("string"!=typeof string&&(string=String(string)),0===string.length)return 0;switch(encoding||"utf8"){case"ascii":case"binary":case"raw":return string.length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*string.length;case"hex":return string.length>>>1;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"base64":return base64ToBytes(string).length;default:return string.length}}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))throw new Error("Invalid hex string");buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){var res="",tmp="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)buf[i]<=127?(res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]),tmp=""):tmp+="%"+buf[i].toString(16);return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(127&buf[i]);return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length;i+=2)res+=String.fromCharCode(bytes[i]+256*bytes[i+1]);return res}function checkOffset(offset,ext,length){if(offset%1!==0||0>offset)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||min>value)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){0>value&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);j>i;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){0>value&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);j>i;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||min>value)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range");if(0>offset)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;length>i;i++){if(codePoint=string.charCodeAt(i),codePoint>55295&&57344>codePoint){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(56320>codePoint){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=leadSurrogate-55296<<10|codePoint-56320|65536,leadSurrogate=null}else leadSurrogate&&((units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=null);if(128>codePoint){if((units-=1)<0)break;bytes.push(codePoint)}else if(2048>codePoint){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(65536>codePoint){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(2097152>codePoint))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);i++)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
-var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("is-array");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var kMaxLength=1073741823,rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0),arr=new Uint8Array(buf);return arr.foo=function(){return 42},42===arr.foo()&&"function"==typeof arr.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(e){return!1}}(),Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);len>i&&a[i]===b[i];)++i;return i!==len&&(x=a[i],y=b[i]),y>x?-1:x>y?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError("list argument must be an Array of Buffers.");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];var i;if(void 0===length)for(length=0,i=0;i<list.length;i++)length+=list[i].length;var buf=new Buffer(length),pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos),pos+=item.length}return buf},Buffer.byteLength=byteLength,Buffer.prototype.length=void 0,Buffer.prototype.parent=void 0,Buffer.prototype.toString=function(encoding,start,end){var loweredCase=!1;if(start=0|start,end=void 0===end||1/0===end?this.length:0|end,encoding||(encoding="utf8"),0>start&&(start=0),end>this.length&&(end=this.length),start>=end)return"";for(;;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),"<Buffer "+str+">"},Buffer.prototype.compare=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:Buffer.compare(this,b)},Buffer.prototype.indexOf=function(val,byteOffset){function arrayIndexOf(arr,val,byteOffset){for(var foundIndex=-1,i=0;byteOffset+i<arr.length;i++)if(arr[byteOffset+i]===val[-1===foundIndex?0:i-foundIndex]){if(-1===foundIndex&&(foundIndex=i),i-foundIndex+1===val.length)return byteOffset+foundIndex}else foundIndex=-1;return-1}if(byteOffset>2147483647?byteOffset=2147483647:-2147483648>byteOffset&&(byteOffset=-2147483648),byteOffset>>=0,0===this.length)return-1;if(byteOffset>=this.length)return-1;if(0>byteOffset&&(byteOffset=Math.max(this.length+byteOffset,0)),"string"==typeof val)return 0===val.length?-1:String.prototype.indexOf.call(this,val,byteOffset);if(Buffer.isBuffer(val))return arrayIndexOf(this,val,byteOffset);if("number"==typeof val)return Buffer.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,val,byteOffset):arrayIndexOf(this,[val],byteOffset);throw new TypeError("val must be string, number or Buffer")},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=0|offset,isFinite(length)?(length=0|length,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=0|length,length=swap}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(0>length||0>offset)||offset>this.length)throw new RangeError("attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=Buffer._augment(this.subarray(start,end));else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;sliceLen>i;i++)newBuf[i]=this[i+start]}return newBuf.length&&(newBuf.parent=this.parent||this),newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return val},Buffer.prototype.readUIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1,i=0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUIntBE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0>value?1:0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0>value?1:0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),0>value&&(value=255+value+1),this[offset]=value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),0>value&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&start>end&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(0>targetStart)throw new RangeError("targetStart out of bounds");if(0>start||start>=this.length)throw new RangeError("sourceStart out of bounds");if(0>end)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;if(1e3>len||!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;len>i;i++)target[i+targetStart]=this[i+start];else target._set(this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),start>end)throw new RangeError("end < start");if(end!==start&&0!==this.length){if(0>start||start>=this.length)throw new RangeError("start out of bounds");if(0>end||end>this.length)throw new RangeError("end out of bounds");var i;if("number"==typeof value)for(i=start;end>i;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;end>i;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(Buffer.TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;len>i;i+=1)buf[i]=this[i];return buf.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr.constructor=Buffer,arr._isBuffer=!0,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.indexOf=BP.indexOf,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUIntLE=BP.readUIntLE,arr.readUIntBE=BP.readUIntBE,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readIntLE=BP.readIntLE,arr.readIntBE=BP.readIntBE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUIntLE=BP.writeUIntLE,arr.writeUIntBE=BP.writeUIntBE,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeIntLE=BP.writeIntLE,arr.writeIntBE=BP.writeIntBE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g},{"base64-js":3,ieee754:4,"is-array":5}],3:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS||code===PLUS_URL_SAFE?62:code===SLASH||code===SLASH_URL_SAFE?63:NUMBER>code?-1:NUMBER+10>code?code-NUMBER+26+26:UPPER+26>code?code-UPPER:LOWER+26>code?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;l>i;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0),PLUS_URL_SAFE="-".charCodeAt(0),SLASH_URL_SAFE="_".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],4:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],5:[function(require,module){var isArray=Array.isArray,str=Object.prototype.toString;module.exports=isArray||function(val){return!!val&&"[object Array]"==str.call(val)}},{}],6:[function(require,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified "error" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],7:[function(require,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],8:[function(require,module){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],9:[function(require,module){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],10:[function(require,module){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":11}],11:[function(require,module){(function(process){function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable),forEach(objectKeys(Writable.prototype),function(method){Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])})}).call(this,require("_process"))},{"./_stream_readable":13,"./_stream_writable":15,_process:9,"core-util-is":16,inherits:7}],12:[function(require,module){function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":14,"core-util-is":16,inherits:7}],13:[function(require,module){(function(process){function ReadableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{};var hwm=options.highWaterMark,defaultHwm=options.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode),this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){require("./_stream_duplex");return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(util.isNullOrUndefined(chunk))state.reading=!1,state.ended||onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),addToFront||(state.reading=!1),state.flowing&&0===state.length&&!state.sync?(stream.emit("data",chunk),stream.read(0)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream)),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||0===state.length)}function roundUpToNextPowerOf2(n){if(n>=MAX_HWM)n=MAX_HWM;else{n--;for(var p=1;32>p;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:isNaN(n)||util.isNull(n)?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:0>=n?0:(n>state.highWaterMark&&(state.highWaterMark=roundUpToNextPowerOf2(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return util.isBuffer(chunk)||util.isString(chunk)||util.isNullOrUndefined(chunk)||state.objectMode||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();
-chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,state.sync?process.nextTick(function(){emitReadable_(stream)}):emitReadable_(stream))}function emitReadable_(stream){debug("emit readable"),stream.emit("readable"),flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(function(){maybeReadMore_(stream,state)}))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark&&(debug("maybeReadMore read 0"),stream.read(0),len!==state.length);)len=state.length;state.readingMore=!1}function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EE.listenerCount(src,"data")&&(state.flowing=!0,flow(src))}}function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(function(){resume_(stream,state)}))}function resume_(stream,state){state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;if(debug("flow",state.flowing),state.flowing)do var chunk=stream.read();while(null!==chunk&&state.flowing)}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):Buffer.concat(list,length),list.length=0;else if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n),list[0]=buf.slice(n)}else if(n===list[0].length)ret=list.shift();else{ret=stringMode?"":new Buffer(n);for(var c=0,i=0,l=list.length;l>i&&n>c;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy<buf.length?list[0]=buf.slice(cpy):list.shift(),c+=cpy}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");state.endEmitted||(state.ended=!0,process.nextTick(function(){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;l>i;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;EE.listenerCount||(EE.listenerCount=function(emitter,type){return emitter.listeners(type).length});var Stream=require("stream"),util=require("core-util-is");util.inherits=require("inherits");var StringDecoder,debug=require("util");debug=debug&&debug.debuglog?debug.debuglog("stream"):function(){},util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return util.isString(chunk)&&!state.objectMode&&(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.setEncoding=function(enc){return StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc,this};var MAX_HWM=8388608;Readable.prototype.read=function(n){debug("read",n);var state=this._readableState,nOrig=n;if((!util.isNumber(n)||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(0===state.length||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),(state.ended||state.reading)&&(doRead=!1,debug("reading or ended",doRead)),doRead&&(debug("do read"),state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,util.isNull(ret)&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&0===state.length&&endReadable(this),util.isNull(ret)||this.emit("data",ret),ret},Readable.prototype._read=function(){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){debug("onunpipe"),readable===src&&cleanup()}function onend(){debug("onend"),dest.end()}function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),src.removeListener("data",ondata),!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain()}function ondata(chunk){debug("ondata");var ret=dest.write(chunk);!1===ret&&(debug("false write response, pause",src._readableState.awaitDrain),src._readableState.awaitDrain++,src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EE.listenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);return dest.on("drain",ondrain),src.on("data",ondata),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;len>i;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return-1===i?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"===ev&&!1!==this._readableState.flowing&&this.resume(),"readable"===ev&&this.readable){var state=this._readableState;if(!state.readableListening)if(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading)state.length&&emitReadable(this,state);else{var self=this;process.nextTick(function(){debug("readable nexttick read 0"),self.read(0)})}}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!0,state.reading||(debug("resume read 0"),this.read(0)),resume(this,state)),this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),chunk&&(state.objectMode||chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)util.isFunction(stream[i])&&util.isUndefined(this[i])&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(n){debug("wrapped _read",n),paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{"./_stream_duplex":11,_process:9,buffer:2,"core-util-is":16,events:6,inherits:7,isarray:8,stream:21,"string_decoder/":22,util:1}],14:[function(require,module){function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,util.isNullOrUndefined(data)||stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&stream._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState=new TransformState(options,this);var stream=this;this._readableState.needReadable=!0,this._readableState.sync=!1,this.once("prefinish",function(){util.isFunction(this._flush)?this._flush(function(er){done(stream,er)}):done(stream)})}function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState,ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}module.exports=Transform;var Duplex=require("./_stream_duplex"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(Transform,Duplex),Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)},Transform.prototype._transform=function(){throw new Error("not implemented")},Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}},Transform.prototype._read=function(){var ts=this._transformState;util.isNull(ts.writechunk)||!ts.writecb||ts.transforming?ts.needTransform=!0:(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform))}},{"./_stream_duplex":11,"core-util-is":16,inherits:7}],15:[function(require,module){(function(process){function WriteReq(chunk,encoding,cb){this.chunk=chunk,this.encoding=encoding,this.callback=cb}function WritableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{};var hwm=options.highWaterMark,defaultHwm=options.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode),this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.buffer=[],this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function Writable(options){var Duplex=require("./_stream_duplex");return this instanceof Writable||this instanceof Duplex?(this._writableState=new WritableState(options,this),this.writable=!0,void Stream.call(this)):new Writable(options)}function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er),process.nextTick(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=!0;if(!(util.isBuffer(chunk)||util.isString(chunk)||util.isNullOrUndefined(chunk)||state.objectMode)){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er),process.nextTick(function(){cb(er)}),valid=!1}return valid}function decodeChunk(state,chunk,encoding){return!state.objectMode&&state.decodeStrings!==!1&&util.isString(chunk)&&(chunk=new Buffer(chunk,encoding)),chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding),util.isBuffer(chunk)&&(encoding="buffer");var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;return ret||(state.needDrain=!0),state.writing||state.corked?state.buffer.push(new WriteReq(chunk,encoding,cb)):doWrite(stream,state,!1,len,chunk,encoding,cb),ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){sync?process.nextTick(function(){state.pendingcb--,cb(er)}):(state.pendingcb--,cb(er)),stream._writableState.errorEmitted=!0,stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);finished||state.corked||state.bufferProcessing||!state.buffer.length||clearBuffer(stream,state),sync?process.nextTick(function(){afterWrite(stream,state,finished,cb)}):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){0===state.length&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){if(state.bufferProcessing=!0,stream._writev&&state.buffer.length>1){for(var cbs=[],c=0;c<state.buffer.length;c++)cbs.push(state.buffer[c].callback);state.pendingcb++,doWrite(stream,state,!0,state.length,state.buffer,"",function(err){for(var i=0;i<cbs.length;i++)state.pendingcb--,cbs[i](err)}),state.buffer=[]}else{for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c],chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),state.writing){c++;break}}c<state.buffer.length?state.buffer=state.buffer.slice(c):state.buffer.length=0}state.bufferProcessing=!1}function needFinish(stream,state){return state.ending&&0===state.length&&!state.finished&&!state.writing}function prefinish(stream,state){state.prefinished||(state.prefinished=!0,stream.emit("prefinish"))}function finishMaybe(stream,state){var need=needFinish(stream,state);return need&&(0===state.pendingcb?(prefinish(stream,state),state.finished=!0,stream.emit("finish")):prefinish(stream,state)),need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb)),state.ended=!0}module.exports=Writable;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream=require("stream");util.inherits(Writable,Stream),Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1;return util.isFunction(encoding)&&(cb=encoding,encoding=null),util.isBuffer(chunk)?encoding="buffer":encoding||(encoding=state.defaultEncoding),util.isFunction(cb)||(cb=function(){}),state.ended?writeAfterEnd(this,state,cb):validChunk(this,state,chunk,cb)&&(state.pendingcb++,ret=writeOrBuffer(this,state,chunk,encoding,cb)),ret},Writable.prototype.cork=function(){var state=this._writableState;state.corked++},Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,state.writing||state.corked||state.finished||state.bufferProcessing||!state.buffer.length||clearBuffer(this,state))},Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;util.isFunction(chunk)?(cb=chunk,chunk=null,encoding=null):util.isFunction(encoding)&&(cb=encoding,encoding=null),util.isNullOrUndefined(chunk)||this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||state.finished||endWritable(this,state,cb)}}).call(this,require("_process"))},{"./_stream_duplex":11,_process:9,buffer:2,"core-util-is":16,inherits:7,stream:21}],16:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function isBuffer(arg){return Buffer.isBuffer(arg)}function objectToString(o){return Object.prototype.toString.call(o)}exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=isBuffer}).call(this,require("buffer").Buffer)},{buffer:2}],17:[function(require,module){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":12}],18:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=require("stream"),exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":11,"./lib/_stream_passthrough.js":12,"./lib/_stream_readable.js":13,"./lib/_stream_transform.js":14,"./lib/_stream_writable.js":15,stream:21}],19:[function(require,module){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":14}],20:[function(require,module){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":15}],21:[function(require,module){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:6,inherits:7,"readable-stream/duplex.js":10,"readable-stream/passthrough.js":17,"readable-stream/readable.js":18,"readable-stream/transform.js":19,"readable-stream/writable.js":20}],22:[function(require,module,exports){function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding))throw new Error("Unknown encoding: "+encoding)}function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3,this.charLength=this.charReceived?3:0}var Buffer=require("buffer").Buffer,isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},StringDecoder=exports.StringDecoder=function(encoding){switch(this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(encoding),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0};StringDecoder.prototype.write=function(buffer){for(var charStr="";this.charLength;){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,0,available),this.charReceived+=available,this.charReceived<this.charLength)return"";buffer=buffer.slice(available,buffer.length),charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(!(charCode>=55296&&56319>=charCode)){if(this.charReceived=this.charLength=0,0===buffer.length)return charStr;break}this.charLength+=this.surrogateSize,charStr=""}this.detectIncompleteChar(buffer);var end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end),end-=this.charReceived),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&56319>=charCode){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),buffer.copy(this.charBuffer,0,0,size),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(2>=i&&c>>4==14){this.charLength=3;break}if(3>=i&&c>>3==30){this.charLength=4;break}}this.charReceived=i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:2}],23:[function(require,module){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],24:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str){return str}function arrayToHash(array){var hash={};return array.forEach(function(val){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)output.push(hasOwnProperty(value,String(i))?formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0):"");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i<arguments.length;i++)objects.push(inspect(arguments[i]));return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=String(f).replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);
-case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":23,_process:9,inherits:7}],25:[function(require,module){function SessionManager(conf){WildEmitter.call(this),conf=conf||{},this.jid=conf.jid,this.selfID=conf.selfID||this.jid&&this.jid.full||this.jid||"",this.sessions={},this.peers={},this.prepareSession=conf.prepareSession||function(opts){return opts.descriptionTypes.indexOf("rtp")>=0?new MediaSession(opts):opts.descriptionTypes.indexOf("filetransfer")>=0?new FileSession(opts):void 0},this.performTieBreak=conf.performTieBreak||function(sess,req){var descriptionTypes=req.jingle.contents.map(function(content){return content.description?content.description.descType:void 0}),matching=intersect(sess.pendingDescriptionTypes,descriptionTypes);return matching.length>0},this.screenSharingSupport=webrtc.screenSharing,this.capabilities=["urn:xmpp:jingle:1"],webrtc.support&&(this.capabilities=["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:rtp:1","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:rtcb-fb:0","urn:xmpp:jingle:apps:rtp:rtp-hdrext:0","urn:xmpp:jingle:apps:rtp:ssma:0","urn:xmpp:jingle:apps:dtls:0","urn:xmpp:jingle:apps:grouping:0","urn:xmpp:jingle:apps:file-transfer:3","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:transports.dtls-sctp:1","urn:ietf:rfc:3264","urn:ietf:rfc:5576","urn:ietf:rfc:5888"]),this.config={debug:!1,peerConnectionConfig:{iceServers:conf.iceServers||[{url:"stun:stun.l.google.com:19302"}]},peerConnectionConstraints:{optional:[{DtlsSrtpKeyAgreement:!0},{RtpDataChannels:!1}]},media:{audio:!0,video:!0}};for(var item in conf)this.config[item]=conf[item];this.iceServers=this.config.peerConnectionConfig.iceServers}var util=require("util"),intersect=require("intersect"),WildEmitter=require("wildemitter"),webrtc=require("webrtcsupport"),BaseSession=require("jingle-session"),MediaSession=require("jingle-media-session"),FileSession=require("jingle-filetransfer-session");util.inherits(SessionManager,WildEmitter),SessionManager.prototype.addICEServer=function(server){"string"==typeof server&&(server={url:server}),this.iceServers.push(server)},SessionManager.prototype.addSession=function(session){var self=this,sid=session.sid,peer=session.peerID;return this.sessions[sid]=session,this.peers[peer]||(this.peers[peer]=[]),this.peers[peer].push(session),session.on("terminated",function(){var peers=self.peers[peer]||[];peers.length&&peers.splice(peers.indexOf(session),1),delete self.sessions[sid]}),session.on("*",function(name,data,extraData,extraData2){if("send"===name){var action=data.jingle&&data.jingle.action;session.isInitiator&&"session-initiate"===action&&self.emit("outgoing",session)}!self.config.debug||"log:debug"!==name&&"log:error"!==name||console.log("Jingle:",data,extraData,extraData2),0!==name.indexOf("change")&&self.emit(name,data,extraData,extraData2)}),this.emit("createdSession",session),session},SessionManager.prototype.createMediaSession=function(peer,sid,stream){var session=new MediaSession({sid:sid,peer:peer,initiator:!0,stream:stream,parent:this,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints});return this.addSession(session),session},SessionManager.prototype.createFileTransferSession=function(peer,sid){var session=new FileSession({sid:sid,peer:peer,initiator:!0,parent:this});return this.addSession(session),session},SessionManager.prototype.endPeerSessions=function(peer,reason,silent){peer=peer.full||peer;var sessions=this.peers[peer]||[];delete this.peers[peer],sessions.forEach(function(session){session.end(reason||"gone",silent)})},SessionManager.prototype.endAllSessions=function(reason,silent){var self=this;Object.keys(this.peers).forEach(function(peer){self.endPeerSessions(peer,reason,silent)})},SessionManager.prototype._createIncomingSession=function(meta,req){var session;return this.prepareSession&&(session=this.prepareSession(meta,req)),session||(session=new BaseSession(meta)),this.addSession(session),session},SessionManager.prototype._sendError=function(to,id,data){data.type||(data.type="cancel"),this.emit("send",{to:to,id:id,type:"error",error:data})},SessionManager.prototype._log=function(level,message){this.emit("log:"+level,message)},SessionManager.prototype.process=function(req){var self=this,sid=req.jingle?req.jingle.sid:null,session=this.sessions[sid]||null,rid=req.id,sender=req.from.full||req.from;if("error"===req.type){var isTieBreak=req.error&&"tie-break"===req.error.jingleCondition;return session&&session.pending&&isTieBreak?session.end("alternative-session",!0):(session&&(session.pendingAction=!1),this.emit("error",req))}if("result"===req.type)return void(session&&(session.pendingAction=!1));var action=req.jingle.action,contents=req.jingle.contents||[],descriptionTypes=contents.map(function(content){return content.description?content.description.descType:void 0}),transportTypes=contents.map(function(content){return content.transport?content.transport.transType:void 0});if("session-initiate"!==action){if(!session)return this._log("error","Unknown session",sid),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if(session.peerID!==sender||session.ended)return this._log("error","Session has ended, or action has wrong sender"),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if("session-accept"===action&&!session.pending)return this._log("error","Tried to accept session twice",sid),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if("session-terminate"!==action&&action===session.pendingAction&&(this._log("error","Tie break during pending request"),session.isInitiator))return this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(session){if(session.peerID!==sender)return this._log("error","Duplicate sid from new sender"),this._sendError(sender,rid,{condition:"service-unavailable"});if(!session.pending)return this._log("error","Someone is doing this wrong"),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if(this.selfID>session.peerID&&this.performTieBreak(session,req))return this._log("error","Tie break new session because of duplicate sids"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(this.peers[sender]&&this.peers[sender].length)for(var i=0,len=this.peers[sender].length;len>i;i++){var sess=this.peers[sender][i];if(sess&&sess.pending&&sess.sid>sid&&this.performTieBreak(sess,req))return this._log("info","Tie break session-initiate"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}if("session-initiate"===action){if(!contents.length)return self._sendError(sender,rid,{condition:"bad-request"});session=this._createIncomingSession({sid:sid,peer:req.from,peerID:sender,initiator:!1,parent:this,descriptionTypes:descriptionTypes,transportTypes:transportTypes,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints},req)}session.process(action,req.jingle,function(err){err?(self._log("error","Could not process request",req,err),self._sendError(sender,rid,err)):(self.emit("send",{to:sender,id:rid,type:"result"}),"session-initiate"===action&&self.emit("incoming",session))})},module.exports=SessionManager},{intersect:27,"jingle-filetransfer-session":28,"jingle-media-session":79,"jingle-session":111,util:24,webrtcsupport:115,wildemitter:116}],26:[function(require,module){var arr=[],each=arr.forEach,slice=arr.slice;module.exports=function(obj){return each.call(slice.call(arguments,1),function(source){if(source)for(var prop in source)obj[prop]=source[prop]}),obj}},{}],27:[function(require,module){function intersect(a,b){for(var res=[],i=0;i<a.length;i++)indexOf(b,a[i])>-1&&res.push(a[i]);return res}function indexOf(arr,el){for(var i=0;i<arr.length;i++)if(arr[i]===el)return i;return-1}module.exports=intersect,intersect.big=function(a,b){for(var ret=[],temp={},i=0;i<b.length;i++)temp[b[i]]=!0;for(var i=0;i<a.length;i++)temp[a[i]]&&ret.push(a[i]);return ret}},{}],28:[function(require,module){function FileTransferSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addChannel",this.onChannelAdded.bind(this)),this.sender=null,this.receiver=null}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection"),FileTransfer=require("filetransfer/hashed");util.inherits(FileTransferSession,BaseSession),FileTransferSession.prototype=extend(FileTransferSession.prototype,{start:function(file){var self=this;this.state="pending",this.pc.isInitiator=!0,this.sender=new FileTransfer.Sender,this.sender.on("progress",function(sent,size){self._log("info","Send progress "+sent+"/"+size)}),this.sender.on("sentFile",function(meta){self._log("info","Sent file",meta.name);var content=self.pc.localDescription.contents[0];delete content.transport,content.description={descType:"filetransfer",offer:{hash:{algo:meta.algo,value:meta.hash}}},self.send("description-info",{contents:[content]}),self.emit("sentFile",self,meta)});var sendChannel=this.pc.createDataChannel("filetransfer");sendChannel.onopen=function(){self.sender.send(file,sendChannel)};var constraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offer.jingle.contents[0].description={descType:"filetransfer",offer:{date:file.lastModifiedDate,name:file.name,size:file.size,hash:{algo:"sha-1",value:""}}},void self.send("session-initiate",offer.jingle))})},accept:function(){var self=this;this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):void self.send("session-accept",answer.jingle)})},end:function(reason,silent){this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},maybeReceivedFile:function(){this.receiver.metadata.hash.value&&(this.receiver.metadata.hash.value===this.receiver.metadata.actualhash?(this._log("info","File hash matches"),this.emit("receivedFile",this,this.receivedFile,this.receiver.metadata),this.end("success")):(this._log("error","File hash does not match"),this.end("media-error")))},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":this.connectionState="stable"===this.pc.signalingState?"interrupted":"disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onChannelAdded:function(channel){this.receiver.receive(null,channel)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1;var desc=changes.contents[0].description;this.receiver=new FileTransfer.Receiver({hash:desc.offer.hash.algo}),this.receiver.on("progress",function(received,size){self._log("info","Receive progress "+received+"/"+size)}),this.receiver.on("receivedFile",function(file){self.receivedFile=file,self.maybeReceivedFile()}),this.receiver.metadata=desc.offer,changes.contents[0].description={descType:"datachannel"},this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",changes.contents[0].description={descType:"datachannel"},this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){this._log("info","Terminating session"),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onDescriptionInfo:function(info,cb){var hash=info.contents[0].description.offer.hash;this.receiver.metadata.hash=hash,this.receiver.metadata.actualhash&&this.maybeReceivedFile(),cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})}}),module.exports=FileTransferSession},{"extend-object":26,"filetransfer/hashed":30,"jingle-session":111,rtcpeerconnection:78,util:24}],29:[function(require,module){function Sender(opts){WildEmitter.call(this);var options=opts||{};this.config={chunksize:16384,pacing:0};var item;for(item in options)this.config[item]=options[item];this.file=null,this.channel=null}function Receiver(){WildEmitter.call(this),this.receiveBuffer=[],this.received=0,this.metadata={},this.channel=null}var WildEmitter=require("wildemitter"),util=require("util");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(file,channel){var self=this;this.file=file,this.channel=channel;var sliceFile=function(offset){var reader=new window.FileReader;reader.onload=function(){return function(e){self.channel.send(e.target.result),self.emit("progress",offset,file.size,e.target.result),file.size>offset+e.target.result.byteLength?window.setTimeout(sliceFile,self.config.pacing,offset+self.config.chunksize):(self.emit("progress",file.size,file.size,null),self.emit("sentFile"))}}(file);var slice=file.slice(offset,offset+self.config.chunksize);reader.readAsArrayBuffer(slice)};window.setTimeout(sliceFile,0,0)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(metadata,channel){var self=this;metadata&&(this.metadata=metadata),this.channel=channel,channel.binaryType="arraybuffer",this.channel.onmessage=function(event){var len=event.data.byteLength;self.received+=len,self.receiveBuffer.push(event.data),self.emit("progress",self.received,self.metadata.size,event.data),self.received===self.metadata.size?(self.emit("receivedFile",new window.Blob(self.receiveBuffer),self.metadata),self.receiveBuffer=[]):self.received>self.metadata.size&&(console.error("received more than expected, discarding..."),self.receiveBuffer=[])}},module.exports={},module.exports.support="undefined"!=typeof window&&window&&window.File&&window.FileReader&&window.Blob,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{util:24,wildemitter:116}],30:[function(require,module){function Sender(opts){WildEmitter.call(this);var self=this;this.base=new base.Sender(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("sentFile",function(){self.emit("sentFile",{hash:self.hash.digest("hex"),algo:options.hash})})}function Receiver(opts){WildEmitter.call(this);var self=this;this.base=new base.Receiver(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("receivedFile",function(file,metadata){metadata.actualhash=self.hash.digest("hex"),self.emit("receivedFile",file,metadata)})}var WildEmitter=require("wildemitter"),util=require("util"),hashes=require("iana-hashes"),base=require("./filetransfer");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(){this.base.send.apply(this.base,arguments)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(){this.base.receive.apply(this.base,arguments)},Object.defineProperty(Receiver.prototype,"metadata",{get:function(){return this.base.metadata},set:function(value){this.base.metadata=value}}),module.exports={},module.exports.support=base.support,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{"./filetransfer":29,"iana-hashes":31,util:24,wildemitter:116}],31:[function(require,module,exports){var createHash=require("create-hash"),createHmac=require("create-hmac"),getHashes=require("./lib/get-hashes"),mapping={md2:"md2",md5:"md5","sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512"},names=Object.keys(mapping);exports.getHashes=function(){for(var result=[],available=getHashes(),i=0,len=names.length;len>i;i++)available.indexOf(mapping[names[i]])>=0&&result.push(names[i]);return result},exports.createHash=function(algorithm){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHash(algorithm)},exports.createHmac=function(algorithm,key){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHmac(algorithm,key)}},{"./lib/get-hashes":32,"create-hash":33,"create-hmac":46}],32:[function(require,module){module.exports=function(){return["sha1","sha224","sha256","sha384","sha512","md5","rmd160"]}},{}],33:[function(require,module){(function(Buffer){"use strict";function HashNoConstructor(hash){Transform.call(this),this._hash=hash,this.buffers=[]}function Hash(hash){Transform.call(this),this._hash=hash}var inherits=require("inherits"),md5=require("./md5"),rmd160=require("ripemd160"),sha=require("sha.js"),Transform=require("stream").Transform;inherits(HashNoConstructor,Transform),HashNoConstructor.prototype._transform=function(data,_,next){this.buffers.push(data),next()},HashNoConstructor.prototype._flush=function(next){this.push(this.digest()),next()},HashNoConstructor.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this.buffers.push(data),this},HashNoConstructor.prototype.digest=function(enc){var buf=Buffer.concat(this.buffers),r=this._hash(buf);return this.buffers=null,enc?r.toString(enc):r},inherits(Hash,Transform),Hash.prototype._transform=function(data,enc,next){enc&&(data=new Buffer(data,enc)),this._hash.update(data),next()},Hash.prototype._flush=function(next){this.push(this._hash.digest()),this._hash=null,next()},Hash.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this._hash.update(data),this},Hash.prototype.digest=function(enc){var outData=this._hash.digest();return enc?outData.toString(enc):outData},module.exports=function(alg){return"md5"===alg?new HashNoConstructor(md5):"rmd160"===alg?new HashNoConstructor(rmd160):new Hash(sha(alg))}}).call(this,require("buffer").Buffer)},{"./md5":35,buffer:2,inherits:36,ripemd160:37,"sha.js":39,stream:21}],34:[function(require,module,exports){(function(Buffer){"use strict";function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i<buf.length;i+=intSize)arr.push(fn.call(buf,i));return arr}function toBuffer(arr,size,bigEndian){for(var buf=new Buffer(size),fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE,i=0;i<arr.length;i++)fn.call(buf,arr[i],4*i,!0);return buf}function hash(buf,fn,hashSize,bigEndian){Buffer.isBuffer(buf)||(buf=new Buffer(buf));var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}var intSize=4,zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;exports.hash=hash}).call(this,require("buffer").Buffer)},{buffer:2}],35:[function(require,module){"use strict";function core_md5(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":34}],36:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],37:[function(require,module){(function(Buffer){function bytesToWords(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words}function wordsToBytes(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes}function processBlock(H,M,offset){for(var i=0;16>i;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];var t;for(i=0;80>i;i+=1)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;i<m.length;i+=16)processBlock(H,m,i);for(i=0;5>i;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}/** @preserve
+var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("is-array");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var kMaxLength=1073741823,rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0),arr=new Uint8Array(buf);return arr.foo=function(){return 42},42===arr.foo()&&"function"==typeof arr.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(e){return!1}}(),Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);len>i&&a[i]===b[i];)++i;return i!==len&&(x=a[i],y=b[i]),y>x?-1:x>y?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError("list argument must be an Array of Buffers.");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];var i;if(void 0===length)for(length=0,i=0;i<list.length;i++)length+=list[i].length;var buf=new Buffer(length),pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos),pos+=item.length}return buf},Buffer.byteLength=byteLength,Buffer.prototype.length=void 0,Buffer.prototype.parent=void 0,Buffer.prototype.toString=function(encoding,start,end){var loweredCase=!1;if(start=0|start,end=void 0===end||end===1/0?this.length:0|end,encoding||(encoding="utf8"),0>start&&(start=0),end>this.length&&(end=this.length),start>=end)return"";for(;;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),"<Buffer "+str+">"},Buffer.prototype.compare=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:Buffer.compare(this,b)},Buffer.prototype.indexOf=function(val,byteOffset){function arrayIndexOf(arr,val,byteOffset){for(var foundIndex=-1,i=0;byteOffset+i<arr.length;i++)if(arr[byteOffset+i]===val[-1===foundIndex?0:i-foundIndex]){if(-1===foundIndex&&(foundIndex=i),i-foundIndex+1===val.length)return byteOffset+foundIndex}else foundIndex=-1;return-1}if(byteOffset>2147483647?byteOffset=2147483647:-2147483648>byteOffset&&(byteOffset=-2147483648),byteOffset>>=0,0===this.length)return-1;if(byteOffset>=this.length)return-1;if(0>byteOffset&&(byteOffset=Math.max(this.length+byteOffset,0)),"string"==typeof val)return 0===val.length?-1:String.prototype.indexOf.call(this,val,byteOffset);if(Buffer.isBuffer(val))return arrayIndexOf(this,val,byteOffset);if("number"==typeof val)return Buffer.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,val,byteOffset):arrayIndexOf(this,[val],byteOffset);throw new TypeError("val must be string, number or Buffer")},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=0|offset,isFinite(length)?(length=0|length,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=0|length,length=swap}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(0>length||0>offset)||offset>this.length)throw new RangeError("attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=Buffer._augment(this.subarray(start,end));else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;sliceLen>i;i++)newBuf[i]=this[i+start]}return newBuf.length&&(newBuf.parent=this.parent||this),newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return val},Buffer.prototype.readUIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1,i=0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUIntBE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0>value?1:0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0>value?1:0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),0>value&&(value=255+value+1),this[offset]=value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),0>value&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&start>end&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(0>targetStart)throw new RangeError("targetStart out of bounds");if(0>start||start>=this.length)throw new RangeError("sourceStart out of bounds");if(0>end)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var len=end-start;if(1e3>len||!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;len>i;i++)target[i+targetStart]=this[i+start];else target._set(this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),start>end)throw new RangeError("end < start");if(end!==start&&0!==this.length){if(0>start||start>=this.length)throw new RangeError("start out of bounds");if(0>end||end>this.length)throw new RangeError("end out of bounds");var i;if("number"==typeof value)for(i=start;end>i;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;end>i;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(Buffer.TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;len>i;i+=1)buf[i]=this[i];return buf.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr.constructor=Buffer,arr._isBuffer=!0,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.indexOf=BP.indexOf,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUIntLE=BP.readUIntLE,arr.readUIntBE=BP.readUIntBE,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readIntLE=BP.readIntLE,arr.readIntBE=BP.readIntBE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUIntLE=BP.writeUIntLE,arr.writeUIntBE=BP.writeUIntBE,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeIntLE=BP.writeIntLE,arr.writeIntBE=BP.writeIntBE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g},{"base64-js":3,ieee754:4,"is-array":5}],3:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS||code===PLUS_URL_SAFE?62:code===SLASH||code===SLASH_URL_SAFE?63:NUMBER>code?-1:NUMBER+10>code?code-NUMBER+26+26:UPPER+26>code?code-UPPER:LOWER+26>code?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;l>i;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0),PLUS_URL_SAFE="-".charCodeAt(0),SLASH_URL_SAFE="_".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],4:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],5:[function(require,module,exports){var isArray=Array.isArray,str=Object.prototype.toString;module.exports=isArray||function(val){return!!val&&"[object Array]"==str.call(val)}},{}],6:[function(require,module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified "error" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],7:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],8:[function(require,module,exports){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],9:[function(require,module,exports){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],10:[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":11}],11:[function(require,module,exports){(function(process){function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable),forEach(objectKeys(Writable.prototype),function(method){Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])})}).call(this,require("_process"))},{"./_stream_readable":13,"./_stream_writable":15,_process:9,"core-util-is":16,inherits:7}],12:[function(require,module,exports){function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":14,"core-util-is":16,inherits:7}],13:[function(require,module,exports){(function(process){function ReadableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{};var hwm=options.highWaterMark,defaultHwm=options.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode),this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){require("./_stream_duplex");return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(util.isNullOrUndefined(chunk))state.reading=!1,state.ended||onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),addToFront||(state.reading=!1),state.flowing&&0===state.length&&!state.sync?(stream.emit("data",chunk),stream.read(0)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream)),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||0===state.length)}function roundUpToNextPowerOf2(n){if(n>=MAX_HWM)n=MAX_HWM;else{n--;for(var p=1;32>p;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:isNaN(n)||util.isNull(n)?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:0>=n?0:(n>state.highWaterMark&&(state.highWaterMark=roundUpToNextPowerOf2(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return util.isBuffer(chunk)||util.isString(chunk)||util.isNullOrUndefined(chunk)||state.objectMode||(er=new TypeError("Invalid non-string/buffer chunk")),
+er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,state.sync?process.nextTick(function(){emitReadable_(stream)}):emitReadable_(stream))}function emitReadable_(stream){debug("emit readable"),stream.emit("readable"),flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(function(){maybeReadMore_(stream,state)}))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark&&(debug("maybeReadMore read 0"),stream.read(0),len!==state.length);)len=state.length;state.readingMore=!1}function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EE.listenerCount(src,"data")&&(state.flowing=!0,flow(src))}}function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(function(){resume_(stream,state)}))}function resume_(stream,state){state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;if(debug("flow",state.flowing),state.flowing)do var chunk=stream.read();while(null!==chunk&&state.flowing)}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):Buffer.concat(list,length),list.length=0;else if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n),list[0]=buf.slice(n)}else if(n===list[0].length)ret=list.shift();else{ret=stringMode?"":new Buffer(n);for(var c=0,i=0,l=list.length;l>i&&n>c;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy<buf.length?list[0]=buf.slice(cpy):list.shift(),c+=cpy}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");state.endEmitted||(state.ended=!0,process.nextTick(function(){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;l>i;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;EE.listenerCount||(EE.listenerCount=function(emitter,type){return emitter.listeners(type).length});var Stream=require("stream"),util=require("core-util-is");util.inherits=require("inherits");var StringDecoder,debug=require("util");debug=debug&&debug.debuglog?debug.debuglog("stream"):function(){},util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return util.isString(chunk)&&!state.objectMode&&(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.setEncoding=function(enc){return StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc,this};var MAX_HWM=8388608;Readable.prototype.read=function(n){debug("read",n);var state=this._readableState,nOrig=n;if((!util.isNumber(n)||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(0===state.length||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),(state.ended||state.reading)&&(doRead=!1,debug("reading or ended",doRead)),doRead&&(debug("do read"),state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,util.isNull(ret)&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&0===state.length&&endReadable(this),util.isNull(ret)||this.emit("data",ret),ret},Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){debug("onunpipe"),readable===src&&cleanup()}function onend(){debug("onend"),dest.end()}function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),src.removeListener("data",ondata),!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain()}function ondata(chunk){debug("ondata");var ret=dest.write(chunk);!1===ret&&(debug("false write response, pause",src._readableState.awaitDrain),src._readableState.awaitDrain++,src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EE.listenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);return dest.on("drain",ondrain),src.on("data",ondata),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;len>i;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return-1===i?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"===ev&&!1!==this._readableState.flowing&&this.resume(),"readable"===ev&&this.readable){var state=this._readableState;if(!state.readableListening)if(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading)state.length&&emitReadable(this,state);else{var self=this;process.nextTick(function(){debug("readable nexttick read 0"),self.read(0)})}}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!0,state.reading||(debug("resume read 0"),this.read(0)),resume(this,state)),this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),chunk&&(state.objectMode||chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)util.isFunction(stream[i])&&util.isUndefined(this[i])&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(n){debug("wrapped _read",n),paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{"./_stream_duplex":11,_process:9,buffer:2,"core-util-is":16,events:6,inherits:7,isarray:8,stream:21,"string_decoder/":22,util:1}],14:[function(require,module,exports){function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,util.isNullOrUndefined(data)||stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&stream._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState=new TransformState(options,this);var stream=this;this._readableState.needReadable=!0,this._readableState.sync=!1,this.once("prefinish",function(){util.isFunction(this._flush)?this._flush(function(er){done(stream,er)}):done(stream)})}function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState,ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}module.exports=Transform;var Duplex=require("./_stream_duplex"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(Transform,Duplex),Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)},Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("not implemented")},Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}},Transform.prototype._read=function(n){var ts=this._transformState;util.isNull(ts.writechunk)||!ts.writecb||ts.transforming?ts.needTransform=!0:(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform))}},{"./_stream_duplex":11,"core-util-is":16,inherits:7}],15:[function(require,module,exports){(function(process){function WriteReq(chunk,encoding,cb){this.chunk=chunk,this.encoding=encoding,this.callback=cb}function WritableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{};var hwm=options.highWaterMark,defaultHwm=options.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode),this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.buffer=[],this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function Writable(options){var Duplex=require("./_stream_duplex");return this instanceof Writable||this instanceof Duplex?(this._writableState=new WritableState(options,this),this.writable=!0,void Stream.call(this)):new Writable(options)}function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er),process.nextTick(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=!0;if(!(util.isBuffer(chunk)||util.isString(chunk)||util.isNullOrUndefined(chunk)||state.objectMode)){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er),process.nextTick(function(){cb(er)}),valid=!1}return valid}function decodeChunk(state,chunk,encoding){return!state.objectMode&&state.decodeStrings!==!1&&util.isString(chunk)&&(chunk=new Buffer(chunk,encoding)),chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding),util.isBuffer(chunk)&&(encoding="buffer");var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;return ret||(state.needDrain=!0),state.writing||state.corked?state.buffer.push(new WriteReq(chunk,encoding,cb)):doWrite(stream,state,!1,len,chunk,encoding,cb),ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){sync?process.nextTick(function(){state.pendingcb--,cb(er)}):(state.pendingcb--,cb(er)),stream._writableState.errorEmitted=!0,stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);finished||state.corked||state.bufferProcessing||!state.buffer.length||clearBuffer(stream,state),sync?process.nextTick(function(){afterWrite(stream,state,finished,cb)}):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){0===state.length&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){if(state.bufferProcessing=!0,stream._writev&&state.buffer.length>1){for(var cbs=[],c=0;c<state.buffer.length;c++)cbs.push(state.buffer[c].callback);state.pendingcb++,doWrite(stream,state,!0,state.length,state.buffer,"",function(err){for(var i=0;i<cbs.length;i++)state.pendingcb--,cbs[i](err)}),state.buffer=[]}else{for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c],chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),state.writing){c++;break}}c<state.buffer.length?state.buffer=state.buffer.slice(c):state.buffer.length=0}state.bufferProcessing=!1}function needFinish(stream,state){return state.ending&&0===state.length&&!state.finished&&!state.writing}function prefinish(stream,state){state.prefinished||(state.prefinished=!0,stream.emit("prefinish"))}function finishMaybe(stream,state){var need=needFinish(stream,state);return need&&(0===state.pendingcb?(prefinish(stream,state),state.finished=!0,stream.emit("finish")):prefinish(stream,state)),need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb)),state.ended=!0}module.exports=Writable;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream=require("stream");util.inherits(Writable,Stream),Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1;return util.isFunction(encoding)&&(cb=encoding,encoding=null),util.isBuffer(chunk)?encoding="buffer":encoding||(encoding=state.defaultEncoding),util.isFunction(cb)||(cb=function(){}),state.ended?writeAfterEnd(this,state,cb):validChunk(this,state,chunk,cb)&&(state.pendingcb++,ret=writeOrBuffer(this,state,chunk,encoding,cb)),ret},Writable.prototype.cork=function(){var state=this._writableState;state.corked++},Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,state.writing||state.corked||state.finished||state.bufferProcessing||!state.buffer.length||clearBuffer(this,state))},Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;util.isFunction(chunk)?(cb=chunk,chunk=null,encoding=null):util.isFunction(encoding)&&(cb=encoding,encoding=null),util.isNullOrUndefined(chunk)||this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||state.finished||endWritable(this,state,cb)}}).call(this,require("_process"))},{"./_stream_duplex":11,_process:9,buffer:2,"core-util-is":16,inherits:7,stream:21}],16:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function isBuffer(arg){return Buffer.isBuffer(arg)}function objectToString(o){return Object.prototype.toString.call(o)}exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=isBuffer}).call(this,require("buffer").Buffer)},{buffer:2}],17:[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":12}],18:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=require("stream"),exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":11,"./lib/_stream_passthrough.js":12,"./lib/_stream_readable.js":13,"./lib/_stream_transform.js":14,"./lib/_stream_writable.js":15,stream:21}],19:[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":14}],20:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":15}],21:[function(require,module,exports){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:6,inherits:7,"readable-stream/duplex.js":10,"readable-stream/passthrough.js":17,"readable-stream/readable.js":18,"readable-stream/transform.js":19,"readable-stream/writable.js":20}],22:[function(require,module,exports){function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding))throw new Error("Unknown encoding: "+encoding)}function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3,this.charLength=this.charReceived?3:0}var Buffer=require("buffer").Buffer,isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},StringDecoder=exports.StringDecoder=function(encoding){switch(this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(encoding),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0};StringDecoder.prototype.write=function(buffer){for(var charStr="";this.charLength;){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,0,available),this.charReceived+=available,this.charReceived<this.charLength)return"";buffer=buffer.slice(available,buffer.length),charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(!(charCode>=55296&&56319>=charCode)){if(this.charReceived=this.charLength=0,0===buffer.length)return charStr;break}this.charLength+=this.surrogateSize,charStr=""}this.detectIncompleteChar(buffer);var end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end),end-=this.charReceived),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&56319>=charCode){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),buffer.copy(this.charBuffer,0,0,size),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(2>=i&&c>>4==14){this.charLength=3;break}if(3>=i&&c>>3==30){this.charLength=4;break}}this.charReceived=i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:2}],23:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],24:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)hasOwnProperty(value,String(i))?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0)):output.push("");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i<arguments.length;i++)objects.push(inspect(arguments[i]));
+return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=String(f).replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":23,_process:9,inherits:7}],25:[function(require,module,exports){function SessionManager(conf){WildEmitter.call(this),conf=conf||{},this.jid=conf.jid,this.selfID=conf.selfID||this.jid&&this.jid.full||this.jid||"",this.sessions={},this.peers={},this.prepareSession=conf.prepareSession||function(opts){return opts.descriptionTypes.indexOf("rtp")>=0?new MediaSession(opts):opts.descriptionTypes.indexOf("filetransfer")>=0?new FileSession(opts):void 0},this.performTieBreak=conf.performTieBreak||function(sess,req){var descriptionTypes=req.jingle.contents.map(function(content){return content.description?content.description.descType:void 0}),matching=intersect(sess.pendingDescriptionTypes,descriptionTypes);return matching.length>0},this.screenSharingSupport=webrtc.screenSharing,this.capabilities=["urn:xmpp:jingle:1"],webrtc.support&&(this.capabilities=["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:rtp:1","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:rtcb-fb:0","urn:xmpp:jingle:apps:rtp:rtp-hdrext:0","urn:xmpp:jingle:apps:rtp:ssma:0","urn:xmpp:jingle:apps:dtls:0","urn:xmpp:jingle:apps:grouping:0","urn:xmpp:jingle:apps:file-transfer:3","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:transports.dtls-sctp:1","urn:ietf:rfc:3264","urn:ietf:rfc:5576","urn:ietf:rfc:5888"]),this.config={debug:!1,peerConnectionConfig:{iceServers:conf.iceServers||[{url:"stun:stun.l.google.com:19302"}]},peerConnectionConstraints:{optional:[{DtlsSrtpKeyAgreement:!0},{RtpDataChannels:!1}]},media:{audio:!0,video:!0}};for(var item in conf)this.config[item]=conf[item];this.iceServers=this.config.peerConnectionConfig.iceServers}var util=require("util"),intersect=require("intersect"),WildEmitter=require("wildemitter"),webrtc=require("webrtcsupport"),BaseSession=require("jingle-session"),MediaSession=require("jingle-media-session"),FileSession=require("jingle-filetransfer-session");util.inherits(SessionManager,WildEmitter),SessionManager.prototype.addICEServer=function(server){"string"==typeof server&&(server={url:server}),this.iceServers.push(server)},SessionManager.prototype.addSession=function(session){var self=this,sid=session.sid,peer=session.peerID;return this.sessions[sid]=session,this.peers[peer]||(this.peers[peer]=[]),this.peers[peer].push(session),session.on("terminated",function(){var peers=self.peers[peer]||[];peers.length&&peers.splice(peers.indexOf(session),1),delete self.sessions[sid]}),session.on("*",function(name,data,extraData,extraData2){if("send"===name){var action=data.jingle&&data.jingle.action;session.isInitiator&&"session-initiate"===action&&self.emit("outgoing",session)}!self.config.debug||"log:debug"!==name&&"log:error"!==name||console.log("Jingle:",data,extraData,extraData2),0!==name.indexOf("change")&&self.emit(name,data,extraData,extraData2)}),this.emit("createdSession",session),session},SessionManager.prototype.createMediaSession=function(peer,sid,stream){var session=new MediaSession({sid:sid,peer:peer,initiator:!0,stream:stream,parent:this,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints});return this.addSession(session),session},SessionManager.prototype.createFileTransferSession=function(peer,sid){var session=new FileSession({sid:sid,peer:peer,initiator:!0,parent:this});return this.addSession(session),session},SessionManager.prototype.endPeerSessions=function(peer,reason,silent){peer=peer.full||peer;var sessions=this.peers[peer]||[];delete this.peers[peer],sessions.forEach(function(session){session.end(reason||"gone",silent)})},SessionManager.prototype.endAllSessions=function(reason,silent){var self=this;Object.keys(this.peers).forEach(function(peer){self.endPeerSessions(peer,reason,silent)})},SessionManager.prototype._createIncomingSession=function(meta,req){var session;return this.prepareSession&&(session=this.prepareSession(meta,req)),session||(session=new BaseSession(meta)),this.addSession(session),session},SessionManager.prototype._sendError=function(to,id,data){data.type||(data.type="cancel"),this.emit("send",{to:to,id:id,type:"error",error:data})},SessionManager.prototype._log=function(level,message){this.emit("log:"+level,message)},SessionManager.prototype.process=function(req){var self=this,sid=req.jingle?req.jingle.sid:null,session=this.sessions[sid]||null,rid=req.id,sender=req.from.full||req.from;if("error"===req.type){var isTieBreak=req.error&&"tie-break"===req.error.jingleCondition;return session&&session.pending&&isTieBreak?session.end("alternative-session",!0):(session&&(session.pendingAction=!1),this.emit("error",req))}if("result"===req.type)return void(session&&(session.pendingAction=!1));var action=req.jingle.action,contents=req.jingle.contents||[],descriptionTypes=contents.map(function(content){return content.description?content.description.descType:void 0}),transportTypes=contents.map(function(content){return content.transport?content.transport.transType:void 0});if("session-initiate"!==action){if(!session)return this._log("error","Unknown session",sid),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if(session.peerID!==sender||session.ended)return this._log("error","Session has ended, or action has wrong sender"),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if("session-accept"===action&&!session.pending)return this._log("error","Tried to accept session twice",sid),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if("session-terminate"!==action&&action===session.pendingAction&&(this._log("error","Tie break during pending request"),session.isInitiator))return this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(session){if(session.peerID!==sender)return this._log("error","Duplicate sid from new sender"),this._sendError(sender,rid,{condition:"service-unavailable"});if(!session.pending)return this._log("error","Someone is doing this wrong"),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if(this.selfID>session.peerID&&this.performTieBreak(session,req))return this._log("error","Tie break new session because of duplicate sids"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(this.peers[sender]&&this.peers[sender].length)for(var i=0,len=this.peers[sender].length;len>i;i++){var sess=this.peers[sender][i];if(sess&&sess.pending&&sess.sid>sid&&this.performTieBreak(sess,req))return this._log("info","Tie break session-initiate"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}if("session-initiate"===action){if(!contents.length)return self._sendError(sender,rid,{condition:"bad-request"});session=this._createIncomingSession({sid:sid,peer:req.from,peerID:sender,initiator:!1,parent:this,descriptionTypes:descriptionTypes,transportTypes:transportTypes,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints},req)}session.process(action,req.jingle,function(err){err?(self._log("error","Could not process request",req,err),self._sendError(sender,rid,err)):(self.emit("send",{to:sender,id:rid,type:"result"}),"session-initiate"===action&&self.emit("incoming",session))})},module.exports=SessionManager},{intersect:27,"jingle-filetransfer-session":28,"jingle-media-session":79,"jingle-session":111,util:24,webrtcsupport:115,wildemitter:116}],26:[function(require,module,exports){var arr=[],each=arr.forEach,slice=arr.slice;module.exports=function(obj){return each.call(slice.call(arguments,1),function(source){if(source)for(var prop in source)obj[prop]=source[prop]}),obj}},{}],27:[function(require,module,exports){function intersect(a,b){for(var res=[],i=0;i<a.length;i++)indexOf(b,a[i])>-1&&res.push(a[i]);return res}function indexOf(arr,el){for(var i=0;i<arr.length;i++)if(arr[i]===el)return i;return-1}module.exports=intersect,intersect.big=function(a,b){for(var ret=[],temp={},i=0;i<b.length;i++)temp[b[i]]=!0;for(var i=0;i<a.length;i++)temp[a[i]]&&ret.push(a[i]);return ret}},{}],28:[function(require,module,exports){function FileTransferSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addChannel",this.onChannelAdded.bind(this)),this.sender=null,this.receiver=null}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection"),FileTransfer=require("filetransfer/hashed");util.inherits(FileTransferSession,BaseSession),FileTransferSession.prototype=extend(FileTransferSession.prototype,{start:function(file){var self=this;this.state="pending",this.pc.isInitiator=!0,this.sender=new FileTransfer.Sender,this.sender.on("progress",function(sent,size){self._log("info","Send progress "+sent+"/"+size)}),this.sender.on("sentFile",function(meta){self._log("info","Sent file",meta.name);var content=self.pc.localDescription.contents[0];delete content.transport,content.description={descType:"filetransfer",offer:{hash:{algo:meta.algo,value:meta.hash}}},self.send("description-info",{contents:[content]}),self.emit("sentFile",self,meta)});var sendChannel=this.pc.createDataChannel("filetransfer");sendChannel.onopen=function(){self.sender.send(file,sendChannel)};var constraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offer.jingle.contents[0].description={descType:"filetransfer",offer:{date:file.lastModifiedDate,name:file.name,size:file.size,hash:{algo:"sha-1",value:""}}},void self.send("session-initiate",offer.jingle))})},accept:function(){var self=this;this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):void self.send("session-accept",answer.jingle)})},end:function(reason,silent){this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},maybeReceivedFile:function(){this.receiver.metadata.hash.value&&(this.receiver.metadata.hash.value===this.receiver.metadata.actualhash?(this._log("info","File hash matches"),this.emit("receivedFile",this,this.receivedFile,this.receiver.metadata),this.end("success")):(this._log("error","File hash does not match"),this.end("media-error")))},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onChannelAdded:function(channel){this.receiver.receive(null,channel)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1;var desc=changes.contents[0].description;this.receiver=new FileTransfer.Receiver({hash:desc.offer.hash.algo}),this.receiver.on("progress",function(received,size){self._log("info","Receive progress "+received+"/"+size)}),this.receiver.on("receivedFile",function(file){self.receivedFile=file,self.maybeReceivedFile()}),this.receiver.metadata=desc.offer,changes.contents[0].description={descType:"datachannel"},this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",changes.contents[0].description={descType:"datachannel"},this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){this._log("info","Terminating session"),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onDescriptionInfo:function(info,cb){var hash=info.contents[0].description.offer.hash;this.receiver.metadata.hash=hash,this.receiver.metadata.actualhash&&this.maybeReceivedFile(),cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})}}),module.exports=FileTransferSession},{"extend-object":26,"filetransfer/hashed":30,"jingle-session":111,rtcpeerconnection:78,util:24}],29:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var options=opts||{};this.config={chunksize:16384,pacing:0};var item;for(item in options)this.config[item]=options[item];this.file=null,this.channel=null}function Receiver(){WildEmitter.call(this),this.receiveBuffer=[],this.received=0,this.metadata={},this.channel=null}var WildEmitter=require("wildemitter"),util=require("util");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(file,channel){var self=this;this.file=file,this.channel=channel;var sliceFile=function(offset){var reader=new window.FileReader;reader.onload=function(){return function(e){self.channel.send(e.target.result),self.emit("progress",offset,file.size,e.target.result),file.size>offset+e.target.result.byteLength?window.setTimeout(sliceFile,self.config.pacing,offset+self.config.chunksize):(self.emit("progress",file.size,file.size,null),self.emit("sentFile"))}}(file);var slice=file.slice(offset,offset+self.config.chunksize);reader.readAsArrayBuffer(slice)};window.setTimeout(sliceFile,0,0)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(metadata,channel){var self=this;metadata&&(this.metadata=metadata),this.channel=channel,channel.binaryType="arraybuffer",this.channel.onmessage=function(event){var len=event.data.byteLength;self.received+=len,self.receiveBuffer.push(event.data),self.emit("progress",self.received,self.metadata.size,event.data),self.received===self.metadata.size?(self.emit("receivedFile",new window.Blob(self.receiveBuffer),self.metadata),self.receiveBuffer=[]):self.received>self.metadata.size&&(console.error("received more than expected, discarding..."),self.receiveBuffer=[])}},module.exports={},module.exports.support="undefined"!=typeof window&&window&&window.File&&window.FileReader&&window.Blob,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{util:24,wildemitter:116}],30:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var self=this;this.base=new base.Sender(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("sentFile",function(){self.emit("sentFile",{hash:self.hash.digest("hex"),algo:options.hash})})}function Receiver(opts){WildEmitter.call(this);var self=this;this.base=new base.Receiver(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("receivedFile",function(file,metadata){metadata.actualhash=self.hash.digest("hex"),self.emit("receivedFile",file,metadata)})}var WildEmitter=require("wildemitter"),util=require("util"),hashes=require("iana-hashes"),base=require("./filetransfer");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(){this.base.send.apply(this.base,arguments)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(){this.base.receive.apply(this.base,arguments)},Object.defineProperty(Receiver.prototype,"metadata",{get:function(){return this.base.metadata},set:function(value){this.base.metadata=value}}),module.exports={},module.exports.support=base.support,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{"./filetransfer":29,"iana-hashes":31,util:24,wildemitter:116}],31:[function(require,module,exports){var createHash=require("create-hash"),createHmac=require("create-hmac"),getHashes=require("./lib/get-hashes"),mapping={md2:"md2",md5:"md5","sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512"},names=Object.keys(mapping);exports.getHashes=function(){for(var result=[],available=getHashes(),i=0,len=names.length;len>i;i++)available.indexOf(mapping[names[i]])>=0&&result.push(names[i]);return result},exports.createHash=function(algorithm){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHash(algorithm)},exports.createHmac=function(algorithm,key){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHmac(algorithm,key)}},{"./lib/get-hashes":32,"create-hash":33,"create-hmac":46}],32:[function(require,module,exports){module.exports=function(){return["sha1","sha224","sha256","sha384","sha512","md5","rmd160"]}},{}],33:[function(require,module,exports){(function(Buffer){"use strict";function HashNoConstructor(hash){Transform.call(this),this._hash=hash,this.buffers=[]}function Hash(hash){Transform.call(this),this._hash=hash}var inherits=require("inherits"),md5=require("./md5"),rmd160=require("ripemd160"),sha=require("sha.js"),Transform=require("stream").Transform;inherits(HashNoConstructor,Transform),HashNoConstructor.prototype._transform=function(data,_,next){this.buffers.push(data),next()},HashNoConstructor.prototype._flush=function(next){this.push(this.digest()),next()},HashNoConstructor.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this.buffers.push(data),this},HashNoConstructor.prototype.digest=function(enc){var buf=Buffer.concat(this.buffers),r=this._hash(buf);return this.buffers=null,enc?r.toString(enc):r},inherits(Hash,Transform),Hash.prototype._transform=function(data,enc,next){enc&&(data=new Buffer(data,enc)),this._hash.update(data),next()},Hash.prototype._flush=function(next){this.push(this._hash.digest()),this._hash=null,next()},Hash.prototype.update=function(data,enc){return"string"==typeof data&&(data=new Buffer(data,enc)),this._hash.update(data),this},Hash.prototype.digest=function(enc){var outData=this._hash.digest();return enc?outData.toString(enc):outData},module.exports=function(alg){return"md5"===alg?new HashNoConstructor(md5):"rmd160"===alg?new HashNoConstructor(rmd160):new Hash(sha(alg))}}).call(this,require("buffer").Buffer)},{"./md5":35,buffer:2,inherits:36,ripemd160:37,"sha.js":39,stream:21}],34:[function(require,module,exports){(function(Buffer){"use strict";function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i<buf.length;i+=intSize)arr.push(fn.call(buf,i));return arr}function toBuffer(arr,size,bigEndian){for(var buf=new Buffer(size),fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE,i=0;i<arr.length;i++)fn.call(buf,arr[i],4*i,!0);return buf}function hash(buf,fn,hashSize,bigEndian){Buffer.isBuffer(buf)||(buf=new Buffer(buf));var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}var intSize=4,zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;exports.hash=hash}).call(this,require("buffer").Buffer)},{buffer:2}],35:[function(require,module,exports){"use strict";function core_md5(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":34}],36:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],37:[function(require,module,exports){(function(Buffer){function bytesToWords(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words}function wordsToBytes(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes}function processBlock(H,M,offset){for(var i=0;16>i;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];var t;for(i=0;80>i;i+=1)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;i<m.length;i+=16)processBlock(H,m,i);for(i=0;5>i;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
@@ -89,20 +89,20 @@ Redistribution and use in source and binary forms, with or without modification,
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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.
*/
-var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];module.exports=ripemd160}).call(this,require("buffer").Buffer)},{buffer:2}],38:[function(require,module){(function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=new Buffer(data,enc));for(var l=this._len+=data.length,s=this._s||0,f=0,buffer=this._block;l>s;){for(var t=Math.min(data.length,f+this._blockSize-s%this._blockSize),ch=t-f,i=0;ch>i;i++)buffer[s%this._blockSize+i]=data[i+f];s+=ch,f+=ch,s%this._blockSize===0&&this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var l=8*this._len;this._block[this._len%this._blockSize]=128,this._block.fill(0,this._len%this._blockSize+1),l%(8*this._blockSize)>=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:2}],39:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":40,"./sha1":41,"./sha224":42,"./sha256":43,"./sha384":44,"./sha512":45}],40:[function(require,module){(function(Buffer){function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha.prototype._update=function(M){function calcW(){return W[j-3]^W[j-8]^W[j-14]^W[j-16]}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;16>j;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;20>j;)loop(calcW(),b&c|~b&d);for(k=1859775393;40>j;)loop(calcW(),b^c^d);for(k=-1894007588;60>j;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;80>j;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],41:[function(require,module){(function(Buffer){function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha1.prototype._update=function(M){function calcW(){return rol(W[j-3]^W[j-8]^W[j-14]^W[j-16],1)}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;16>j;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;20>j;)loop(calcW(),b&c|~b&d);for(k=1859775393;40>j;)loop(calcW(),b^c^d);for(k=-1894007588;60>j;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;80>j;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],42:[function(require,module){(function(Buffer){function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),W=new Array(64);inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=-1056596264,this._b=914150663,this._c=812702999,this._d=-150054599,this._e=-4191439,this._f=1750603025,this._g=1694076839,this._h=-1090891868,this},Sha224.prototype._hash=function(){var H=new Buffer(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":38,"./sha256":43,buffer:2,inherits:36}],43:[function(require,module){(function(Buffer){function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function S(X,n){return X>>>n|X<<32-n}function R(X,n){return X>>>n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}function Sigma0256(x){return S(x,2)^S(x,13)^S(x,22)}function Sigma1256(x){return S(x,6)^S(x,11)^S(x,25)}function Gamma0256(x){return S(x,7)^S(x,18)^R(x,3)}function Gamma1256(x){return S(x,17)^S(x,19)^R(x,10)}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){function calcW(){return Gamma1256(W[j-2])+W[j-7]+Gamma0256(W[j-15])+W[j-16]}function loop(w){W[j]=w;var T1=h+Sigma1256(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0256(a)+Maj(a,b,c);h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2,j++}for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,j=0;16>j;)loop(M.readInt32BE(4*j));for(;64>j;)loop(calcW());this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],44:[function(require,module){(function(Buffer){function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),W=new Array(160);inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._a=-876896931,this._b=1654270250,this._c=-1856437926,this._d=355462360,this._e=1731405415,this._f=-1900787065,this._g=-619958771,this._h=1203062813,this._al=-1056596264,this._bl=914150663,this._cl=812702999,this._dl=-150054599,this._el=-4191439,this._fl=1750603025,this._gl=1694076839,this._hl=-1090891868,this},Sha384.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(48);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),H},module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":38,"./sha512":45,buffer:2,inherits:36}],45:[function(require,module){(function(Buffer){function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function S(X,Xl,n){return X>>>n|Xl<<32-n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._al=-205731576,this._bl=-2067093701,this._cl=-23791573,this._dl=1595750129,this._el=-1377402159,this._fl=725511199,this._gl=-79577749,this._hl=327033209,this},Sha512.prototype._update=function(M){function calcW(){var x=W[j-30],xl=W[j-30+1],gamma0=S(x,xl,1)^S(x,xl,8)^x>>>7,gamma0l=S(xl,x,1)^S(xl,x,8)^S(xl,x,7);x=W[j-4],xl=W[j-4+1];var gamma1=S(x,xl,19)^S(xl,x,29)^x>>>6,gamma1l=S(xl,x,19)^S(x,xl,29)^S(xl,x,6),Wi7=W[j-14],Wi7l=W[j-14+1],Wi16=W[j-32],Wi16l=W[j-32+1];Wil=gamma0l+Wi7l,Wi=gamma0+Wi7+(gamma0l>>>0>Wil>>>0?1:0),Wil+=gamma1l,Wi=Wi+gamma1+(gamma1l>>>0>Wil>>>0?1:0),Wil+=Wi16l,Wi=Wi+Wi16+(Wi16l>>>0>Wil>>>0?1:0)}function loop(){W[j]=Wi,W[j+1]=Wil;var maj=Maj(a,b,c),majl=Maj(al,bl,cl),sigma0h=S(a,al,28)^S(al,a,2)^S(al,a,7),sigma0l=S(al,a,28)^S(a,al,2)^S(a,al,7),sigma1h=S(e,el,14)^S(e,el,18)^S(el,e,9),sigma1l=S(el,e,14)^S(el,e,18)^S(e,el,9),Ki=K[j],Kil=K[j+1],ch=Ch(e,f,g),chl=Ch(el,fl,gl),t1l=hl+sigma1l,t1=h+sigma1h+(hl>>>0>t1l>>>0?1:0);t1l+=chl,t1=t1+ch+(chl>>>0>t1l>>>0?1:0),t1l+=Kil,t1=t1+Ki+(Kil>>>0>t1l>>>0?1:0),t1l+=Wil,t1=t1+Wi+(Wil>>>0>t1l>>>0?1:0);var t2l=sigma0l+majl,t2=sigma0h+maj+(sigma0l>>>0>t2l>>>0?1:0);h=g,hl=gl,g=f,gl=fl,f=e,fl=el,el=dl+t1l|0,e=d+t1+(dl>>>0>el>>>0?1:0)|0,d=c,dl=cl,c=b,cl=bl,b=a,bl=al,al=t1l+t2l|0,a=t1+t2+(t1l>>>0>al>>>0?1:0)|0,i++,j+=2}for(var Wi,Wil,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0,j=0;16>i;)Wi=M.readInt32BE(4*j),Wil=M.readInt32BE(4*j+4),loop();for(;80>i;)calcW(),loop();this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._a=this._a+a+(this._al>>>0<al>>>0?1:0)|0,this._b=this._b+b+(this._bl>>>0<bl>>>0?1:0)|0,this._c=this._c+c+(this._cl>>>0<cl>>>0?1:0)|0,this._d=this._d+d+(this._dl>>>0<dl>>>0?1:0)|0,this._e=this._e+e+(this._el>>>0<el>>>0?1:0)|0,this._f=this._f+f+(this._fl>>>0<fl>>>0?1:0)|0,this._g=this._g+g+(this._gl>>>0<gl>>>0?1:0)|0,this._h=this._h+h+(this._hl>>>0<hl>>>0?1:0)|0},Sha512.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(64);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),writeInt64BE(this._g,this._gl,48),writeInt64BE(this._h,this._hl,56),H},module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],46:[function(require,module){(function(Buffer){"use strict";function Hmac(alg,key){Transform.call(this),"string"==typeof key&&(key=new Buffer(key));var blocksize="sha512"===alg||"sha384"===alg?128:64;this._alg=alg,this._key=key,key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,ZEROS],blocksize));for(var ipad=this._ipad=new Buffer(blocksize),opad=this._opad=new Buffer(blocksize),i=0;blocksize>i;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("create-hash/browser"),inherits=require("inherits"),Transform=require("stream").Transform,ZEROS=new Buffer(128);ZEROS.fill(0),inherits(Hmac,Transform),Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype._transform=function(data,_,next){this._hash.update(data),next()},Hmac.prototype._flush=function(next){this.push(this.digest()),next()},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)},module.exports=function(alg,key){return new Hmac(alg,key)}}).call(this,require("buffer").Buffer)},{buffer:2,"create-hash/browser":33,inherits:47,stream:21}],47:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],48:[function(require,module){function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&void 0===thisArg&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}var arrayEach=require("lodash._arrayeach"),baseEach=require("lodash._baseeach"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),forEach=createForEach(arrayEach,baseEach);module.exports=forEach},{"lodash._arrayeach":49,"lodash._baseeach":50,"lodash._bindcallback":54,"lodash.isarray":55}],49:[function(require,module){function arrayEach(array,iteratee){for(var index=-1,length=array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}module.exports=arrayEach},{}],50:[function(require,module){function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:++index<length;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var keys=require("lodash.keys"),MAX_SAFE_INTEGER=9007199254740991,baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor(),getLength=baseProperty("length");module.exports=baseEach},{"lodash.keys":51}],51:[function(require,module){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&length>value}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)),index=-1,result=[];++index<propsLength;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;++index<length;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}var getNative=require("lodash._getnative"),isArguments=require("lodash.isarguments"),isArray=require("lodash.isarray"),reIsUint=/^\d+$/,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeKeys=getNative(Object,"keys"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length"),keys=nativeKeys?function(object){var Ctor=null==object?void 0:object.constructor;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isArrayLike(object)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys;module.exports=keys},{"lodash._getnative":52,"lodash.isarguments":53,"lodash.isarray":55}],52:[function(require,module){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}var funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");module.exports=getNative},{}],53:[function(require,module){function isObjectLike(value){return!!value&&"object"==typeof value}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isArguments(value){return isObjectLike(value)&&isArrayLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")}var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,propertyIsEnumerable=objectProto.propertyIsEnumerable,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isArguments},{}],54:[function(require,module){function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(void 0===thisArg)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function identity(value){return value}module.exports=bindCallback},{}],55:[function(require,module){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag};module.exports=isArray},{}],56:[function(require,module){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function toObject(value){return isObject(value)?value:Object(value)}function pluck(collection,path){return map(collection,property(path))}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseGet=require("lodash._baseget"),toPath=require("lodash._topath"),isArray=require("lodash.isarray"),map=require("lodash.map"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;module.exports=pluck},{"lodash._baseget":57,"lodash._topath":58,"lodash.isarray":59,"lodash.map":60}],57:[function(require,module){function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&length>index;)object=object[path[index++]];return index&&index==length?object:void 0}}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}module.exports=baseGet},{}],58:[function(require,module){function baseToString(value){return null==value?"":value+""}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}var isArray=require("lodash.isarray"),rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=toPath},{"lodash.isarray":59}],59:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],60:[function(require,module){function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function map(collection,iteratee,thisArg){var func=isArray(collection)?arrayMap:baseMap;return iteratee=baseCallback(iteratee,thisArg,3),func(collection,iteratee)}var arrayMap=require("lodash._arraymap"),baseCallback=require("lodash._basecallback"),baseEach=require("lodash._baseeach"),isArray=require("lodash.isarray"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=map},{"lodash._arraymap":61,"lodash._basecallback":62,"lodash._baseeach":67,"lodash.isarray":59}],61:[function(require,module){function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}module.exports=arrayMap},{}],62:[function(require,module){function baseToString(value){return null==value?"":value+""}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?void 0===thisArg?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):void 0===thisArg?property(func):baseMatchesProperty(func,thisArg)}function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&length>index;)object=object[path[index++]];return index&&index==length?object:void 0}}function baseIsMatch(object,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=toObject(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(void 0===objValue&&!(key in object))return!1}else{var result=customizer?customizer(objValue,srcValue,key):void 0;if(!(void 0===result?baseIsEqual(srcValue,objValue,customizer,!0):result))return!1}}return!0}function baseMatches(source){var matchData=getMatchData(source);if(1==matchData.length&&matchData[0][2]){var key=matchData[0][0],value=matchData[0][1];return function(object){return null==object?!1:object[key]===value&&(void 0!==value||key in toObject(object))}}return function(object){return baseIsMatch(object,matchData)}}function baseMatchesProperty(path,srcValue){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(srcValue),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===srcValue?void 0!==srcValue||key in object:baseIsEqual(srcValue,object[key],void 0,!0)}}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=void 0===end||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}function getMatchData(object){for(var result=pairs(object),length=result.length;length--;)result[length][2]=isStrictComparable(result[length][1]);return result}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isStrictComparable(value){return value===value&&!isObject(value)}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}function last(array){var length=array?array.length:0;return length?array[length-1]:void 0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),pairs=require("lodash.pairs"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=baseCallback},{"lodash._baseisequal":63,"lodash._bindcallback":65,"lodash.isarray":59,"lodash.pairs":66}],63:[function(require,module){function isObjectLike(value){return!!value&&"object"==typeof value}function arraySome(array,predicate){for(var index=-1,length=array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){return value===other?!0:null==value||null==other||!isObject(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));
-var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped)return equalFunc(objIsWrapped?object.value():object,othIsWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;++index<arrLength;){var arrValue=array[index],othValue=other[index],result=customizer?customizer(isLoose?othValue:arrValue,isLoose?arrValue:othValue,index):void 0;if(void 0!==result){if(result)continue;return!1}if(isLoose){if(!arraySome(other,function(othValue){return arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}))return!1}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))return!1}return!0}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:object==+other;case regexpTag:case stringTag:return object==other+""}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isLoose?key in other:hasOwnProperty.call(other,key)))return!1}for(var skipCtor=isLoose;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key],result=customizer?customizer(isLoose?othValue:objValue,isLoose?objValue:othValue,key):void 0;if(!(void 0===result?equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB):result))return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var isArray=require("lodash.isarray"),isTypedArray=require("lodash.istypedarray"),keys=require("lodash.keys"),argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",stringTag="[object String]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString;module.exports=baseIsEqual},{"lodash.isarray":59,"lodash.istypedarray":64,"lodash.keys":68}],64:[function(require,module){function isObjectLike(value){return!!value&&"object"==typeof value}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}var argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objToString=objectProto.toString,MAX_SAFE_INTEGER=9007199254740991;module.exports=isTypedArray},{}],65:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],66:[function(require,module){function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function pairs(object){object=toObject(object);for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;){var key=props[index];result[index]=[key,object[key]]}return result}var keys=require("lodash.keys");module.exports=pairs},{"lodash.keys":68}],67:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":68}],68:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":69,"lodash.isarguments":70,"lodash.isarray":59}],69:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],70:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],71:[function(require,module,exports){var toSDP=require("./lib/tosdp"),toJSON=require("./lib/tojson");exports.toIncomingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"incoming"})},exports.toOutgoingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"outgoing"})},exports.toIncomingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"incoming"})},exports.toOutgoingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"outgoing"})},exports.toIncomingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"incoming"})},exports.toOutgoingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"outgoing"})},exports.toIncomingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"incoming"})},exports.toOutgoingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"outgoing"})},exports.toCandidateSDP=toSDP.toCandidateSDP,exports.toMediaSDP=toSDP.toMediaSDP,exports.toSessionSDP=toSDP.toSessionSDP,exports.toIncomingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"incoming",creators:creators})},exports.toOutgoingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"outgoing",creators:creators})},exports.toIncomingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"incoming",creators:creators})},exports.toOutgoingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"outgoing",creators:creators})},exports.toIncomingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"outgoing",creator:creator})},exports.toIncomingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"outgoing",creator:creator})},exports.toCandidateJSON=toJSON.toCandidateJSON,exports.toMediaJSON=toJSON.toMediaJSON,exports.toSessionJSON=toJSON.toSessionJSON},{"./lib/tojson":74,"./lib/tosdp":75}],72:[function(require,module,exports){exports.lines=function(sdp){return sdp.split("\r\n").filter(function(line){return line.length>0})},exports.findLine=function(prefix,mediaLines,sessionLines){for(var prefixLength=prefix.length,i=0;i<mediaLines.length;i++)if(mediaLines[i].substr(0,prefixLength)===prefix)return mediaLines[i];if(!sessionLines)return!1;for(var j=0;j<sessionLines.length;j++)if(sessionLines[j].substr(0,prefixLength)===prefix)return sessionLines[j];return!1},exports.findLines=function(prefix,mediaLines,sessionLines){for(var results=[],prefixLength=prefix.length,i=0;i<mediaLines.length;i++)mediaLines[i].substr(0,prefixLength)===prefix&&results.push(mediaLines[i]);if(results.length||!sessionLines)return results;for(var j=0;j<sessionLines.length;j++)sessionLines[j].substr(0,prefixLength)===prefix&&results.push(sessionLines[j]);return results},exports.mline=function(line){for(var parts=line.substr(2).split(" "),parsed={media:parts[0],port:parts[1],proto:parts[2],formats:[]},i=3;i<parts.length;i++)parts[i]&&parsed.formats.push(parts[i]);return parsed},exports.rtpmap=function(line){var parts=line.substr(9).split(" "),parsed={id:parts.shift()};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockrate=parts[1],parsed.channels=3==parts.length?parts[2]:"1",parsed},exports.sctpmap=function(line){var parts=line.substr(10).split(" "),parsed={number:parts.shift(),protocol:parts.shift(),streams:parts.shift()};return parsed},exports.fmtp=function(line){for(var kv,key,value,parts=line.substr(line.indexOf(" ")+1).split(";"),parsed=[],i=0;i<parts.length;i++)kv=parts[i].split("="),key=kv[0].trim(),value=kv[1],key&&value?parsed.push({key:key,value:value}):key&&parsed.push({key:"",value:key});return parsed},exports.crypto=function(line){var parts=line.substr(9).split(" "),parsed={tag:parts[0],cipherSuite:parts[1],keyParams:parts[2],sessionParams:parts.slice(3).join(" ")};return parsed},exports.fingerprint=function(line){var parts=line.substr(14).split(" ");return{hash:parts[0],value:parts[1]}},exports.extmap=function(line){var parts=line.substr(9).split(" "),parsed={},idpart=parts.shift(),sp=idpart.indexOf("/");return sp>=0?(parsed.id=idpart.substr(0,sp),parsed.senders=idpart.substr(sp+1)):(parsed.id=idpart,parsed.senders="sendrecv"),parsed.uri=parts.shift()||"",parsed},exports.rtcpfb=function(line){var parts=line.substr(10).split(" "),parsed={};return parsed.id=parts.shift(),parsed.type=parts.shift(),"trr-int"===parsed.type?parsed.value=parts.shift():parsed.subtype=parts.shift()||"",parsed.parameters=parts,parsed},exports.candidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parts[3],ip:parts[4],port:parts[5],type:parts[7],generation:"0"},i=8;i<parts.length;i+=2)"raddr"===parts[i]?candidate.relAddr=parts[i+1]:"rport"===parts[i]?candidate.relPort=parts[i+1]:"generation"===parts[i]?candidate.generation=parts[i+1]:"tcptype"===parts[i]&&(candidate.tcpType=parts[i+1]);return candidate.network="1",candidate},exports.sourceGroups=function(lines){for(var parsed=[],i=0;i<lines.length;i++){var parts=lines[i].substr(13).split(" ");parsed.push({semantics:parts.shift(),sources:parts})}return parsed},exports.sources=function(lines){for(var parsed=[],sources={},i=0;i<lines.length;i++){var parts=lines[i].substr(7).split(" "),ssrc=parts.shift();if(!sources[ssrc]){var source={ssrc:ssrc,parameters:[]};parsed.push(source),sources[ssrc]=source}parts=parts.join(" ").split(":");var attribute=parts.shift(),value=parts.join(":")||null;sources[ssrc].parameters.push({key:attribute,value:value})}return parsed},exports.groups=function(lines){for(var parts,parsed=[],i=0;i<lines.length;i++)parts=lines[i].substr(8).split(" "),parsed.push({semantics:parts.shift(),contents:parts});return parsed},exports.bandwidth=function(line){var parts=line.substr(2).split(":"),parsed={};return parsed.type=parts.shift(),parsed.bandwidth=parts.shift(),parsed},exports.msid=function(line){var data=line.substr(7),parts=data.split(" ");return{msid:data,mslabel:parts[0],label:parts[1]}}},{}],73:[function(require,module){module.exports={initiator:{incoming:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"},outgoing:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"}},responder:{incoming:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"},outgoing:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"}}}},{}],74:[function(require,module,exports){var SENDERS=require("./senders"),parsers=require("./parsers"),idCounter=Math.random();exports._setIdCounter=function(counter){idCounter=counter},exports.toSessionJSON=function(sdp,opts){var i,creators=opts.creators||[],role=opts.role||"initiator",direction=opts.direction||"outgoing",media=sdp.split("\r\nm=");for(i=1;i<media.length;i++)media[i]="m="+media[i],i!==media.length-1&&(media[i]+="\r\n");var session=media.shift()+"\r\n",sessionLines=parsers.lines(session),parsed={},contents=[];for(i=0;i<media.length;i++)contents.push(exports.toMediaJSON(media[i],session,{role:role,direction:direction,creator:creators[i]||"initiator"}));parsed.contents=contents;var groupLines=parsers.findLines("a=group:",sessionLines);return groupLines.length&&(parsed.groups=parsers.groups(groupLines)),parsed},exports.toMediaJSON=function(media,session,opts){var creator=opts.creator||"initiator",role=opts.role||"initiator",direction=opts.direction||"outgoing",lines=parsers.lines(media),sessionLines=parsers.lines(session),mline=parsers.mline(lines[0]),content={creator:creator,name:mline.media,description:{descType:"rtp",media:mline.media,payloads:[],encryption:[],feedback:[],headerExtensions:[]},transport:{transType:"iceUdp",candidates:[],fingerprints:[]}};"application"==mline.media&&(content.description={descType:"datachannel"},content.transport.sctp=[]);var desc=content.description,trans=content.transport,mid=parsers.findLine("a=mid:",lines);if(mid&&(content.name=mid.substr(6)),parsers.findLine("a=sendrecv",lines,sessionLines)?content.senders="both":parsers.findLine("a=sendonly",lines,sessionLines)?content.senders=SENDERS[role][direction].sendonly:parsers.findLine("a=recvonly",lines,sessionLines)?content.senders=SENDERS[role][direction].recvonly:parsers.findLine("a=inactive",lines,sessionLines)&&(content.senders="none"),"rtp"==desc.descType){var bandwidth=parsers.findLine("b=",lines);bandwidth&&(desc.bandwidth=parsers.bandwidth(bandwidth));var ssrc=parsers.findLine("a=ssrc:",lines);ssrc&&(desc.ssrc=ssrc.substr(7).split(" ")[0]);var rtpmapLines=parsers.findLines("a=rtpmap:",lines);rtpmapLines.forEach(function(line){var payload=parsers.rtpmap(line);payload.parameters=[],payload.feedback=[];var fmtpLines=parsers.findLines("a=fmtp:"+payload.id,lines);fmtpLines.forEach(function(line){payload.parameters=parsers.fmtp(line)});var fbLines=parsers.findLines("a=rtcp-fb:"+payload.id,lines);fbLines.forEach(function(line){payload.feedback.push(parsers.rtcpfb(line))}),desc.payloads.push(payload)});var cryptoLines=parsers.findLines("a=crypto:",lines,sessionLines);cryptoLines.forEach(function(line){desc.encryption.push(parsers.crypto(line))}),parsers.findLine("a=rtcp-mux",lines)&&(desc.mux=!0);var fbLines=parsers.findLines("a=rtcp-fb:*",lines);fbLines.forEach(function(line){desc.feedback.push(parsers.rtcpfb(line))});var extLines=parsers.findLines("a=extmap:",lines);extLines.forEach(function(line){var ext=parsers.extmap(line);ext.senders=SENDERS[role][direction][ext.senders],desc.headerExtensions.push(ext)});var ssrcGroupLines=parsers.findLines("a=ssrc-group:",lines);desc.sourceGroups=parsers.sourceGroups(ssrcGroupLines||[]);var ssrcLines=parsers.findLines("a=ssrc:",lines),sources=desc.sources=parsers.sources(ssrcLines||[]),msidLine=parsers.findLine("a=msid:",lines);if(msidLine){var msid=parsers.msid(msidLine);["msid","mslabel","label"].forEach(function(key){for(var i=0;i<sources.length;i++){for(var found=!1,j=0;j<sources[i].parameters.length;j++)sources[i].parameters[j].key===key&&(found=!0);found||sources[i].parameters.push({key:key,value:msid[key]})}})}parsers.findLine("a=x-google-flag:conference",lines,sessionLines)&&(desc.googConferenceFlag=!0)}var fingerprintLines=parsers.findLines("a=fingerprint:",lines,sessionLines),setup=parsers.findLine("a=setup:",lines,sessionLines);fingerprintLines.forEach(function(line){var fp=parsers.fingerprint(line);setup&&(fp.setup=setup.substr(8)),trans.fingerprints.push(fp)});var ufragLine=parsers.findLine("a=ice-ufrag:",lines,sessionLines),pwdLine=parsers.findLine("a=ice-pwd:",lines,sessionLines);if(ufragLine&&pwdLine){trans.ufrag=ufragLine.substr(12),trans.pwd=pwdLine.substr(10),trans.candidates=[];var candidateLines=parsers.findLines("a=candidate:",lines,sessionLines);candidateLines.forEach(function(line){trans.candidates.push(exports.toCandidateJSON(line))})}if("datachannel"==desc.descType){var sctpmapLines=parsers.findLines("a=sctpmap:",lines);sctpmapLines.forEach(function(line){var sctp=parsers.sctpmap(line);trans.sctp.push(sctp)})}return content},exports.toCandidateJSON=function(line){var candidate=parsers.candidate(line.split("\r\n")[0]);return candidate.id=(idCounter++).toString(36).substr(0,12),candidate}},{"./parsers":72,"./senders":73}],75:[function(require,module,exports){var SENDERS=require("./senders");exports.toSessionSDP=function(session,opts){var sid=(opts.role||"initiator",opts.direction||"outgoing",opts.sid||session.sid||Date.now()),time=opts.time||Date.now(),sdp=["v=0","o=- "+sid+" "+time+" IN IP4 0.0.0.0","s=-","t=0 0"],groups=session.groups||[];groups.forEach(function(group){sdp.push("a=group:"+group.semantics+" "+group.contents.join(" "))});var contents=session.contents||[];return contents.forEach(function(content){sdp.push(exports.toMediaSDP(content,opts))}),sdp.join("\r\n")+"\r\n"},exports.toMediaSDP=function(content,opts){var sdp=[],role=opts.role||"initiator",direction=opts.direction||"outgoing",desc=content.description,transport=content.transport,payloads=desc.payloads||[],fingerprints=transport&&transport.fingerprints||[],mline=[];if("datachannel"==desc.descType?(mline.push("application"),mline.push("1"),mline.push("DTLS/SCTP"),transport.sctp&&transport.sctp.forEach(function(map){mline.push(map.number)})):(mline.push(desc.media),mline.push("1"),mline.push(desc.encryption&&desc.encryption.length>0||fingerprints.length>0?"RTP/SAVPF":"RTP/AVPF"),payloads.forEach(function(payload){mline.push(payload.id)})),sdp.push("m="+mline.join(" ")),sdp.push("c=IN IP4 0.0.0.0"),desc.bandwidth&&desc.bandwidth.type&&desc.bandwidth.bandwidth&&sdp.push("b="+desc.bandwidth.type+":"+desc.bandwidth.bandwidth),"rtp"==desc.descType&&sdp.push("a=rtcp:1 IN IP4 0.0.0.0"),transport){transport.ufrag&&sdp.push("a=ice-ufrag:"+transport.ufrag),transport.pwd&&sdp.push("a=ice-pwd:"+transport.pwd);var pushedSetup=!1;fingerprints.forEach(function(fingerprint){sdp.push("a=fingerprint:"+fingerprint.hash+" "+fingerprint.value),fingerprint.setup&&!pushedSetup&&sdp.push("a=setup:"+fingerprint.setup)}),transport.sctp&&transport.sctp.forEach(function(map){sdp.push("a=sctpmap:"+map.number+" "+map.protocol+" "+map.streams)})}"rtp"==desc.descType&&sdp.push("a="+(SENDERS[role][direction][content.senders]||"sendrecv")),sdp.push("a=mid:"+content.name),desc.sources&&desc.sources.length&&(desc.sources[0].parameters||[]).forEach(function(param){"msid"===param.key&&sdp.push("a=msid:"+param.value)}),desc.mux&&sdp.push("a=rtcp-mux");var encryption=desc.encryption||[];encryption.forEach(function(crypto){sdp.push("a=crypto:"+crypto.tag+" "+crypto.cipherSuite+" "+crypto.keyParams+(crypto.sessionParams?" "+crypto.sessionParams:""))}),desc.googConferenceFlag&&sdp.push("a=x-google-flag:conference"),payloads.forEach(function(payload){var rtpmap="a=rtpmap:"+payload.id+" "+payload.name+"/"+payload.clockrate;if(payload.channels&&"1"!=payload.channels&&(rtpmap+="/"+payload.channels),sdp.push(rtpmap),payload.parameters&&payload.parameters.length){var fmtp=["a=fmtp:"+payload.id],parameters=[];payload.parameters.forEach(function(param){parameters.push((param.key?param.key+"=":"")+param.value)}),fmtp.push(parameters.join(";")),sdp.push(fmtp.join(" "))}payload.feedback&&payload.feedback.forEach(function(fb){sdp.push("trr-int"===fb.type?"a=rtcp-fb:"+payload.id+" trr-int "+(fb.value?fb.value:"0"):"a=rtcp-fb:"+payload.id+" "+fb.type+(fb.subtype?" "+fb.subtype:""))})}),desc.feedback&&desc.feedback.forEach(function(fb){sdp.push("trr-int"===fb.type?"a=rtcp-fb:* trr-int "+(fb.value?fb.value:"0"):"a=rtcp-fb:* "+fb.type+(fb.subtype?" "+fb.subtype:""))});var hdrExts=desc.headerExtensions||[];hdrExts.forEach(function(hdr){sdp.push("a=extmap:"+hdr.id+(hdr.senders?"/"+SENDERS[role][direction][hdr.senders]:"")+" "+hdr.uri)});var ssrcGroups=desc.sourceGroups||[];ssrcGroups.forEach(function(ssrcGroup){sdp.push("a=ssrc-group:"+ssrcGroup.semantics+" "+ssrcGroup.sources.join(" "))});var ssrcs=desc.sources||[];ssrcs.forEach(function(ssrc){for(var i=0;i<ssrc.parameters.length;i++){var param=ssrc.parameters[i];sdp.push("a=ssrc:"+(ssrc.ssrc||desc.ssrc)+" "+param.key+(param.value?":"+param.value:""))}});var candidates=transport.candidates||[];return candidates.forEach(function(candidate){sdp.push(exports.toCandidateSDP(candidate))}),sdp.join("\r\n")},exports.toCandidateSDP=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),("srflx"===type||"prflx"===type||"relay"===type)&&candidate.relAddr&&candidate.relPort&&(sdp.push("raddr"),sdp.push(candidate.relAddr),sdp.push("rport"),sdp.push(candidate.relPort)),candidate.tcpType&&"TCP"==candidate.protocol.toUpperCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),sdp.push("generation"),sdp.push(candidate.generation||"0"),"a=candidate:"+sdp.join(" ")}},{"./senders":73}],76:[function(require,module){function dumpSDP(description){return{type:description.type,sdp:description.sdp}}function dumpStream(stream){var info={label:stream.id};return stream.getAudioTracks().length&&(info.audio=stream.getAudioTracks().map(function(track){return track.id})),stream.getVideoTracks().length&&(info.video=stream.getVideoTracks().map(function(track){return track.id})),info}function TraceablePeerConnection(config,constraints){var self=this;WildEmitter.call(this),this.peerconnection=new window.RTCPeerConnection(config,constraints),this.trace=function(what,info){self.emit("PeerConnectionTrace",{time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",event.candidate),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",dumpStream(event.stream)),null!==self.onaddstream&&self.onaddstream(event)},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",dumpStream(event.stream)),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},this.getLocalStreams=this.peerconnection.getLocalStreams.bind(this.peerconnection),this.getRemoteStreams=this.peerconnection.getRemoteStreams.bind(this.peerconnection)}var util=require("util"),WildEmitter=(require("webrtc-adapter-test"),require("wildemitter"));util.inherits(TraceablePeerConnection,WildEmitter),["signalingState","iceConnectionState","localDescription","remoteDescription"].forEach(function(prop){Object.defineProperty(TraceablePeerConnection.prototype,prop,{get:function(){return this.peerconnection[prop]}})}),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",dumpStream(stream)),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",dumpStream(stream)),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){return this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description,function(){self.trace("setLocalDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description,function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),"closed"!=this.peerconnection.signalingState&&this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createOffer",constraints),this.peerconnection.createOffer(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback&&successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createAnswer",constraints),this.peerconnection.createAnswer(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback&&successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.addIceCandidate=function(candidate,successCallback,failureCallback){var self=this;this.trace("addIceCandidate",candidate),this.peerconnection.addIceCandidate(candidate,function(){successCallback&&successCallback()},function(err){self.trace("addIceCandidateOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.getStats=function(){this.peerconnection.getStats.apply(this.pc,arguments)},module.exports=TraceablePeerConnection},{util:24,"webrtc-adapter-test":77,wildemitter:116}],77:[function(require,module){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"==typeof module&&"function"!=typeof require&&"function"==typeof define&&console.log.apply(console,arguments)}};if("undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10),webrtcMinimumVersion=31,window.RTCPeerConnection=function(pcConfig,pcConstraints){if(38>webrtcDetectedVersion&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate,getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if((void 0!==r.min||void 0!==r.max||void 0!==r.exact)&&require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};oc[key]="number"==typeof r.ideal?{min:r.ideal,max:r.ideal}:r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return 38>webrtcDetectedVersion&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},41>webrtcDetectedVersion){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices()["catch"](function(e){if("NotFoundError"===e.name)return[];throw e})}}attachMediaStream=function(element,stream){element.mozSrcObject=stream},reattachMediaStream=function(to,from){to.mozSrcObject=from.mozSrcObject}}else if(navigator.webkitGetUserMedia){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);
-var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){origGetStats.apply(self,[resolve,reject])})},pc},["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),attachMediaStream=function(element,stream){"undefined"!=typeof element.srcObject?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){to.src=from.src}}else navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)?(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)[2],10),webrtcMinimumVersion=12,getUserMedia=navigator.getUserMedia,attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}):webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";var webrtcTesting={};if(Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}}),"undefined"!=typeof module){var RTCPeerConnection;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection),module.exports={RTCPeerConnection:RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}})},{}],78:[function(require,module){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[],this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"firefox"===adapter.webrtcDetectedBrowser&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,ice:{},sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),each=require("lodash.foreach"),pluck=require("lodash.pluck"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),peerconn=require("traceablepeerconnection"),adapter=require("webrtc-adapter-test");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=pluck(this.remoteDescription.contents,"name"),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name;candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new RTCIceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)})})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new RTCIceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate)}cb()},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.description.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.description.sources||[];(0===sources.length||"3735928559"!==sources[0].ssrc)&&(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.description.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.description&&content.description.bandwidth;hasBw||(offer.jingle.contents[1].description.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new RTCIceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].description.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].description.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(newssrc),sim.push(answer.jingle.contents[1].description.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].description.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};self.assumeSetLocalSuccess&&(self.emit("answer",expandedAnswer),cb(null,expandedAnswer)),self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}self.enableChromeNativeSimulcast&&(expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"})),expandedAnswer.jingle.contents[1].description.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})),expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("answer",expandedAnswer),cb(null,expandedAnswer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(ice.sdpMid=self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?self.remoteDescription.contents[ice.sdpMLineIndex].name:self.localDescription.contents[ice.sdpMLineIndex].name),!self.config.ice[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transType:"iceUdp",ufrag:self.config.ice[ice.sdpMid].ufrag,pwd:self.config.ice[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){"firefox"===adapter.webrtcDetectedBrowser?this.pc.getStats(function(res){var items=[];for(var result in res)"object"==typeof res[result]&&items.push(res[result]);cb(null,items)},cb):this.pc.getStats(function(res){var items=[];res.result().forEach(function(result){var item={};result.names().forEach(function(name){item[name]=result.stat(name)}),item.id=result.id,item.type=result.type,item.timestamp=result.timestamp,items.push(item)}),cb(null,items)})},module.exports=PeerConnection},{"lodash.foreach":48,"lodash.pluck":56,"sdp-jingle-json":71,traceablepeerconnection:76,util:24,"webrtc-adapter-test":77,wildemitter:116}],79:[function(require,module){function filterContentSources(content,stream){delete content.transport,delete content.description.payloads,content.description.sources&&(content.description.sources=content.description.sources.filter(function(source){return stream.id===source.parameters[1].value.split(" ")[0]}))}function filterUnusedLabels(content){var sources=content.description.sources||[];sources.forEach(function(source){source.parameters=source.parameters.filter(function(parameter){return!("mslabel"===parameter.key||"label"===parameter.key)})})}function MediaSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addStream",this.onAddStream.bind(this)),this.pc.on("removeStream",this.onRemoveStream.bind(this)),opts.stream&&this.addStream(opts.stream),this._ringing=!1}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection");util.inherits(MediaSession,BaseSession),Object.defineProperties(MediaSession.prototype,{ringing:{get:function(){return this._ringing},set:function(value){value!==this._ringing&&(this._ringing=value,this.emit("change:ringing",value))}},streams:{get:function(){return"closed"!==this.pc.signalingState?this.pc.getRemoteStreams():[]}}}),MediaSession.prototype=extend(MediaSession.prototype,{start:function(constraints,next){var self=this;this.state="pending",next=next||function(){},this.pc.isInitiator=!0,this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(constraints&&constraints.mandatory&&offer.jingle.contents.forEach(function(content){var mediaType=content.description.media;content.description&&"rtp"===content.description.descType&&(constraints.mandatory.OfferToReceiveAudio||"audio"!==mediaType||(content.senders="initiator"),constraints.mandatory.OfferToReceiveVideo||"video"!==mediaType||(content.senders="initiator"))}),offer.jingle.contents.forEach(filterUnusedLabels),self.send("session-initiate",offer.jingle),void next())})},accept:function(next){var self=this;next=next||function(){},this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):(answer.jingle.contents.forEach(filterUnusedLabels),self.send("session-accept",answer.jingle),void next())})},end:function(reason,silent){var self=this;this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},ring:function(){this._log("info","Ringing on incoming session"),this.ringing=!0,this.send("session-info",{ringing:!0})},mute:function(creator,name){this._log("info","Muting",name),this.send("session-info",{mute:{creator:creator,name:name}})},unmute:function(creator,name){this._log("info","Unmuting",name),this.send("session-info",{unmute:{creator:creator,name:name}})},hold:function(){this._log("info","Placing on hold"),this.send("session-info",{hold:!0})},resume:function(){this._log("info","Resuming from hold"),this.send("session-info",{active:!0})},addStream:function(stream,renegotiate,cb){var self=this;cb=cb||function(){},this.pc.addStream(stream),renegotiate&&this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not create offer for adding new stream"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not create answer for adding new stream"),cb(err)):(answer.jingle.contents.forEach(function(content){filterContentSources(content,stream)}),self.send("source-add",answer.jingle),void cb())})})},addStream2:function(stream,cb){this.addStream(stream,!0,cb)},removeStream:function(stream,renegotiate,cb){var self=this;if(cb=cb||function(){},!renegotiate)return void this.pc.removeStream(stream);var desc=this.pc.localDescription;desc.contents.forEach(function(content){filterContentSources(content,stream)}),this.send("source-remove",desc),this.pc.removeStream(stream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for removing stream"),cb(err)):void self.pc.answer(function(err){return err?(self._log("error","Could not process answer for removing stream"),cb(err)):void cb()})})},removeStream2:function(stream,cb){this.removeStream(stream,!0,cb)},switchStream:function(oldStream,newStream,cb){var self=this;cb=cb||function(){};var desc=this.pc.localDescription;desc.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),this.pc.removeStream(oldStream),this.send("source-remove",desc);var audioTracks=oldStream.getAudioTracks();audioTracks.length&&newStream.addTrack(audioTracks[0]),this.pc.addStream(newStream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for switching streams"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not process answer for switching streams"),cb(err)):(answer.jingle.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),self.send("source-add",answer.jingle),void cb())})})},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":this.connectionState="stable"===this.pc.signalingState?"interrupted":"disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onAddStream:function(event){this._log("info","Stream added"),this.emit("peerStreamAdded",this,event.stream)},onRemoveStream:function(event){this._log("info","Stream removed"),this.emit("peerStreamRemoved",this,event.stream)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1,this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){var self=this;this._log("info","Terminating session"),this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onSessionInfo:function(info,cb){return info.ringing?(this._log("info","Outgoing session is ringing"),this.ringing=!0,this.emit("ringing",this),cb()):info.hold?(this._log("info","On hold"),this.emit("hold",this),cb()):info.active?(this._log("info","Resuming from hold"),this.emit("resumed",this),cb()):info.mute?(this._log("info","Muting",info.mute),this.emit("mute",this,info.mute),cb()):info.unmute?(this._log("info","Unmuting",info.unmute),this.emit("unmute",this,info.unmute),cb()):void cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})},onSourceAdd:function(changes,cb){var self=this;this._log("info","Adding new stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[];ssrcs=ssrcs.concat(newSSRCs),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs));var newGroups=newContentDesc.sourceGroups||[];groups=groups.concat(newGroups),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups))}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void cb()})})},onSourceRemove:function(changes,cb){var self=this;this._log("info","Removing stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var found,i,j,k,newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[],newGroups=newContentDesc.sourceGroups||[];for(i=0;i<newSSRCs.length;i++){for(found=-1,j=0;j<ssrcs.length;j++)if(newSSRCs[i].ssrc===ssrcs[j].ssrc){found=j;break}found>-1&&(ssrcs.splice(found,1),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs)))}for(i=0;i<newGroups.length;i++){for(found=-1,j=0;i<groups.length;j++)if(newGroups[i].semantics===groups[j].semantics&&newGroups[i].sources.length===groups[j].sources.length){var same=!0;
-for(k=0;k<newGroups[i].sources.length;k++)if(newGroups[i].sources[k]!==groups[j].sources[k]){same=!1;break}if(same){found=j;break}}found>-1&&(groups.splice(found,1),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups)))}}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void cb()})})}}),module.exports=MediaSession},{"extend-object":26,"jingle-session":111,rtcpeerconnection:110,util:24}],80:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48,"lodash._arrayeach":81,"lodash._baseeach":82,"lodash._bindcallback":86,"lodash.isarray":87}],81:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{dup:49}],82:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":83}],83:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":84,"lodash.isarguments":85,"lodash.isarray":87}],84:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],85:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],86:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],87:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],88:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash._baseget":89,"lodash._topath":90,"lodash.isarray":91,"lodash.map":92}],89:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57}],90:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58,"lodash.isarray":91}],91:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],92:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60,"lodash._arraymap":93,"lodash._basecallback":94,"lodash._baseeach":99,"lodash.isarray":91}],93:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],94:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{dup:62,"lodash._baseisequal":95,"lodash._bindcallback":97,"lodash.isarray":91,"lodash.pairs":98}],95:[function(require,module,exports){arguments[4][63][0].apply(exports,arguments)},{dup:63,"lodash.isarray":91,"lodash.istypedarray":96,"lodash.keys":100}],96:[function(require,module,exports){arguments[4][64][0].apply(exports,arguments)},{dup:64}],97:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],98:[function(require,module,exports){arguments[4][66][0].apply(exports,arguments)},{dup:66,"lodash.keys":100}],99:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":100}],100:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":101,"lodash.isarguments":102,"lodash.isarray":91}],101:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],102:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],103:[function(require,module,exports){arguments[4][71][0].apply(exports,arguments)},{"./lib/tojson":106,"./lib/tosdp":107,dup:71}],104:[function(require,module,exports){arguments[4][72][0].apply(exports,arguments)},{dup:72}],105:[function(require,module,exports){arguments[4][73][0].apply(exports,arguments)},{dup:73}],106:[function(require,module,exports){arguments[4][74][0].apply(exports,arguments)},{"./parsers":104,"./senders":105,dup:74}],107:[function(require,module,exports){arguments[4][75][0].apply(exports,arguments)},{"./senders":105,dup:75}],108:[function(require,module,exports){arguments[4][76][0].apply(exports,arguments)},{dup:76,util:24,"webrtc-adapter-test":109,wildemitter:116}],109:[function(require,module,exports){arguments[4][77][0].apply(exports,arguments)},{dup:77}],110:[function(require,module){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[],this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"webkit"===webrtc.prefix&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"webkit"===webrtc.prefix&&constraints.optional.forEach(function(constraint){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"webkit"===webrtc.prefix&&constraints.optional.forEach(function(constraint){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"moz"===webrtc.prefix&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,ice:{},sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),each=require("lodash.foreach"),pluck=require("lodash.pluck"),webrtc=require("webrtcsupport"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),peerconn=require("traceablepeerconnection");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=pluck(this.remoteDescription.contents,"name"),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name;candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new webrtc.IceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)})})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new webrtc.IceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate)}cb()},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.description.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.description.sources||[];(0===sources.length||"3735928559"!==sources[0].ssrc)&&(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.description.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.description&&content.description.bandwidth;hasBw||(offer.jingle.contents[1].description.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new webrtc.SessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new webrtc.SessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new webrtc.IceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].description.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].description.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(newssrc),sim.push(answer.jingle.contents[1].description.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].description.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};self.assumeSetLocalSuccess&&(self.emit("answer",expandedAnswer),cb(null,expandedAnswer)),self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}if(self.enableChromeNativeSimulcast){expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}));{expandedAnswer.jingle.contents[1].description.sourceGroups||[]}expandedAnswer.jingle.contents[1].description.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})}expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("answer",expandedAnswer),cb(null,expandedAnswer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(ice.sdpMid=self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?self.remoteDescription.contents[ice.sdpMLineIndex].name:self.localDescription.contents[ice.sdpMLineIndex].name),!self.config.ice[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transType:"iceUdp",ufrag:self.config.ice[ice.sdpMid].ufrag,pwd:self.config.ice[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){"moz"===webrtc.prefix?this.pc.getStats(function(res){var items=[];for(var result in res)"object"==typeof res[result]&&items.push(res[result]);cb(null,items)},cb):this.pc.getStats(function(res){var items=[];res.result().forEach(function(result){var item={};result.names().forEach(function(name){item[name]=result.stat(name)}),item.id=result.id,item.type=result.type,item.timestamp=result.timestamp,items.push(item)}),cb(null,items)})},module.exports=PeerConnection},{"lodash.foreach":80,"lodash.pluck":88,"sdp-jingle-json":103,traceablepeerconnection:108,util:24,webrtcsupport:115,wildemitter:116}],111:[function(require,module){function JingleSession(opts){WildEmitter.call(this);var self=this;this.sid=opts.sid||uuid.v4(),this.peer=opts.peer,this.peerID=opts.peerID||this.peer.full||this.peer,this.isInitiator=opts.initiator||!1,this.parent=opts.parent,this.state="starting",this.connectionState="starting",this.pendingDescriptionTypes=opts.descriptionTypes||[],this.pendingAction=!1,this.processingQueue=async.queue(function(task,next){if(self.ended)return next();var action=task.action,changes=task.changes,cb=task.cb;return self._log("debug",action),ACTIONS[action]?void self[ACTIONS[action]](changes,function(err,result){return cb(err,result),next()}):(self._log("error","Invalid action: "+action),cb({condition:"bad-request"}),next())})}var util=require("util"),uuid=require("uuid"),async=require("async"),extend=require("extend-object"),WildEmitter=require("wildemitter"),ACTIONS={"content-accept":"onContentAccept","content-add":"onContentAdd","content-modify":"onConentModify","content-reject":"onContentReject","content-remove":"onContentRemove","description-info":"onDescriptionInfo","security-info":"onSecurityInfo","session-accept":"onSessionAccept","session-info":"onSessionInfo","session-initiate":"onSessionInitiate","session-terminate":"onSessionTerminate","transport-accept":"onTransportAccept","transport-info":"onTransportInfo","transport-reject":"onTransportReject","transport-replace":"onTransportReplace","source-add":"onSourceAdd","source-remove":"onSourceRemove"};util.inherits(JingleSession,WildEmitter),Object.keys(ACTIONS).forEach(function(action){var method=ACTIONS[action];JingleSession.prototype[method]=function(changes,cb){this._log("error","Unsupported action: "+action),cb()}}),Object.defineProperties(JingleSession.prototype,{state:{get:function(){return this._sessionState},set:function(value){if(value!==this._sessionState){var prev=this._sessionState;this._log("info","Changing session state to: "+value),this._sessionState=value,this.emit("change:sessionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},connectionState:{get:function(){return this._connectionState},set:function(value){if(value!==this._connectionState){var prev=this._connectionState;this._log("info","Changing connection state to: "+value),this._connectionState=value,this.emit("change:connectionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},starting:{get:function(){return"starting"===this._sessionState}},pending:{get:function(){return"pending"===this._sessionState}},active:{get:function(){return"active"===this._sessionState}},ended:{get:function(){return"ended"===this._sessionState}},connected:{get:function(){return"connected"===this._connectionState}},connecting:{get:function(){return"connecting"===this._connectionState}},disconnected:{get:function(){return"disconnected"===this._connectionState}},interrupted:{get:function(){return"interrupted"===this._connectionState}}}),JingleSession.prototype=extend(JingleSession.prototype,{_log:function(level,message){message=this.sid+": "+message,this.emit("log:"+level,message)},send:function(action,data){data=data||{},data.sid=this.sid,data.action=action;var requirePending={"session-inititate":!0,"session-accept":!0,"content-add":!0,"content-remove":!0,"content-reject":!0,"content-accept":!0,"content-modify":!0,"transport-replace":!0,"transport-reject":!0,"transport-accept":!0,"source-add":!0,"source-remove":!0};this.pendingAction=requirePending[action]?action:!1,this.emit("send",{to:this.peer,type:"set",jingle:data})},process:function(action,changes,cb){this.processingQueue.push({action:action,changes:changes,cb:cb})},start:function(){this._log("error","Can not start base sessions"),this.end("unsupported-applications",!0)},accept:function(){this._log("error","Can not accept base sessions"),this.end("unsupported-applications")},cancel:function(){this.end("cancel")},decline:function(){this.end("decline")},end:function(reason,silent){this.state="ended",this.processingQueue.kill(),reason||(reason="success"),"string"==typeof reason&&(reason={condition:reason}),silent||this.send("session-terminate",{reason:reason}),this.emit("terminated",this,reason)},onSessionTerminate:function(changes,cb){this.end(changes.reason,!0),cb()},onSessionInfo:function(changes,cb){var okKeys={sid:!0,action:!0,initiator:!0,responder:!0},unknownPayload=!1;Object.keys(changes).forEach(function(key){okKeys[key]||(unknownPayload=!0)}),unknownPayload?cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"}):cb()},onDescriptionInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onTransportInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onContentAdd:function(changes,cb){cb(),this.send("content-reject",{reason:{condition:"failed-application",text:"content-add is not supported"}})},onTransportReplace:function(changes,cb){cb(),this.send("transport-reject",{reason:{condition:"failed-application",text:"transport-replace is not supported"}})}}),module.exports=JingleSession},{async:112,"extend-object":26,util:24,uuid:114,wildemitter:116}],112:[function(require,module){(function(process){/*!
+var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];module.exports=ripemd160}).call(this,require("buffer").Buffer)},{buffer:2}],38:[function(require,module,exports){(function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=new Buffer(data,enc));for(var l=this._len+=data.length,s=this._s||0,f=0,buffer=this._block;l>s;){for(var t=Math.min(data.length,f+this._blockSize-s%this._blockSize),ch=t-f,i=0;ch>i;i++)buffer[s%this._blockSize+i]=data[i+f];s+=ch,f+=ch,s%this._blockSize===0&&this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var l=8*this._len;this._block[this._len%this._blockSize]=128,this._block.fill(0,this._len%this._blockSize+1),l%(8*this._blockSize)>=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:2}],39:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":40,"./sha1":41,"./sha224":42,"./sha256":43,"./sha384":44,"./sha512":45}],40:[function(require,module,exports){(function(Buffer){function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha.prototype._update=function(M){function calcW(){return W[j-3]^W[j-8]^W[j-14]^W[j-16]}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;16>j;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;20>j;)loop(calcW(),b&c|~b&d);for(k=1859775393;40>j;)loop(calcW(),b^c^d);for(k=-1894007588;60>j;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;80>j;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],41:[function(require,module,exports){(function(Buffer){function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha1.prototype._update=function(M){function calcW(){return rol(W[j-3]^W[j-8]^W[j-14]^W[j-16],1)}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;16>j;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;20>j;)loop(calcW(),b&c|~b&d);for(k=1859775393;40>j;)loop(calcW(),b^c^d);for(k=-1894007588;60>j;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;80>j;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],42:[function(require,module,exports){(function(Buffer){function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),W=new Array(64);inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=-1056596264,this._b=914150663,this._c=812702999,this._d=-150054599,this._e=-4191439,this._f=1750603025,this._g=1694076839,this._h=-1090891868,this},Sha224.prototype._hash=function(){var H=new Buffer(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":38,"./sha256":43,buffer:2,inherits:36}],43:[function(require,module,exports){(function(Buffer){function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function S(X,n){return X>>>n|X<<32-n}function R(X,n){return X>>>n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}function Sigma0256(x){return S(x,2)^S(x,13)^S(x,22)}function Sigma1256(x){return S(x,6)^S(x,11)^S(x,25)}function Gamma0256(x){return S(x,7)^S(x,18)^R(x,3)}function Gamma1256(x){return S(x,17)^S(x,19)^R(x,10)}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){function calcW(){return Gamma1256(W[j-2])+W[j-7]+Gamma0256(W[j-15])+W[j-16]}function loop(w){W[j]=w;var T1=h+Sigma1256(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0256(a)+Maj(a,b,c);h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2,j++}for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,j=0;16>j;)loop(M.readInt32BE(4*j));for(;64>j;)loop(calcW());this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],44:[function(require,module,exports){(function(Buffer){function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),W=new Array(160);inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._a=-876896931,this._b=1654270250,this._c=-1856437926,this._d=355462360,this._e=1731405415,this._f=-1900787065,this._g=-619958771,this._h=1203062813,this._al=-1056596264,this._bl=914150663,this._cl=812702999,this._dl=-150054599,this._el=-4191439,this._fl=1750603025,this._gl=1694076839,this._hl=-1090891868,this},Sha384.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(48);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),H},module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":38,"./sha512":45,buffer:2,inherits:36}],45:[function(require,module,exports){(function(Buffer){function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function S(X,Xl,n){return X>>>n|Xl<<32-n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._al=-205731576,this._bl=-2067093701,this._cl=-23791573,this._dl=1595750129,this._el=-1377402159,this._fl=725511199,this._gl=-79577749,this._hl=327033209,this},Sha512.prototype._update=function(M){function calcW(){var x=W[j-30],xl=W[j-30+1],gamma0=S(x,xl,1)^S(x,xl,8)^x>>>7,gamma0l=S(xl,x,1)^S(xl,x,8)^S(xl,x,7);x=W[j-4],xl=W[j-4+1];var gamma1=S(x,xl,19)^S(xl,x,29)^x>>>6,gamma1l=S(xl,x,19)^S(x,xl,29)^S(xl,x,6),Wi7=W[j-14],Wi7l=W[j-14+1],Wi16=W[j-32],Wi16l=W[j-32+1];Wil=gamma0l+Wi7l,Wi=gamma0+Wi7+(gamma0l>>>0>Wil>>>0?1:0),Wil+=gamma1l,Wi=Wi+gamma1+(gamma1l>>>0>Wil>>>0?1:0),Wil+=Wi16l,Wi=Wi+Wi16+(Wi16l>>>0>Wil>>>0?1:0)}function loop(){W[j]=Wi,W[j+1]=Wil;var maj=Maj(a,b,c),majl=Maj(al,bl,cl),sigma0h=S(a,al,28)^S(al,a,2)^S(al,a,7),sigma0l=S(al,a,28)^S(a,al,2)^S(a,al,7),sigma1h=S(e,el,14)^S(e,el,18)^S(el,e,9),sigma1l=S(el,e,14)^S(el,e,18)^S(e,el,9),Ki=K[j],Kil=K[j+1],ch=Ch(e,f,g),chl=Ch(el,fl,gl),t1l=hl+sigma1l,t1=h+sigma1h+(hl>>>0>t1l>>>0?1:0);t1l+=chl,t1=t1+ch+(chl>>>0>t1l>>>0?1:0),t1l+=Kil,t1=t1+Ki+(Kil>>>0>t1l>>>0?1:0),t1l+=Wil,t1=t1+Wi+(Wil>>>0>t1l>>>0?1:0);var t2l=sigma0l+majl,t2=sigma0h+maj+(sigma0l>>>0>t2l>>>0?1:0);h=g,hl=gl,g=f,gl=fl,f=e,fl=el,el=dl+t1l|0,e=d+t1+(dl>>>0>el>>>0?1:0)|0,d=c,dl=cl,c=b,cl=bl,b=a,bl=al,al=t1l+t2l|0,a=t1+t2+(t1l>>>0>al>>>0?1:0)|0,i++,j+=2}for(var Wi,Wil,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0,j=0;16>i;)Wi=M.readInt32BE(4*j),Wil=M.readInt32BE(4*j+4),loop();for(;80>i;)calcW(),loop();this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._a=this._a+a+(this._al>>>0<al>>>0?1:0)|0,this._b=this._b+b+(this._bl>>>0<bl>>>0?1:0)|0,this._c=this._c+c+(this._cl>>>0<cl>>>0?1:0)|0,this._d=this._d+d+(this._dl>>>0<dl>>>0?1:0)|0,this._e=this._e+e+(this._el>>>0<el>>>0?1:0)|0,this._f=this._f+f+(this._fl>>>0<fl>>>0?1:0)|0,this._g=this._g+g+(this._gl>>>0<gl>>>0?1:0)|0,this._h=this._h+h+(this._hl>>>0<hl>>>0?1:0)|0},Sha512.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(64);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),writeInt64BE(this._g,this._gl,48),writeInt64BE(this._h,this._hl,56),H},module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":38,buffer:2,inherits:36}],46:[function(require,module,exports){(function(Buffer){"use strict";function Hmac(alg,key){Transform.call(this),"string"==typeof key&&(key=new Buffer(key));var blocksize="sha512"===alg||"sha384"===alg?128:64;this._alg=alg,this._key=key,key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,ZEROS],blocksize));for(var ipad=this._ipad=new Buffer(blocksize),opad=this._opad=new Buffer(blocksize),i=0;blocksize>i;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("create-hash/browser"),inherits=require("inherits"),Transform=require("stream").Transform,ZEROS=new Buffer(128);ZEROS.fill(0),inherits(Hmac,Transform),Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype._transform=function(data,_,next){this._hash.update(data),next()},Hmac.prototype._flush=function(next){this.push(this.digest()),next()},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)},module.exports=function(alg,key){return new Hmac(alg,key)}}).call(this,require("buffer").Buffer)},{buffer:2,"create-hash/browser":33,inherits:47,stream:21}],47:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],48:[function(require,module,exports){function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&void 0===thisArg&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}var arrayEach=require("lodash._arrayeach"),baseEach=require("lodash._baseeach"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),forEach=createForEach(arrayEach,baseEach);module.exports=forEach},{"lodash._arrayeach":49,"lodash._baseeach":50,"lodash._bindcallback":54,"lodash.isarray":55}],49:[function(require,module,exports){function arrayEach(array,iteratee){for(var index=-1,length=array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}module.exports=arrayEach},{}],50:[function(require,module,exports){function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:++index<length;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var keys=require("lodash.keys"),MAX_SAFE_INTEGER=9007199254740991,baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor(),getLength=baseProperty("length");module.exports=baseEach},{"lodash.keys":51}],51:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&length>value}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)),index=-1,result=[];++index<propsLength;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;++index<length;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}var getNative=require("lodash._getnative"),isArguments=require("lodash.isarguments"),isArray=require("lodash.isarray"),reIsUint=/^\d+$/,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeKeys=getNative(Object,"keys"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length"),keys=nativeKeys?function(object){var Ctor=null==object?void 0:object.constructor;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isArrayLike(object)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys;module.exports=keys},{"lodash._getnative":52,"lodash.isarguments":53,"lodash.isarray":55}],52:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}var funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");module.exports=getNative},{}],53:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isArguments(value){return isObjectLike(value)&&isArrayLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")}var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,propertyIsEnumerable=objectProto.propertyIsEnumerable,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isArguments},{}],54:[function(require,module,exports){function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(void 0===thisArg)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function identity(value){return value}module.exports=bindCallback},{}],55:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag};module.exports=isArray},{}],56:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function toObject(value){return isObject(value)?value:Object(value)}function pluck(collection,path){return map(collection,property(path))}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseGet=require("lodash._baseget"),toPath=require("lodash._topath"),isArray=require("lodash.isarray"),map=require("lodash.map"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;module.exports=pluck},{"lodash._baseget":57,"lodash._topath":58,"lodash.isarray":59,"lodash.map":60}],57:[function(require,module,exports){function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&length>index;)object=object[path[index++]];return index&&index==length?object:void 0}}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}module.exports=baseGet},{}],58:[function(require,module,exports){function baseToString(value){return null==value?"":value+""}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}var isArray=require("lodash.isarray"),rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=toPath},{"lodash.isarray":59}],59:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],60:[function(require,module,exports){function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function map(collection,iteratee,thisArg){var func=isArray(collection)?arrayMap:baseMap;return iteratee=baseCallback(iteratee,thisArg,3),func(collection,iteratee)}var arrayMap=require("lodash._arraymap"),baseCallback=require("lodash._basecallback"),baseEach=require("lodash._baseeach"),isArray=require("lodash.isarray"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=map},{"lodash._arraymap":61,"lodash._basecallback":62,"lodash._baseeach":67,"lodash.isarray":59}],61:[function(require,module,exports){function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}module.exports=arrayMap},{}],62:[function(require,module,exports){function baseToString(value){return null==value?"":value+""}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?void 0===thisArg?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):void 0===thisArg?property(func):baseMatchesProperty(func,thisArg)}function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&length>index;)object=object[path[index++]];return index&&index==length?object:void 0}}function baseIsMatch(object,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=toObject(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(void 0===objValue&&!(key in object))return!1}else{var result=customizer?customizer(objValue,srcValue,key):void 0;if(!(void 0===result?baseIsEqual(srcValue,objValue,customizer,!0):result))return!1}}return!0}function baseMatches(source){var matchData=getMatchData(source);if(1==matchData.length&&matchData[0][2]){var key=matchData[0][0],value=matchData[0][1];return function(object){return null==object?!1:object[key]===value&&(void 0!==value||key in toObject(object))}}return function(object){return baseIsMatch(object,matchData)}}function baseMatchesProperty(path,srcValue){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(srcValue),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),(isArr||!isCommon)&&!(key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===srcValue?void 0!==srcValue||key in object:baseIsEqual(srcValue,object[key],void 0,!0)}}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=void 0===end||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}function getMatchData(object){for(var result=pairs(object),length=result.length;length--;)result[length][2]=isStrictComparable(result[length][1]);return result}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isStrictComparable(value){return value===value&&!isObject(value)}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}function last(array){var length=array?array.length:0;return length?array[length-1]:void 0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),pairs=require("lodash.pairs"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=baseCallback},{"lodash._baseisequal":63,"lodash._bindcallback":65,"lodash.isarray":59,"lodash.pairs":66}],63:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function arraySome(array,predicate){for(var index=-1,length=array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){return value===other?!0:null==value||null==other||!isObject(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;
+objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped)return equalFunc(objIsWrapped?object.value():object,othIsWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;++index<arrLength;){var arrValue=array[index],othValue=other[index],result=customizer?customizer(isLoose?othValue:arrValue,isLoose?arrValue:othValue,index):void 0;if(void 0!==result){if(result)continue;return!1}if(isLoose){if(!arraySome(other,function(othValue){return arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}))return!1}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))return!1}return!0}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:object==+other;case regexpTag:case stringTag:return object==other+""}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isLoose?key in other:hasOwnProperty.call(other,key)))return!1}for(var skipCtor=isLoose;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key],result=customizer?customizer(isLoose?othValue:objValue,isLoose?objValue:othValue,key):void 0;if(!(void 0===result?equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB):result))return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var isArray=require("lodash.isarray"),isTypedArray=require("lodash.istypedarray"),keys=require("lodash.keys"),argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",stringTag="[object String]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString;module.exports=baseIsEqual},{"lodash.isarray":59,"lodash.istypedarray":64,"lodash.keys":68}],64:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}var argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objToString=objectProto.toString,MAX_SAFE_INTEGER=9007199254740991;module.exports=isTypedArray},{}],65:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],66:[function(require,module,exports){function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function pairs(object){object=toObject(object);for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;){var key=props[index];result[index]=[key,object[key]]}return result}var keys=require("lodash.keys");module.exports=pairs},{"lodash.keys":68}],67:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":68}],68:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":69,"lodash.isarguments":70,"lodash.isarray":59}],69:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],70:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],71:[function(require,module,exports){var toSDP=require("./lib/tosdp"),toJSON=require("./lib/tojson");exports.toIncomingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"incoming"})},exports.toOutgoingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"outgoing"})},exports.toIncomingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"incoming"})},exports.toOutgoingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"outgoing"})},exports.toIncomingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"incoming"})},exports.toOutgoingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"outgoing"})},exports.toIncomingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"incoming"})},exports.toOutgoingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"outgoing"})},exports.toCandidateSDP=toSDP.toCandidateSDP,exports.toMediaSDP=toSDP.toMediaSDP,exports.toSessionSDP=toSDP.toSessionSDP,exports.toIncomingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"incoming",creators:creators})},exports.toOutgoingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"outgoing",creators:creators})},exports.toIncomingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"incoming",creators:creators})},exports.toOutgoingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"outgoing",creators:creators})},exports.toIncomingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"outgoing",creator:creator})},exports.toIncomingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"outgoing",creator:creator})},exports.toCandidateJSON=toJSON.toCandidateJSON,exports.toMediaJSON=toJSON.toMediaJSON,exports.toSessionJSON=toJSON.toSessionJSON},{"./lib/tojson":74,"./lib/tosdp":75}],72:[function(require,module,exports){exports.lines=function(sdp){return sdp.split("\r\n").filter(function(line){return line.length>0})},exports.findLine=function(prefix,mediaLines,sessionLines){for(var prefixLength=prefix.length,i=0;i<mediaLines.length;i++)if(mediaLines[i].substr(0,prefixLength)===prefix)return mediaLines[i];if(!sessionLines)return!1;for(var j=0;j<sessionLines.length;j++)if(sessionLines[j].substr(0,prefixLength)===prefix)return sessionLines[j];return!1},exports.findLines=function(prefix,mediaLines,sessionLines){for(var results=[],prefixLength=prefix.length,i=0;i<mediaLines.length;i++)mediaLines[i].substr(0,prefixLength)===prefix&&results.push(mediaLines[i]);if(results.length||!sessionLines)return results;for(var j=0;j<sessionLines.length;j++)sessionLines[j].substr(0,prefixLength)===prefix&&results.push(sessionLines[j]);return results},exports.mline=function(line){for(var parts=line.substr(2).split(" "),parsed={media:parts[0],port:parts[1],proto:parts[2],formats:[]},i=3;i<parts.length;i++)parts[i]&&parsed.formats.push(parts[i]);return parsed},exports.rtpmap=function(line){var parts=line.substr(9).split(" "),parsed={id:parts.shift()};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockrate=parts[1],parsed.channels=3==parts.length?parts[2]:"1",parsed},exports.sctpmap=function(line){var parts=line.substr(10).split(" "),parsed={number:parts.shift(),protocol:parts.shift(),streams:parts.shift()};return parsed},exports.fmtp=function(line){for(var kv,key,value,parts=line.substr(line.indexOf(" ")+1).split(";"),parsed=[],i=0;i<parts.length;i++)kv=parts[i].split("="),key=kv[0].trim(),value=kv[1],key&&value?parsed.push({key:key,value:value}):key&&parsed.push({key:"",value:key});return parsed},exports.crypto=function(line){var parts=line.substr(9).split(" "),parsed={tag:parts[0],cipherSuite:parts[1],keyParams:parts[2],sessionParams:parts.slice(3).join(" ")};return parsed},exports.fingerprint=function(line){var parts=line.substr(14).split(" ");return{hash:parts[0],value:parts[1]}},exports.extmap=function(line){var parts=line.substr(9).split(" "),parsed={},idpart=parts.shift(),sp=idpart.indexOf("/");return sp>=0?(parsed.id=idpart.substr(0,sp),parsed.senders=idpart.substr(sp+1)):(parsed.id=idpart,parsed.senders="sendrecv"),parsed.uri=parts.shift()||"",parsed},exports.rtcpfb=function(line){var parts=line.substr(10).split(" "),parsed={};return parsed.id=parts.shift(),parsed.type=parts.shift(),"trr-int"===parsed.type?parsed.value=parts.shift():parsed.subtype=parts.shift()||"",parsed.parameters=parts,parsed},exports.candidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parts[3],ip:parts[4],port:parts[5],type:parts[7],generation:"0"},i=8;i<parts.length;i+=2)"raddr"===parts[i]?candidate.relAddr=parts[i+1]:"rport"===parts[i]?candidate.relPort=parts[i+1]:"generation"===parts[i]?candidate.generation=parts[i+1]:"tcptype"===parts[i]&&(candidate.tcpType=parts[i+1]);return candidate.network="1",candidate},exports.sourceGroups=function(lines){for(var parsed=[],i=0;i<lines.length;i++){var parts=lines[i].substr(13).split(" ");parsed.push({semantics:parts.shift(),sources:parts})}return parsed},exports.sources=function(lines){for(var parsed=[],sources={},i=0;i<lines.length;i++){var parts=lines[i].substr(7).split(" "),ssrc=parts.shift();if(!sources[ssrc]){var source={ssrc:ssrc,parameters:[]};parsed.push(source),sources[ssrc]=source}parts=parts.join(" ").split(":");var attribute=parts.shift(),value=parts.join(":")||null;sources[ssrc].parameters.push({key:attribute,value:value})}return parsed},exports.groups=function(lines){for(var parts,parsed=[],i=0;i<lines.length;i++)parts=lines[i].substr(8).split(" "),parsed.push({semantics:parts.shift(),contents:parts});return parsed},exports.bandwidth=function(line){var parts=line.substr(2).split(":"),parsed={};return parsed.type=parts.shift(),parsed.bandwidth=parts.shift(),parsed},exports.msid=function(line){var data=line.substr(7),parts=data.split(" ");return{msid:data,mslabel:parts[0],label:parts[1]}}},{}],73:[function(require,module,exports){module.exports={initiator:{incoming:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"},outgoing:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"}},responder:{incoming:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"},outgoing:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"}}}},{}],74:[function(require,module,exports){var SENDERS=require("./senders"),parsers=require("./parsers"),idCounter=Math.random();exports._setIdCounter=function(counter){idCounter=counter},exports.toSessionJSON=function(sdp,opts){var i,creators=opts.creators||[],role=opts.role||"initiator",direction=opts.direction||"outgoing",media=sdp.split("\r\nm=");for(i=1;i<media.length;i++)media[i]="m="+media[i],i!==media.length-1&&(media[i]+="\r\n");var session=media.shift()+"\r\n",sessionLines=parsers.lines(session),parsed={},contents=[];for(i=0;i<media.length;i++)contents.push(exports.toMediaJSON(media[i],session,{role:role,direction:direction,creator:creators[i]||"initiator"}));parsed.contents=contents;var groupLines=parsers.findLines("a=group:",sessionLines);return groupLines.length&&(parsed.groups=parsers.groups(groupLines)),parsed},exports.toMediaJSON=function(media,session,opts){var creator=opts.creator||"initiator",role=opts.role||"initiator",direction=opts.direction||"outgoing",lines=parsers.lines(media),sessionLines=parsers.lines(session),mline=parsers.mline(lines[0]),content={creator:creator,name:mline.media,description:{descType:"rtp",media:mline.media,payloads:[],encryption:[],feedback:[],headerExtensions:[]},transport:{transType:"iceUdp",candidates:[],fingerprints:[]}};"application"==mline.media&&(content.description={descType:"datachannel"},content.transport.sctp=[]);var desc=content.description,trans=content.transport,mid=parsers.findLine("a=mid:",lines);if(mid&&(content.name=mid.substr(6)),parsers.findLine("a=sendrecv",lines,sessionLines)?content.senders="both":parsers.findLine("a=sendonly",lines,sessionLines)?content.senders=SENDERS[role][direction].sendonly:parsers.findLine("a=recvonly",lines,sessionLines)?content.senders=SENDERS[role][direction].recvonly:parsers.findLine("a=inactive",lines,sessionLines)&&(content.senders="none"),"rtp"==desc.descType){var bandwidth=parsers.findLine("b=",lines);bandwidth&&(desc.bandwidth=parsers.bandwidth(bandwidth));var ssrc=parsers.findLine("a=ssrc:",lines);ssrc&&(desc.ssrc=ssrc.substr(7).split(" ")[0]);var rtpmapLines=parsers.findLines("a=rtpmap:",lines);rtpmapLines.forEach(function(line){var payload=parsers.rtpmap(line);payload.parameters=[],payload.feedback=[];var fmtpLines=parsers.findLines("a=fmtp:"+payload.id,lines);fmtpLines.forEach(function(line){payload.parameters=parsers.fmtp(line)});var fbLines=parsers.findLines("a=rtcp-fb:"+payload.id,lines);fbLines.forEach(function(line){payload.feedback.push(parsers.rtcpfb(line))}),desc.payloads.push(payload)});var cryptoLines=parsers.findLines("a=crypto:",lines,sessionLines);cryptoLines.forEach(function(line){desc.encryption.push(parsers.crypto(line))}),parsers.findLine("a=rtcp-mux",lines)&&(desc.mux=!0);var fbLines=parsers.findLines("a=rtcp-fb:*",lines);fbLines.forEach(function(line){desc.feedback.push(parsers.rtcpfb(line))});var extLines=parsers.findLines("a=extmap:",lines);extLines.forEach(function(line){var ext=parsers.extmap(line);ext.senders=SENDERS[role][direction][ext.senders],desc.headerExtensions.push(ext)});var ssrcGroupLines=parsers.findLines("a=ssrc-group:",lines);desc.sourceGroups=parsers.sourceGroups(ssrcGroupLines||[]);var ssrcLines=parsers.findLines("a=ssrc:",lines),sources=desc.sources=parsers.sources(ssrcLines||[]),msidLine=parsers.findLine("a=msid:",lines);if(msidLine){var msid=parsers.msid(msidLine);["msid","mslabel","label"].forEach(function(key){for(var i=0;i<sources.length;i++){for(var found=!1,j=0;j<sources[i].parameters.length;j++)sources[i].parameters[j].key===key&&(found=!0);found||sources[i].parameters.push({key:key,value:msid[key]})}})}parsers.findLine("a=x-google-flag:conference",lines,sessionLines)&&(desc.googConferenceFlag=!0)}var fingerprintLines=parsers.findLines("a=fingerprint:",lines,sessionLines),setup=parsers.findLine("a=setup:",lines,sessionLines);fingerprintLines.forEach(function(line){var fp=parsers.fingerprint(line);setup&&(fp.setup=setup.substr(8)),trans.fingerprints.push(fp)});var ufragLine=parsers.findLine("a=ice-ufrag:",lines,sessionLines),pwdLine=parsers.findLine("a=ice-pwd:",lines,sessionLines);if(ufragLine&&pwdLine){trans.ufrag=ufragLine.substr(12),trans.pwd=pwdLine.substr(10),trans.candidates=[];var candidateLines=parsers.findLines("a=candidate:",lines,sessionLines);candidateLines.forEach(function(line){trans.candidates.push(exports.toCandidateJSON(line))})}if("datachannel"==desc.descType){var sctpmapLines=parsers.findLines("a=sctpmap:",lines);sctpmapLines.forEach(function(line){var sctp=parsers.sctpmap(line);trans.sctp.push(sctp)})}return content},exports.toCandidateJSON=function(line){var candidate=parsers.candidate(line.split("\r\n")[0]);return candidate.id=(idCounter++).toString(36).substr(0,12),candidate}},{"./parsers":72,"./senders":73}],75:[function(require,module,exports){var SENDERS=require("./senders");exports.toSessionSDP=function(session,opts){var sid=(opts.role||"initiator",opts.direction||"outgoing",opts.sid||session.sid||Date.now()),time=opts.time||Date.now(),sdp=["v=0","o=- "+sid+" "+time+" IN IP4 0.0.0.0","s=-","t=0 0"],groups=session.groups||[];groups.forEach(function(group){sdp.push("a=group:"+group.semantics+" "+group.contents.join(" "))});var contents=session.contents||[];return contents.forEach(function(content){sdp.push(exports.toMediaSDP(content,opts))}),sdp.join("\r\n")+"\r\n"},exports.toMediaSDP=function(content,opts){var sdp=[],role=opts.role||"initiator",direction=opts.direction||"outgoing",desc=content.description,transport=content.transport,payloads=desc.payloads||[],fingerprints=transport&&transport.fingerprints||[],mline=[];if("datachannel"==desc.descType?(mline.push("application"),mline.push("1"),mline.push("DTLS/SCTP"),transport.sctp&&transport.sctp.forEach(function(map){mline.push(map.number)})):(mline.push(desc.media),mline.push("1"),desc.encryption&&desc.encryption.length>0||fingerprints.length>0?mline.push("RTP/SAVPF"):mline.push("RTP/AVPF"),payloads.forEach(function(payload){mline.push(payload.id)})),sdp.push("m="+mline.join(" ")),sdp.push("c=IN IP4 0.0.0.0"),desc.bandwidth&&desc.bandwidth.type&&desc.bandwidth.bandwidth&&sdp.push("b="+desc.bandwidth.type+":"+desc.bandwidth.bandwidth),"rtp"==desc.descType&&sdp.push("a=rtcp:1 IN IP4 0.0.0.0"),transport){transport.ufrag&&sdp.push("a=ice-ufrag:"+transport.ufrag),transport.pwd&&sdp.push("a=ice-pwd:"+transport.pwd);var pushedSetup=!1;fingerprints.forEach(function(fingerprint){sdp.push("a=fingerprint:"+fingerprint.hash+" "+fingerprint.value),fingerprint.setup&&!pushedSetup&&sdp.push("a=setup:"+fingerprint.setup)}),transport.sctp&&transport.sctp.forEach(function(map){sdp.push("a=sctpmap:"+map.number+" "+map.protocol+" "+map.streams)})}"rtp"==desc.descType&&sdp.push("a="+(SENDERS[role][direction][content.senders]||"sendrecv")),sdp.push("a=mid:"+content.name),desc.sources&&desc.sources.length&&(desc.sources[0].parameters||[]).forEach(function(param){"msid"===param.key&&sdp.push("a=msid:"+param.value)}),desc.mux&&sdp.push("a=rtcp-mux");var encryption=desc.encryption||[];encryption.forEach(function(crypto){sdp.push("a=crypto:"+crypto.tag+" "+crypto.cipherSuite+" "+crypto.keyParams+(crypto.sessionParams?" "+crypto.sessionParams:""))}),desc.googConferenceFlag&&sdp.push("a=x-google-flag:conference"),payloads.forEach(function(payload){var rtpmap="a=rtpmap:"+payload.id+" "+payload.name+"/"+payload.clockrate;if(payload.channels&&"1"!=payload.channels&&(rtpmap+="/"+payload.channels),sdp.push(rtpmap),payload.parameters&&payload.parameters.length){var fmtp=["a=fmtp:"+payload.id],parameters=[];payload.parameters.forEach(function(param){parameters.push((param.key?param.key+"=":"")+param.value)}),fmtp.push(parameters.join(";")),sdp.push(fmtp.join(" "))}payload.feedback&&payload.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:"+payload.id+" trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:"+payload.id+" "+fb.type+(fb.subtype?" "+fb.subtype:""))})}),desc.feedback&&desc.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:* trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:* "+fb.type+(fb.subtype?" "+fb.subtype:""))});var hdrExts=desc.headerExtensions||[];hdrExts.forEach(function(hdr){sdp.push("a=extmap:"+hdr.id+(hdr.senders?"/"+SENDERS[role][direction][hdr.senders]:"")+" "+hdr.uri)});var ssrcGroups=desc.sourceGroups||[];ssrcGroups.forEach(function(ssrcGroup){sdp.push("a=ssrc-group:"+ssrcGroup.semantics+" "+ssrcGroup.sources.join(" "))});var ssrcs=desc.sources||[];ssrcs.forEach(function(ssrc){for(var i=0;i<ssrc.parameters.length;i++){var param=ssrc.parameters[i];sdp.push("a=ssrc:"+(ssrc.ssrc||desc.ssrc)+" "+param.key+(param.value?":"+param.value:""))}});var candidates=transport.candidates||[];return candidates.forEach(function(candidate){sdp.push(exports.toCandidateSDP(candidate))}),sdp.join("\r\n")},exports.toCandidateSDP=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),("srflx"===type||"prflx"===type||"relay"===type)&&candidate.relAddr&&candidate.relPort&&(sdp.push("raddr"),sdp.push(candidate.relAddr),sdp.push("rport"),sdp.push(candidate.relPort)),candidate.tcpType&&"TCP"==candidate.protocol.toUpperCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),sdp.push("generation"),sdp.push(candidate.generation||"0"),"a=candidate:"+sdp.join(" ")}},{"./senders":73}],76:[function(require,module,exports){function dumpSDP(description){return{type:description.type,sdp:description.sdp}}function dumpStream(stream){var info={label:stream.id};return stream.getAudioTracks().length&&(info.audio=stream.getAudioTracks().map(function(track){return track.id})),stream.getVideoTracks().length&&(info.video=stream.getVideoTracks().map(function(track){return track.id})),info}function TraceablePeerConnection(config,constraints){var self=this;WildEmitter.call(this),this.peerconnection=new window.RTCPeerConnection(config,constraints),this.trace=function(what,info){self.emit("PeerConnectionTrace",{time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",event.candidate),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",dumpStream(event.stream)),null!==self.onaddstream&&self.onaddstream(event)},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",dumpStream(event.stream)),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},this.getLocalStreams=this.peerconnection.getLocalStreams.bind(this.peerconnection),this.getRemoteStreams=this.peerconnection.getRemoteStreams.bind(this.peerconnection)}var util=require("util"),WildEmitter=(require("webrtc-adapter-test"),require("wildemitter"));util.inherits(TraceablePeerConnection,WildEmitter),["signalingState","iceConnectionState","localDescription","remoteDescription"].forEach(function(prop){Object.defineProperty(TraceablePeerConnection.prototype,prop,{get:function(){return this.peerconnection[prop]}})}),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",dumpStream(stream)),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",dumpStream(stream)),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){return this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description,function(){self.trace("setLocalDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description,function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),"closed"!=this.peerconnection.signalingState&&this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createOffer",constraints),this.peerconnection.createOffer(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback&&successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createAnswer",constraints),this.peerconnection.createAnswer(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback&&successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.addIceCandidate=function(candidate,successCallback,failureCallback){var self=this;this.trace("addIceCandidate",candidate),this.peerconnection.addIceCandidate(candidate,function(){successCallback&&successCallback()},function(err){self.trace("addIceCandidateOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.getStats=function(){this.peerconnection.getStats.apply(this.pc,arguments)},module.exports=TraceablePeerConnection},{util:24,"webrtc-adapter-test":77,wildemitter:116}],77:[function(require,module,exports){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"==typeof module&&"function"!=typeof require&&"function"==typeof define&&console.log.apply(console,arguments)}};if("undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10),webrtcMinimumVersion=31,window.RTCPeerConnection=function(pcConfig,pcConstraints){if(38>webrtcDetectedVersion&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate,getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if((void 0!==r.min||void 0!==r.max||void 0!==r.exact)&&require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return 38>webrtcDetectedVersion&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},41>webrtcDetectedVersion){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices()["catch"](function(e){if("NotFoundError"===e.name)return[];throw e})}}attachMediaStream=function(element,stream){
+element.mozSrcObject=stream},reattachMediaStream=function(to,from){to.mozSrcObject=from.mozSrcObject}}else if(navigator.webkitGetUserMedia){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){origGetStats.apply(self,[resolve,reject])})},pc},["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),attachMediaStream=function(element,stream){"undefined"!=typeof element.srcObject?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){to.src=from.src}}else navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)?(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)[2],10),webrtcMinimumVersion=12,getUserMedia=navigator.getUserMedia,attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}):webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";var webrtcTesting={};if(Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}}),"undefined"!=typeof module){var RTCPeerConnection;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection),module.exports={RTCPeerConnection:RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}})},{}],78:[function(require,module,exports){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[],this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"firefox"===adapter.webrtcDetectedBrowser&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,ice:{},sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),each=require("lodash.foreach"),pluck=require("lodash.pluck"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),peerconn=require("traceablepeerconnection"),adapter=require("webrtc-adapter-test");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=pluck(this.remoteDescription.contents,"name"),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name;candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new RTCIceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)})})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new RTCIceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate)}cb()},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.description.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.description.sources||[];(0===sources.length||"3735928559"!==sources[0].ssrc)&&(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.description.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.description&&content.description.bandwidth;hasBw||(offer.jingle.contents[1].description.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new RTCIceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].description.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].description.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(newssrc),sim.push(answer.jingle.contents[1].description.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].description.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};self.assumeSetLocalSuccess&&(self.emit("answer",expandedAnswer),cb(null,expandedAnswer)),self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}self.enableChromeNativeSimulcast&&(expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"})),expandedAnswer.jingle.contents[1].description.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})),expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("answer",expandedAnswer),cb(null,expandedAnswer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?ice.sdpMid=self.remoteDescription.contents[ice.sdpMLineIndex].name:ice.sdpMid=self.localDescription.contents[ice.sdpMLineIndex].name),!self.config.ice[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transType:"iceUdp",ufrag:self.config.ice[ice.sdpMid].ufrag,pwd:self.config.ice[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){"firefox"===adapter.webrtcDetectedBrowser?this.pc.getStats(function(res){var items=[];for(var result in res)"object"==typeof res[result]&&items.push(res[result]);cb(null,items)},cb):this.pc.getStats(function(res){var items=[];res.result().forEach(function(result){var item={};result.names().forEach(function(name){item[name]=result.stat(name)}),item.id=result.id,item.type=result.type,item.timestamp=result.timestamp,items.push(item)}),cb(null,items)})},module.exports=PeerConnection},{"lodash.foreach":48,"lodash.pluck":56,"sdp-jingle-json":71,traceablepeerconnection:76,util:24,"webrtc-adapter-test":77,wildemitter:116}],79:[function(require,module,exports){function filterContentSources(content,stream){delete content.transport,delete content.description.payloads,content.description.sources&&(content.description.sources=content.description.sources.filter(function(source){return stream.id===source.parameters[1].value.split(" ")[0]}))}function filterUnusedLabels(content){var sources=content.description.sources||[];sources.forEach(function(source){source.parameters=source.parameters.filter(function(parameter){return!("mslabel"===parameter.key||"label"===parameter.key)})})}function MediaSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addStream",this.onAddStream.bind(this)),this.pc.on("removeStream",this.onRemoveStream.bind(this)),opts.stream&&this.addStream(opts.stream),this._ringing=!1}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection");util.inherits(MediaSession,BaseSession),Object.defineProperties(MediaSession.prototype,{ringing:{get:function(){return this._ringing},set:function(value){value!==this._ringing&&(this._ringing=value,this.emit("change:ringing",value))}},streams:{get:function(){return"closed"!==this.pc.signalingState?this.pc.getRemoteStreams():[]}}}),MediaSession.prototype=extend(MediaSession.prototype,{start:function(constraints,next){var self=this;this.state="pending",next=next||function(){},this.pc.isInitiator=!0,this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(constraints&&constraints.mandatory&&offer.jingle.contents.forEach(function(content){var mediaType=content.description.media;content.description&&"rtp"===content.description.descType&&(constraints.mandatory.OfferToReceiveAudio||"audio"!==mediaType||(content.senders="initiator"),constraints.mandatory.OfferToReceiveVideo||"video"!==mediaType||(content.senders="initiator"))}),offer.jingle.contents.forEach(filterUnusedLabels),self.send("session-initiate",offer.jingle),void next())})},accept:function(next){var self=this;next=next||function(){},this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):(answer.jingle.contents.forEach(filterUnusedLabels),self.send("session-accept",answer.jingle),void next())})},end:function(reason,silent){var self=this;this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},ring:function(){this._log("info","Ringing on incoming session"),this.ringing=!0,this.send("session-info",{ringing:!0})},mute:function(creator,name){this._log("info","Muting",name),this.send("session-info",{mute:{creator:creator,name:name}})},unmute:function(creator,name){this._log("info","Unmuting",name),this.send("session-info",{unmute:{creator:creator,name:name}})},hold:function(){this._log("info","Placing on hold"),this.send("session-info",{hold:!0})},resume:function(){this._log("info","Resuming from hold"),this.send("session-info",{active:!0})},addStream:function(stream,renegotiate,cb){var self=this;cb=cb||function(){},this.pc.addStream(stream),renegotiate&&this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not create offer for adding new stream"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not create answer for adding new stream"),cb(err)):(answer.jingle.contents.forEach(function(content){filterContentSources(content,stream)}),self.send("source-add",answer.jingle),void cb())})})},addStream2:function(stream,cb){this.addStream(stream,!0,cb)},removeStream:function(stream,renegotiate,cb){var self=this;if(cb=cb||function(){},!renegotiate)return void this.pc.removeStream(stream);var desc=this.pc.localDescription;desc.contents.forEach(function(content){filterContentSources(content,stream)}),this.send("source-remove",desc),this.pc.removeStream(stream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for removing stream"),cb(err)):void self.pc.answer(function(err){return err?(self._log("error","Could not process answer for removing stream"),cb(err)):void cb()})})},removeStream2:function(stream,cb){this.removeStream(stream,!0,cb)},switchStream:function(oldStream,newStream,cb){var self=this;cb=cb||function(){};var desc=this.pc.localDescription;desc.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),this.pc.removeStream(oldStream),this.send("source-remove",desc);var audioTracks=oldStream.getAudioTracks();audioTracks.length&&newStream.addTrack(audioTracks[0]),this.pc.addStream(newStream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for switching streams"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not process answer for switching streams"),cb(err)):(answer.jingle.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),self.send("source-add",answer.jingle),void cb())})})},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onAddStream:function(event){this._log("info","Stream added"),this.emit("peerStreamAdded",this,event.stream)},onRemoveStream:function(event){this._log("info","Stream removed"),this.emit("peerStreamRemoved",this,event.stream)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1,this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){var self=this;this._log("info","Terminating session"),this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onSessionInfo:function(info,cb){return info.ringing?(this._log("info","Outgoing session is ringing"),this.ringing=!0,this.emit("ringing",this),cb()):info.hold?(this._log("info","On hold"),this.emit("hold",this),cb()):info.active?(this._log("info","Resuming from hold"),this.emit("resumed",this),cb()):info.mute?(this._log("info","Muting",info.mute),this.emit("mute",this,info.mute),cb()):info.unmute?(this._log("info","Unmuting",info.unmute),this.emit("unmute",this,info.unmute),cb()):void cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})},onSourceAdd:function(changes,cb){var self=this;this._log("info","Adding new stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[];ssrcs=ssrcs.concat(newSSRCs),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs));var newGroups=newContentDesc.sourceGroups||[];groups=groups.concat(newGroups),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups))}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void cb()})})},onSourceRemove:function(changes,cb){var self=this;this._log("info","Removing stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];
+changes.contents.forEach(function(newContent){if(content.name===newContent.name){var found,i,j,k,newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[],newGroups=newContentDesc.sourceGroups||[];for(i=0;i<newSSRCs.length;i++){for(found=-1,j=0;j<ssrcs.length;j++)if(newSSRCs[i].ssrc===ssrcs[j].ssrc){found=j;break}found>-1&&(ssrcs.splice(found,1),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs)))}for(i=0;i<newGroups.length;i++){for(found=-1,j=0;i<groups.length;j++)if(newGroups[i].semantics===groups[j].semantics&&newGroups[i].sources.length===groups[j].sources.length){var same=!0;for(k=0;k<newGroups[i].sources.length;k++)if(newGroups[i].sources[k]!==groups[j].sources[k]){same=!1;break}if(same){found=j;break}}found>-1&&(groups.splice(found,1),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups)))}}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void cb()})})}}),module.exports=MediaSession},{"extend-object":26,"jingle-session":111,rtcpeerconnection:110,util:24}],80:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48,"lodash._arrayeach":81,"lodash._baseeach":82,"lodash._bindcallback":86,"lodash.isarray":87}],81:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{dup:49}],82:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":83}],83:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":84,"lodash.isarguments":85,"lodash.isarray":87}],84:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],85:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],86:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],87:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],88:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash._baseget":89,"lodash._topath":90,"lodash.isarray":91,"lodash.map":92}],89:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57}],90:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58,"lodash.isarray":91}],91:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],92:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60,"lodash._arraymap":93,"lodash._basecallback":94,"lodash._baseeach":99,"lodash.isarray":91}],93:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],94:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{dup:62,"lodash._baseisequal":95,"lodash._bindcallback":97,"lodash.isarray":91,"lodash.pairs":98}],95:[function(require,module,exports){arguments[4][63][0].apply(exports,arguments)},{dup:63,"lodash.isarray":91,"lodash.istypedarray":96,"lodash.keys":100}],96:[function(require,module,exports){arguments[4][64][0].apply(exports,arguments)},{dup:64}],97:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],98:[function(require,module,exports){arguments[4][66][0].apply(exports,arguments)},{dup:66,"lodash.keys":100}],99:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{dup:50,"lodash.keys":100}],100:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":101,"lodash.isarguments":102,"lodash.isarray":91}],101:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],102:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],103:[function(require,module,exports){arguments[4][71][0].apply(exports,arguments)},{"./lib/tojson":106,"./lib/tosdp":107,dup:71}],104:[function(require,module,exports){arguments[4][72][0].apply(exports,arguments)},{dup:72}],105:[function(require,module,exports){arguments[4][73][0].apply(exports,arguments)},{dup:73}],106:[function(require,module,exports){arguments[4][74][0].apply(exports,arguments)},{"./parsers":104,"./senders":105,dup:74}],107:[function(require,module,exports){arguments[4][75][0].apply(exports,arguments)},{"./senders":105,dup:75}],108:[function(require,module,exports){arguments[4][76][0].apply(exports,arguments)},{dup:76,util:24,"webrtc-adapter-test":109,wildemitter:116}],109:[function(require,module,exports){arguments[4][77][0].apply(exports,arguments)},{dup:77}],110:[function(require,module,exports){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[],this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"webkit"===webrtc.prefix&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint,idx){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"webkit"===webrtc.prefix&&constraints.optional.forEach(function(constraint,idx){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint,idx){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint,idx){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"webkit"===webrtc.prefix&&constraints.optional.forEach(function(constraint,idx){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint,idx){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint,idx){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"moz"===webrtc.prefix&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint,idx){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,ice:{},sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(eventName,event){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),each=require("lodash.foreach"),pluck=require("lodash.pluck"),webrtc=require("webrtcsupport"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),peerconn=require("traceablepeerconnection");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),-1!=cand.ip.indexOf(":")&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=pluck(this.remoteDescription.contents,"name"),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name;candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new webrtc.IceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)})})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new webrtc.IceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate)}cb()},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.description.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.description.sources||[];(0===sources.length||"3735928559"!==sources[0].ssrc)&&(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.description.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.description&&content.description.bandwidth;hasBw||(offer.jingle.contents[1].description.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new webrtc.SessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new webrtc.SessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new webrtc.IceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].description.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].description.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(newssrc),sim.push(answer.jingle.contents[1].description.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].description.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};self.assumeSetLocalSuccess&&(self.emit("answer",expandedAnswer),cb(null,expandedAnswer)),self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}if(self.enableChromeNativeSimulcast){expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}));expandedAnswer.jingle.contents[1].description.sourceGroups||[];expandedAnswer.jingle.contents[1].description.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})}expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("answer",expandedAnswer),cb(null,expandedAnswer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?ice.sdpMid=self.remoteDescription.contents[ice.sdpMLineIndex].name:ice.sdpMid=self.localDescription.contents[ice.sdpMLineIndex].name),!self.config.ice[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transType:"iceUdp",ufrag:self.config.ice[ice.sdpMid].ufrag,pwd:self.config.ice[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){"moz"===webrtc.prefix?this.pc.getStats(function(res){var items=[];for(var result in res)"object"==typeof res[result]&&items.push(res[result]);cb(null,items)},cb):this.pc.getStats(function(res){var items=[];res.result().forEach(function(result){var item={};result.names().forEach(function(name){item[name]=result.stat(name)}),item.id=result.id,item.type=result.type,item.timestamp=result.timestamp,items.push(item)}),cb(null,items)})},module.exports=PeerConnection},{"lodash.foreach":80,"lodash.pluck":88,"sdp-jingle-json":103,traceablepeerconnection:108,util:24,webrtcsupport:115,wildemitter:116}],111:[function(require,module,exports){function JingleSession(opts){WildEmitter.call(this);var self=this;this.sid=opts.sid||uuid.v4(),this.peer=opts.peer,this.peerID=opts.peerID||this.peer.full||this.peer,this.isInitiator=opts.initiator||!1,this.parent=opts.parent,this.state="starting",this.connectionState="starting",this.pendingDescriptionTypes=opts.descriptionTypes||[],this.pendingAction=!1,this.processingQueue=async.queue(function(task,next){if(self.ended)return next();var action=task.action,changes=task.changes,cb=task.cb;return self._log("debug",action),ACTIONS[action]?void self[ACTIONS[action]](changes,function(err,result){return cb(err,result),next()}):(self._log("error","Invalid action: "+action),cb({condition:"bad-request"}),next())})}var util=require("util"),uuid=require("uuid"),async=require("async"),extend=require("extend-object"),WildEmitter=require("wildemitter"),ACTIONS={"content-accept":"onContentAccept","content-add":"onContentAdd","content-modify":"onConentModify","content-reject":"onContentReject","content-remove":"onContentRemove","description-info":"onDescriptionInfo","security-info":"onSecurityInfo","session-accept":"onSessionAccept","session-info":"onSessionInfo","session-initiate":"onSessionInitiate","session-terminate":"onSessionTerminate","transport-accept":"onTransportAccept","transport-info":"onTransportInfo","transport-reject":"onTransportReject","transport-replace":"onTransportReplace","source-add":"onSourceAdd","source-remove":"onSourceRemove"};util.inherits(JingleSession,WildEmitter),Object.keys(ACTIONS).forEach(function(action){var method=ACTIONS[action];JingleSession.prototype[method]=function(changes,cb){this._log("error","Unsupported action: "+action),cb()}}),Object.defineProperties(JingleSession.prototype,{state:{get:function(){return this._sessionState},set:function(value){if(value!==this._sessionState){var prev=this._sessionState;this._log("info","Changing session state to: "+value),this._sessionState=value,this.emit("change:sessionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},connectionState:{get:function(){return this._connectionState},set:function(value){if(value!==this._connectionState){var prev=this._connectionState;this._log("info","Changing connection state to: "+value),this._connectionState=value,this.emit("change:connectionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},starting:{get:function(){return"starting"===this._sessionState}},pending:{get:function(){return"pending"===this._sessionState}},active:{get:function(){return"active"===this._sessionState}},ended:{get:function(){return"ended"===this._sessionState}},connected:{get:function(){return"connected"===this._connectionState}},connecting:{get:function(){return"connecting"===this._connectionState}},disconnected:{get:function(){return"disconnected"===this._connectionState}},interrupted:{get:function(){return"interrupted"===this._connectionState}}}),JingleSession.prototype=extend(JingleSession.prototype,{_log:function(level,message){message=this.sid+": "+message,this.emit("log:"+level,message)},send:function(action,data){data=data||{},data.sid=this.sid,data.action=action;var requirePending={"session-inititate":!0,"session-accept":!0,"content-add":!0,"content-remove":!0,"content-reject":!0,"content-accept":!0,"content-modify":!0,"transport-replace":!0,"transport-reject":!0,"transport-accept":!0,"source-add":!0,"source-remove":!0};requirePending[action]?this.pendingAction=action:this.pendingAction=!1,this.emit("send",{to:this.peer,type:"set",jingle:data})},process:function(action,changes,cb){this.processingQueue.push({action:action,changes:changes,cb:cb})},start:function(){this._log("error","Can not start base sessions"),this.end("unsupported-applications",!0)},accept:function(){this._log("error","Can not accept base sessions"),this.end("unsupported-applications")},cancel:function(){this.end("cancel")},decline:function(){this.end("decline")},end:function(reason,silent){this.state="ended",this.processingQueue.kill(),reason||(reason="success"),"string"==typeof reason&&(reason={condition:reason}),silent||this.send("session-terminate",{reason:reason}),this.emit("terminated",this,reason)},onSessionTerminate:function(changes,cb){this.end(changes.reason,!0),cb()},onSessionInfo:function(changes,cb){var okKeys={sid:!0,action:!0,initiator:!0,responder:!0},unknownPayload=!1;Object.keys(changes).forEach(function(key){okKeys[key]||(unknownPayload=!0)}),unknownPayload?cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"}):cb()},onDescriptionInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onTransportInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onContentAdd:function(changes,cb){cb(),this.send("content-reject",{reason:{condition:"failed-application",text:"content-add is not supported"}})},onTransportReplace:function(changes,cb){cb(),this.send("transport-reject",{reason:{condition:"failed-application",text:"transport-replace is not supported"}})}}),module.exports=JingleSession},{async:112,"extend-object":26,util:24,uuid:114,wildemitter:116}],112:[function(require,module,exports){(function(process){/*!
* async
* https://github.com/caolan/async
*
* Copyright 2010-2014 Caolan McMahon
* Released under the MIT license
*/
-!function(){function only_once(fn){var called=!1;return function(){if(called)throw new Error("Callback was already called.");called=!0,fn.apply(root,arguments)}}var root,previous_async,async={};root=this,null!=root&&(previous_async=root.async),async.noConflict=function(){return root.async=previous_async,async};var _toString=Object.prototype.toString,_isArray=Array.isArray||function(obj){return"[object Array]"===_toString.call(obj)},_each=function(arr,iterator){for(var i=0;i<arr.length;i+=1)iterator(arr[i],i,arr)},_map=function(arr,iterator){if(arr.map)return arr.map(iterator);var results=[];return _each(arr,function(x,i,a){results.push(iterator(x,i,a))}),results},_reduce=function(arr,iterator,memo){return arr.reduce?arr.reduce(iterator,memo):(_each(arr,function(x,i,a){memo=iterator(memo,x,i,a)}),memo)},_keys=function(obj){if(Object.keys)return Object.keys(obj);var keys=[];for(var k in obj)obj.hasOwnProperty(k)&&keys.push(k);return keys};"undefined"!=typeof process&&process.nextTick?(async.nextTick=process.nextTick,async.setImmediate="undefined"!=typeof setImmediate?function(fn){setImmediate(fn)}:async.nextTick):"function"==typeof setImmediate?(async.nextTick=function(fn){setImmediate(fn)},async.setImmediate=async.nextTick):(async.nextTick=function(fn){setTimeout(fn,0)},async.setImmediate=async.nextTick),async.each=function(arr,iterator,callback){function done(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length&&callback())}if(callback=callback||function(){},!arr.length)return callback();var completed=0;_each(arr,function(x){iterator(x,only_once(done))})},async.forEach=async.each,async.eachSeries=function(arr,iterator,callback){if(callback=callback||function(){},!arr.length)return callback();var completed=0,iterate=function(){iterator(arr[completed],function(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length?callback():iterate())})};iterate()},async.forEachSeries=async.eachSeries,async.eachLimit=function(arr,limit,iterator,callback){var fn=_eachLimit(limit);fn.apply(null,[arr,iterator,callback])},async.forEachLimit=async.eachLimit;var _eachLimit=function(limit){return function(arr,iterator,callback){if(callback=callback||function(){},!arr.length||0>=limit)return callback();var completed=0,started=0,running=0;!function replenish(){if(completed>=arr.length)return callback();for(;limit>running&&started<arr.length;)started+=1,running+=1,iterator(arr[started-1],function(err){err?(callback(err),callback=function(){}):(completed+=1,running-=1,completed>=arr.length?callback():replenish())})}()}},doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.each].concat(args))}},doParallelLimit=function(limit,fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[_eachLimit(limit)].concat(args))}},doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.eachSeries].concat(args))}},_asyncMap=function(eachfn,arr,iterator,callback){if(arr=_map(arr,function(x,i){return{index:i,value:x}}),callback){var results=[];eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v,callback(err)})},function(err){callback(err,results)})}else eachfn(arr,function(x,callback){iterator(x.value,function(err){callback(err)})})};async.map=doParallel(_asyncMap),async.mapSeries=doSeries(_asyncMap),async.mapLimit=function(arr,limit,iterator,callback){return _mapLimit(limit)(arr,iterator,callback)};var _mapLimit=function(limit){return doParallelLimit(limit,_asyncMap)};async.reduce=function(arr,memo,iterator,callback){async.eachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v,callback(err)})},function(err){callback(err,memo)})},async.inject=async.reduce,async.foldl=async.reduce,async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)},async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v&&results.push(x),callback()})},function(){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter),async.filterSeries=doSeries(_filter),async.select=async.filter,async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v||results.push(x),callback()})},function(){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject),async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){result?(main_callback(x),main_callback=function(){}):callback()})},function(){main_callback()})};async.detect=doParallel(_detect),async.detectSeries=doSeries(_detect),async.some=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v&&(main_callback(!0),main_callback=function(){}),callback()})},function(){main_callback(!1)})},async.any=async.some,async.every=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v||(main_callback(!1),main_callback=function(){}),callback()})},function(){main_callback(!0)})},async.all=async.every,async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){err?callback(err):callback(null,{value:x,criteria:criteria})})},function(err,results){if(err)return callback(err);var fn=function(left,right){var a=left.criteria,b=right.criteria;return b>a?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))})},async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks),remainingTasks=keys.length;if(!remainingTasks)return callback();var results={},listeners=[],addListener=function(fn){listeners.unshift(fn)},removeListener=function(fn){for(var i=0;i<listeners.length;i+=1)if(listeners[i]===fn)return void listeners.splice(i,1)},taskComplete=function(){remainingTasks--,_each(listeners.slice(0),function(fn){fn()})};addListener(function(){if(!remainingTasks){var theCallback=callback;callback=function(){},theCallback(null,results)}}),_each(keys,function(k){var task=_isArray(tasks[k])?tasks[k]:[tasks[k]],taskCallback=function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1&&(args=args[0]),err){var safeResults={};_each(_keys(results),function(rkey){safeResults[rkey]=results[rkey]}),safeResults[k]=args,callback(err,safeResults),callback=function(){}}else results[k]=args,async.setImmediate(taskComplete)},requires=task.slice(0,Math.abs(task.length-1))||[],ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},!0)&&!results.hasOwnProperty(k)};if(ready())task[task.length-1](taskCallback,results);else{var listener=function(){ready()&&(removeListener(listener),task[task.length-1](taskCallback,results))};addListener(listener)}})},async.retry=function(times,task,callback){var DEFAULT_TIMES=5,attempts=[];"function"==typeof times&&(callback=task,task=times,times=DEFAULT_TIMES),times=parseInt(times,10)||DEFAULT_TIMES;var wrappedTask=function(wrappedCallback,wrappedResults){for(var retryAttempt=function(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}};times;)attempts.push(retryAttempt(task,!(times-=1)));async.series(attempts,function(done,data){data=data[data.length-1],(wrappedCallback||callback)(data.err,data.result)})};return callback?wrappedTask():wrappedTask},async.waterfall=function(tasks,callback){if(callback=callback||function(){},!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length)return callback();var wrapIterator=function(iterator){return function(err){if(err)callback.apply(null,arguments),callback=function(){};else{var args=Array.prototype.slice.call(arguments,1),next=iterator.next();args.push(next?wrapIterator(next):callback),async.setImmediate(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};var _parallel=function(eachfn,tasks,callback){if(callback=callback||function(){},_isArray(tasks))eachfn.map(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};eachfn.each(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}};async.parallel=function(tasks,callback){_parallel({map:async.map,each:async.each},tasks,callback)},async.parallelLimit=function(tasks,limit,callback){_parallel({map:_mapLimit(limit),each:_eachLimit(limit)},tasks,callback)},async.series=function(tasks,callback){if(callback=callback||function(){},_isArray(tasks))async.mapSeries(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};async.eachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}},async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){return tasks.length&&tasks[index].apply(null,arguments),fn.next()};return fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null},fn};return makeCallback(0)},async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]),cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat),async.concatSeries=doSeries(_concat),async.whilst=function(test,iterator,callback){test()?iterator(function(err){return err?callback(err):void async.whilst(test,iterator,callback)}):callback()},async.doWhilst=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?async.doWhilst(iterator,test,callback):callback()})},async.until=function(test,iterator,callback){test()?callback():iterator(function(err){return err?callback(err):void async.until(test,iterator,callback)})},async.doUntil=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?callback():async.doUntil(iterator,test,callback)})},async.queue=function(worker,concurrency){function _insert(q,data,pos,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,callback:"function"==typeof callback?callback:null};pos?q.tasks.unshift(item):q.tasks.push(item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}void 0===concurrency&&(concurrency=1);var workers=0,q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,started:!1,paused:!1,push:function(data,callback){_insert(q,data,!1,callback)},kill:function(){q.drain=null,q.tasks=[]},unshift:function(data,callback){_insert(q,data,!0,callback)},process:function(){if(!q.paused&&workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();q.empty&&0===q.tasks.length&&q.empty(),workers+=1;var next=function(){workers-=1,task.callback&&task.callback.apply(task,arguments),q.drain&&q.tasks.length+workers===0&&q.drain(),q.process()},cb=only_once(next);worker(task.data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},idle:function(){return q.tasks.length+workers===0},pause:function(){q.paused!==!0&&(q.paused=!0)},resume:function(){if(q.paused!==!1){q.paused=!1;for(var w=1;w<=q.concurrency;w++)async.setImmediate(q.process)}}};return q},async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){for(var beg=-1,end=sequence.length-1;end>beg;){var mid=beg+(end-beg+1>>>1);compare(item,sequence[mid])>=0?beg=mid:end=mid-1}return beg}function _insert(q,data,priority,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,priority:priority,callback:"function"==typeof callback?callback:null};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);return q.push=function(data,priority,callback){_insert(q,data,priority,callback)},delete q.unshift,q},async.cargo=function(worker,payload){var working=!1,tasks=[],cargo={tasks:tasks,payload:payload,saturated:null,empty:null,drain:null,drained:!0,push:function(data,callback){_isArray(data)||(data=[data]),_each(data,function(task){tasks.push({data:task,callback:"function"==typeof callback?callback:null}),cargo.drained=!1,cargo.saturated&&tasks.length===payload&&cargo.saturated()}),async.setImmediate(cargo.process)},process:function process(){if(!working){if(0===tasks.length)return cargo.drain&&!cargo.drained&&cargo.drain(),void(cargo.drained=!0);var ts="number"==typeof payload?tasks.splice(0,payload):tasks.splice(0,tasks.length),ds=_map(ts,function(task){return task.data});cargo.empty&&cargo.empty(),working=!0,worker(ds,function(){working=!1;var args=arguments;_each(ts,function(data){data.callback&&data.callback.apply(null,args)}),process()})}},length:function(){return tasks.length},running:function(){return working}};return cargo};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(err?console.error&&console.error(err):console[name]&&_each(args,function(x){console[name](x)}))}]))}};async.log=_console_fn("log"),async.dir=_console_fn("dir"),async.memoize=function(fn,hasher){var memo={},queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments),callback=args.pop(),key=hasher.apply(null,args);key in memo?async.nextTick(function(){callback.apply(null,memo[key])}):key in queues?queues[key].push(callback):(queues[key]=[callback],fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;l>i;i++)q[i].apply(null,arguments)}])))};return memoized.memo=memo,memoized.unmemoized=fn,memoized},async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}},async.times=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.map(counter,iterator,callback)},async.timesSeries=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.mapSeries(counter,iterator,callback)},async.seq=function(){var fns=arguments;return function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([function(){var err=arguments[0],nextargs=Array.prototype.slice.call(arguments,1);cb(err,nextargs)}]))},function(err,results){callback.apply(that,[err].concat(results))})}},async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))};var _applyEach=function(eachfn,fns){var go=function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();return eachfn(fns,function(fn,cb){fn.apply(that,args.concat([cb]))},callback)};if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);return go.apply(this,args)}return go};async.applyEach=doParallel(_applyEach),async.applyEachSeries=doSeries(_applyEach),async.forever=function(fn,callback){function next(err){if(err){if(callback)return callback(err);throw err}fn(next)}next()},"undefined"!=typeof module&&module.exports?module.exports=async:"undefined"!=typeof define&&define.amd?define([],function(){return async}):root.async=async}()}).call(this,require("_process"))},{_process:9}],113:[function(require,module){(function(global){var rng;if(global.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);rng=function(){return crypto.getRandomValues(_rnds8),_rnds8}}if(!rng){var _rnds=new Array(16);rng=function(){for(var r,i=0;16>i;i++)0===(3&i)&&(r=4294967296*Math.random()),_rnds[i]=r>>>((3&i)<<3)&255;return _rnds}}module.exports=rng}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],114:[function(require,module){function parse(s,buf,offset){var i=buf&&offset||0,ii=0;for(buf=buf||[],s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){16>ii&&(buf[i+ii++]=_hexToByte[oct])});16>ii;)buf[i+ii++]=0;return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}function v1(options,buf,offset){var i=buf&&offset||0,b=buf||[];options=options||{};var clockseq=void 0!==options.clockseq?options.clockseq:_clockseq,msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(0>dt&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(0>dt||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq,msecs+=122192928e5;var tl=(1e4*(268435455&msecs)+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var node=options.node||_nodeId,n=0;6>n;n++)b[i+n]=node[n];return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"==options?new Array(16):null,options=null),options=options||{};var rnds=options.random||(options.rng||_rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;16>ii;ii++)buf[i+ii]=rnds[ii];return buf||unparse(rnds)}for(var _rng=require("./rng"),_byteToHex=[],_hexToByte={},i=0;256>i;i++)_byteToHex[i]=(i+256).toString(16).substr(1),_hexToByte[_byteToHex[i]]=i;var _seedBytes=_rng(),_nodeId=[1|_seedBytes[0],_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]],_clockseq=16383&(_seedBytes[6]<<8|_seedBytes[7]),_lastMSecs=0,_lastNSecs=0,uuid=v4;uuid.v1=v1,uuid.v4=v4,uuid.parse=parse,uuid.unparse=unparse,module.exports=uuid},{"./rng":113}],115:[function(require,module){var prefix,version;window.mozRTCPeerConnection||navigator.mozGetUserMedia?(prefix="moz",version=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10)):(window.webkitRTCPeerConnection||navigator.webkitGetUserMedia)&&(prefix="webkit",version=navigator.userAgent.match(/Chrom(e|ium)/)&&parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10));var PC=window.mozRTCPeerConnection||window.webkitRTCPeerConnection,IceCandidate=window.mozRTCIceCandidate||window.RTCIceCandidate,SessionDescription=window.mozRTCSessionDescription||window.RTCSessionDescription,MediaStream=window.webkitMediaStream||window.MediaStream,screenSharing="https:"===window.location.protocol&&("webkit"===prefix&&version>=26||"moz"===prefix&&version>=33),AudioContext=window.AudioContext||window.webkitAudioContext,videoEl=document.createElement("video"),supportVp8=videoEl&&videoEl.canPlayType&&"probably"===videoEl.canPlayType('video/webm; codecs="vp8", vorbis'),getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia;module.exports={prefix:prefix,browserVersion:version,support:!!PC&&supportVp8&&!!getUserMedia,supportRTCPeerConnection:!!PC,supportVp8:supportVp8,supportGetUserMedia:!!getUserMedia,supportDataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),supportWebAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),supportMediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),supportScreenSharing:!!screenSharing,dataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),webAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),mediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),screenSharing:!!screenSharing,AudioContext:AudioContext,PeerConnection:PC,SessionDescription:SessionDescription,IceCandidate:IceCandidate,MediaStream:MediaStream,getUserMedia:getUserMedia}},{}],116:[function(require,module){function WildEmitter(){this.isWildEmitter=!0,this.callbacks={}}module.exports=WildEmitter,WildEmitter.prototype.on=function(event){var hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return func._groupName=group,(this.callbacks[event]=this.callbacks[event]||[]).push(func),this},WildEmitter.prototype.once=function(event){function on(){self.off(event,on),func.apply(this,arguments)}var self=this,hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return this.on(event,group,on),this},WildEmitter.prototype.releaseGroup=function(groupName){var item,i,len,handlers;for(item in this.callbacks)for(handlers=this.callbacks[item],i=0,len=handlers.length;len>i;i++)handlers[i]._groupName===groupName&&(handlers.splice(i,1),i--,len--);return this},WildEmitter.prototype.off=function(event,fn){var i,callbacks=this.callbacks[event];return callbacks?1===arguments.length?(delete this.callbacks[event],this):(i=callbacks.indexOf(fn),callbacks.splice(i,1),0===callbacks.length&&delete this.callbacks[event],this):this},WildEmitter.prototype.emit=function(event){var i,len,listeners,args=[].slice.call(arguments,1),callbacks=this.callbacks[event],specialCallbacks=this.getWildcardCallbacks(event);if(callbacks)for(listeners=callbacks.slice(),i=0,len=listeners.length;len>i&&listeners[i];++i)listeners[i].apply(this,args);if(specialCallbacks)for(len=specialCallbacks.length,listeners=specialCallbacks.slice(),i=0,len=listeners.length;len>i&&listeners[i];++i)listeners[i].apply(this,[event].concat(args));return this},WildEmitter.prototype.getWildcardCallbacks=function(eventName){var item,split,result=[];for(item in this.callbacks)split=item.split("*"),("*"===item||2===split.length&&eventName.slice(0,split[0].length)===split[0])&&(result=result.concat(this.callbacks[item]));return result}},{}],117:[function(require,module){"use strict";function JXT(){this._LOOKUP={},this._LOOKUP_EXT={},this._TAGS={},this._CB_DEFINITION={},this._CB_TAG={},this._ID=uuid.v4(),this.utils=extend({},types,helpers)}var extend=require("lodash.assign"),uuid=require("uuid"),ltx=require("ltx"),types=require("./lib/types"),helpers=require("./lib/helpers"),stanzaConstructor=require("./lib/stanza");JXT.prototype.use=function(init){return init["__JXT_LOADED_"+this._ID]||init(this),init["__JXT_LOADED_"+this._ID]=!0,this},JXT.prototype.getDefinition=function(el,ns,required){var JXTClass=this._LOOKUP[ns+"|"+el];if(required&&!JXTClass)throw new Error("Could not find definition for <"+el+' xmlns="'+ns+'" />');return JXTClass},JXT.prototype.getExtensions=function(el,ns){return this._LOOKUP_EXT[ns+"|"+el]||{}},JXT.prototype.withDefinition=function(el,ns,cb){var name=ns+"|"+el;this._CB_DEFINITION[name]||(this._CB_DEFINITION[name]=[]),this._CB_DEFINITION[name].push(cb),this._LOOKUP[name]&&cb(this._LOOKUP[name])},JXT.prototype.withTag=function(tag,cb){this._CB_TAG[tag]||(this._CB_TAG[tag]=[]),this._CB_TAG[tag].push(cb),this.tagged(tag).forEach(function(stanza){cb(stanza)})},JXT.prototype.tagged=function(tag){return this._TAGS[tag]||[]},JXT.prototype.build=function(xml){var JXTClass=this.getDefinition(xml.localName,xml.namespaceURI);return JXTClass?new JXTClass(null,xml):void 0},JXT.prototype.parse=function(str){var xml=ltx.parse(str);if(1===xml.nodeType)return this.build(xml)},JXT.prototype.extend=function(ParentJXT,ChildJXT,multiName,hideSingle){var parentName=ParentJXT.prototype._NS+"|"+ParentJXT.prototype._EL,name=ChildJXT.prototype._name,qName=ChildJXT.prototype._NS+"|"+ChildJXT.prototype._EL;this._LOOKUP[qName]=ChildJXT,this._LOOKUP_EXT[qName]||(this._LOOKUP_EXT[qName]={}),this._LOOKUP_EXT[parentName]||(this._LOOKUP_EXT[parentName]={}),this._LOOKUP_EXT[parentName][name]=ChildJXT,(!multiName||multiName&&!hideSingle)&&this.add(ParentJXT,name,types.extension(ChildJXT)),multiName&&this.add(ParentJXT,multiName,types.multiExtension(ChildJXT))},JXT.prototype.add=function(ParentJXT,fieldName,field){field.enumerable=!0,Object.defineProperty(ParentJXT.prototype,fieldName,field)},JXT.prototype.define=function(opts){var self=this,Stanza=stanzaConstructor(this,opts),ns=Stanza.prototype._NS,el=Stanza.prototype._EL,tags=Stanza.prototype._TAGS,name=ns+"|"+el;this._LOOKUP[name]=Stanza,tags.forEach(function(tag){self._TAGS[tag]||(self._TAGS[tag]=[]),self._TAGS[tag].push(Stanza)});var fieldNames=Object.keys(opts.fields||{});return fieldNames.forEach(function(fieldName){self.add(Stanza,fieldName,opts.fields[fieldName])}),this._CB_DEFINITION[name]&&this._CB_DEFINITION[name].forEach(function(handler){handler(Stanza)}),tags.forEach(function(tag){self._CB_TAG[tag]&&self._CB_TAG[tag].forEach(function(handler){handler(Stanza)})}),Stanza},JXT.createRegistry=function(){return new JXT},extend(JXT,helpers),extend(JXT,types);var globalJXT=new JXT;JXT.define=globalJXT.define.bind(globalJXT),JXT.extend=globalJXT.extend.bind(globalJXT),JXT.add=globalJXT.add.bind(globalJXT),JXT.parse=globalJXT.parse.bind(globalJXT),JXT.build=globalJXT.build.bind(globalJXT),JXT.getExtensions=globalJXT.getExtensions.bind(globalJXT),JXT.getDefinition=globalJXT.getDefinition.bind(globalJXT),JXT.withDefinition=globalJXT.withDefinition.bind(globalJXT),JXT.withTag=globalJXT.withTag.bind(globalJXT),JXT.tagged=globalJXT.tagged.bind(globalJXT),JXT.getGlobalJXT=function(){return globalJXT},module.exports=JXT},{"./lib/helpers":118,"./lib/stanza":119,"./lib/types":120,"lodash.assign":121,ltx:134,uuid:139}],118:[function(require,module,exports){"use strict";var ltx=require("ltx"),XML_NS=exports.XML_NS="http://www.w3.org/XML/1998/namespace";exports.createElement=function(NS,name,parentNS){var el=new ltx.Element(name);return parentNS&&parentNS===NS||exports.setAttribute(el,"xmlns",NS),el};var find=exports.find=function(xml,NS,selector){for(var results=[],children=xml.getElementsByTagName(selector),i=0,len=children.length;len>i;i++){var child=children[i];child.namespaceURI===NS&&child.parentNode===xml&&results.push(child)}return results};exports.findOrCreate=function(xml,NS,selector){var existing=exports.find(xml,NS,selector);if(existing.length)return existing[0];var created=exports.createElement(NS,selector,xml.namespaceURI);return xml.appendChild(created),created},exports.getAttribute=function(xml,attr,defaultVal){return xml.getAttribute(attr)||defaultVal||""},exports.getAttributeNS=function(xml,NS,attr,defaultVal){return xml.getAttributeNS(NS,attr)||defaultVal||""},exports.setAttribute=function(xml,attr,value,force){value||force?xml.setAttribute(attr,value):xml.removeAttribute(attr)},exports.setAttributeNS=function(xml,NS,attr,value,force){value||force?xml.setAttributeNS(NS,attr,value):xml.removeAttributeNS(NS,attr)},exports.getBoolAttribute=function(xml,attr,defaultVal){var val=xml.getAttribute(attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolAttribute=function(xml,attr,value){value?xml.setAttribute(attr,"1"):xml.removeAttribute(attr)},exports.getSubAttribute=function(xml,NS,sub,attr,defaultVal){var subs=find(xml,NS,sub);if(!subs)return"";for(var i=0;i<subs.length;i++)return subs[i].getAttribute(attr)||defaultVal||"";return""},exports.setSubAttribute=function(xml,NS,sub,attr,value){var subs=find(xml,NS,sub);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return void subs[i].setAttribute(attr,value);subs[i].removeAttribute(attr)}else value&&(sub=exports.createElement(NS,sub,xml.namespaceURI),sub.setAttribute(attr,value),xml.appendChild(sub))},exports.getBoolSubAttribute=function(xml,NS,sub,attr,defaultVal){var val=xml.getSubAttribute(NS,sub,attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolSubAttribute=function(xml,NS,sub,attr,value){value=value?"1":"",exports.setSubAttribute(xml,NS,sub,attr,value)},exports.getText=function(xml){return xml.textContent},exports.setText=function(xml,value){xml.textContent=value},exports.getSubText=exports.getTextSub=function(xml,NS,element,defaultVal){var subs=find(xml,NS,element);return defaultVal=defaultVal||"",subs.length?subs[0].textContent||defaultVal:defaultVal},exports.setSubText=exports.setTextSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);value!==!0&&(sub.textContent=value),xml.appendChild(sub)}},exports.getMultiSubText=function(xml,NS,element,extractor){var subs=find(xml,NS,element),results=[];extractor=extractor||function(sub){return sub.textContent||""};for(var i=0;i<subs.length;i++)results.push(extractor(subs[i]));return results},exports.setMultiSubText=function(xml,NS,element,value,builder){var subs=find(xml,NS,element),values=[];builder=builder||function(value){if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);sub.textContent=value,xml.appendChild(sub)}},values="string"==typeof value?(value||"").split("\n"):value;var i,len;for(i=0,len=subs.length;len>i;i++)xml.removeChild(subs[i]);for(i=0,len=values.length;len>i;i++)builder(values[i])},exports.getMultiSubAttribute=function(xml,NS,element,attr){return exports.getMultiSubText(xml,NS,element,function(sub){return exports.getAttribute(sub,attr)})},exports.setMultiSubAttribute=function(xml,NS,element,attr,value){exports.setMultiSubText(xml,NS,element,value,function(val){var sub=exports.createElement(NS,element,xml.namespaceURI);exports.setAttribute(sub,attr,val),xml.appendChild(sub)})},exports.getSubLangText=function(xml,NS,element,defaultLang){var subs=find(xml,NS,element);if(!subs.length)return{};for(var lang,sub,results={},langs=[],i=0;i<subs.length;i++)sub=subs[i],lang=sub.getAttributeNS(XML_NS,"lang")||defaultLang,langs.push(lang),results[lang]=sub.textContent||"";return results},exports.setSubLangText=function(xml,NS,element,value,defaultLang){var sub,lang,subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if("string"==typeof value)sub=exports.createElement(NS,element,xml.namespaceURI),sub.textContent=value,xml.appendChild(sub);else if("object"==typeof value)for(lang in value)value.hasOwnProperty(lang)&&(sub=exports.createElement(NS,element,xml.namespaceURI),lang!==defaultLang&&sub.setAttributeNS(XML_NS,"lang",lang),sub.textContent=value[lang],xml.appendChild(sub))},exports.getBoolSub=function(xml,NS,element){var subs=find(xml,NS,element);
-return!!subs.length},exports.setBoolSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return;xml.removeChild(subs[i])}else if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);xml.appendChild(sub)}}},{ltx:134}],119:[function(require,module){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),EXCLUDE={constructor:!0,parent:!0,prototype:!0,toJSON:!0,toString:!0,xml:!0};module.exports=function(JXT,opts){function Stanza(data,xml,parent){var self=this,parentNode=(xml||{}).parentNode||(parent||{}).xml,parentNS=(parentNode||{}).namespaceURI;self.xml=xml||helpers.createElement(self._NS,self._EL,parentNS),Object.keys(self._PREFIXES).forEach(function(prefix){var namespace=self._PREFIXES[prefix];self.xml.setAttribute("xmlns:"+prefix,namespace)}),self._extensions={};for(var i=0,len=self.xml.childNodes.length;len>i;i++){var child=self.xml.childNodes[i],ChildJXT=JXT.getDefinition(child.localName,child.namespaceURI);if(void 0!==ChildJXT){var name=ChildJXT.prototype._name;self._extensions[name]=new ChildJXT(null,child),self._extensions[name].parent=self}}return extend(self,data),opts.init&&opts.init.apply(self,[data]),self}return Stanza.prototype._name=opts.name,Stanza.prototype._eventname=opts.eventName,Stanza.prototype._NS=opts.namespace,Stanza.prototype._EL=opts.element||opts.name,Stanza.prototype._PREFIXES=opts.prefixes||{},Stanza.prototype._TAGS=opts.tags||[],Stanza.prototype.toString=function(){return this.xml.toString()},Stanza.prototype.toJSON=function(){var prop,result={};for(prop in this._extensions)this._extensions[prop].toJSON&&"_"!==prop[0]&&(result[prop]=this._extensions[prop].toJSON());for(prop in this){var allowedName=!EXCLUDE[prop]&&"_"!==prop[0],isExtensionName=JXT.getExtensions(this._EL,this._NS)[prop];if(allowedName&&!isExtensionName){var val=this[prop];if("function"==typeof val)continue;var type=Object.prototype.toString.call(val);if(type.indexOf("Object")>=0)Object.keys(val).length>0&&(result[prop]=val);else if(type.indexOf("Array")>=0){if(val.length>0){for(var vals=[],len=val.length,n=0;len>n;n++){var nval=val[n];"undefined"!=typeof nval&&vals.push(void 0!==nval.toJSON?nval.toJSON():nval)}result[prop]=vals}}else void 0!==val&&val!==!1&&""!==val&&(result[prop]=val)}}return result},Stanza}},{"./helpers":118,"lodash.assign":121}],120:[function(require,module,exports){(function(Buffer){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),find=helpers.find,createElement=helpers.createElement,field=exports.field=function(getter,setter){return function(){var args=Array.prototype.slice.call(arguments);return{get:function(){return getter.apply(null,[this.xml].concat(args))},set:function(value){setter.apply(null,[this.xml].concat(args).concat([value]))}}}};exports.boolAttribute=field(helpers.getBoolAttribute,helpers.setBoolAttribute),exports.subAttribute=field(helpers.getSubAttribute,helpers.setSubAttribute),exports.boolSubAttribute=field(helpers.getSubBoolAttribute,helpers.setSubBoolAttribute),exports.text=field(helpers.getText,helpers.setText),exports.textSub=exports.subText=field(helpers.getSubText,helpers.setSubText),exports.multiTextSub=exports.multiSubText=field(helpers.getMultiSubText,helpers.setMultiSubText),exports.multiSubAttribute=field(helpers.getMultiSubAttribute,helpers.setMultiSubAttribute),exports.langTextSub=exports.subLangText=field(helpers.getSubLangText,helpers.setSubLangText),exports.boolSub=field(helpers.getBoolSub,helpers.setBoolSub),exports.langAttribute=field(function(xml){return xml.getAttributeNS(helpers.XML_NS,"lang")||""},function(xml,value){xml.setAttributeNS(helpers.XML_NS,"lang",value)}),exports.b64Text=field(function(xml){return xml.textContent&&"="!==xml.textContent?new Buffer(xml.textContent,"base64"):""},function(xml,value){if("string"==typeof value){var b64=new Buffer(value).toString("base64");xml.textContent=b64||"="}else xml.textContent=""}),exports.dateAttribute=function(attr,now){return{get:function(){var data=helpers.getAttribute(this.xml,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setAttribute(this.xml,attr,value))}}},exports.dateSub=function(NS,sub,now){return{get:function(){var data=helpers.getSubText(this.xml,NS,sub);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubText(this.xml,NS,sub,value))}}},exports.dateSubAttribute=function(NS,sub,attr,now){return{get:function(){var data=helpers.getSubAttribute(this.xml,NS,sub,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubAttribute(this.xml,NS,sub,attr,value))}}},exports.numberAttribute=function(attr,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getAttribute(this.xml,attr,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setAttribute(this.xml,attr,value.toString())}}},exports.numberSub=function(NS,sub,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getSubText(this.xml,NS,sub,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setSubText(this.xml,NS,sub,value.toString())}}},exports.attribute=function(name,defaultVal){return{get:function(){return helpers.getAttribute(this.xml,name,defaultVal)},set:function(value){helpers.setAttribute(this.xml,name,value)}}},exports.attributeNS=function(NS,name,defaultVal){return{get:function(){return helpers.getAttributeNS(this.xml,NS,name,defaultVal)},set:function(value){helpers.setAttributeNS(this.xml,NS,name,value)}}},exports.extension=function(ChildJXT){return{get:function(){var self=this,name=ChildJXT.prototype._name;if(!this._extensions[name]){var existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],self):(this._extensions[name]=new ChildJXT({},null,self),this.xml.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){if(value){var child=this[ChildJXT.prototype._name];value===!0&&(value={}),extend(child,value)}}}},exports.multiExtension=function(ChildJXT){return{get:function(){for(var self=this,data=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL),results=[],i=0,len=data.length;len>i;i++)results.push(new ChildJXT({},data[i],self));return results},set:function(value){value=value||[];var i,len,self=this,existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);for(i=0,len=existing.length;len>i;i++)self.xml.removeChild(existing[i]);for(i=0,len=value.length;len>i;i++){var content=new ChildJXT(value[i],null,self);self.xml.appendChild(content.xml)}}}},exports.enumSub=function(NS,enumValues){return{get:function(){var self=this,result=[];return enumValues.forEach(function(enumVal){var exists=find(self.xml,NS,enumVal);exists.length&&result.push(exists[0].nodeName)}),result[0]||""},set:function(value){var self=this,alreadyExists=!1;if(enumValues.forEach(function(enumVal){var elements=find(self.xml,NS,enumVal);elements.length&&(enumVal===value?alreadyExists=!0:self.xml.removeChild(elements[0]))}),value&&!alreadyExists){var condition=createElement(NS,value);this.xml.appendChild(condition)}}}},exports.subExtension=function(name,NS,sub,ChildJXT){return{get:function(){if(!this._extensions[name]){var wrapper=find(this.xml,NS,sub);wrapper.length?wrapper=wrapper[0]:(wrapper=createElement(NS,sub,this._NS),this.xml.appendChild(wrapper));var existing=find(wrapper,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],{xml:wrapper}):(this._extensions[name]=new ChildJXT({},null,{xml:wrapper}),wrapper.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){var wrapper=find(this.xml,NS,sub);if(wrapper.length&&!value&&this.xml.removeChild(wrapper[0]),value){var child=this[name];value===!0&&(value={}),extend(child,value)}}}},exports.subMultiExtension=function(NS,sub,ChildJXT){return{get:function(){var self=this,results=[],existing=find(this.xml,NS,sub);if(!existing.length)return results;existing=existing[0];var data=find(existing,ChildJXT.prototype._NS,ChildJXT.prototype._EL);return data.forEach(function(xml){results.push(new ChildJXT({},xml,self))}),results},set:function(values){var self=this,existing=find(this.xml,NS,sub);existing.length&&self.xml.removeChild(existing[0]),values.length&&(existing=createElement(NS,sub,this._NS),values.forEach(function(value){var content=new ChildJXT(value,null,self);existing.appendChild(content.xml)}),self.xml.appendChild(existing))}}}}).call(this,require("buffer").Buffer)},{"./helpers":118,buffer:2,"lodash.assign":121}],121:[function(require,module){function assignWith(object,source,customizer){for(var index=-1,props=keys(source),length=props.length;++index<length;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(void 0!==value||key in object)||(object[key]=result)}return object}var baseAssign=require("lodash._baseassign"),createAssigner=require("lodash._createassigner"),keys=require("lodash.keys"),assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)});module.exports=assign},{"lodash._baseassign":122,"lodash._createassigner":124,"lodash.keys":128}],122:[function(require,module){function baseAssign(object,source){return null==source?object:baseCopy(source,keys(source),object)}var baseCopy=require("lodash._basecopy"),keys=require("lodash.keys");module.exports=baseAssign},{"lodash._basecopy":123,"lodash.keys":128}],123:[function(require,module){function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index];object[key]=source[key]}return object}module.exports=baseCopy},{}],124:[function(require,module){function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2?sources[length-2]:void 0,guard=length>2?sources[2]:void 0,thisArg=length>1?sources[length-1]:void 0;for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:void 0,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?void 0:customizer,length=1);++index<length;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}var bindCallback=require("lodash._bindcallback"),isIterateeCall=require("lodash._isiterateecall"),restParam=require("lodash.restparam");module.exports=createAssigner},{"lodash._bindcallback":125,"lodash._isiterateecall":126,"lodash.restparam":127}],125:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],126:[function(require,module){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object){var other=object[index];return value===value?value===other:other!==other}return!1}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var reIsUint=/^\d+$/,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isIterateeCall},{}],127:[function(require,module){function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(void 0===start?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);++index<length;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;++index<start;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}var FUNC_ERROR_TEXT="Expected a function",nativeMax=Math.max;module.exports=restParam},{}],128:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":129,"lodash.isarguments":130,"lodash.isarray":131}],129:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],130:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],131:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],132:[function(require,module){"use strict";function DOMElement(name,attrs){Element.call(this,name,attrs),this.nodeType=1,this.nodeName=this.localName}var util=require("util"),Element=require("./element").Element;util.inherits(DOMElement,Element),DOMElement.prototype._getElement=function(name,attrs){var element=new DOMElement(name,attrs);return element},Object.defineProperty(DOMElement.prototype,"localName",{get:function(){return this.getName()}}),Object.defineProperty(DOMElement.prototype,"namespaceURI",{get:function(){return this.getNS()}}),Object.defineProperty(DOMElement.prototype,"parentNode",{get:function(){return this.parent}}),Object.defineProperty(DOMElement.prototype,"childNodes",{get:function(){return this.children}}),Object.defineProperty(DOMElement.prototype,"textContent",{get:function(){return this.getText()},set:function(value){this.children.push(value)}}),DOMElement.prototype.getElementsByTagName=function(name){return this.getChildren(name)},DOMElement.prototype.getAttribute=function(name){return this.getAttr(name)},DOMElement.prototype.setAttribute=function(name,value){this.attr(name,value)},DOMElement.prototype.getAttributeNS=function(ns,name){return"http://www.w3.org/XML/1998/namespace"===ns?this.getAttr(["xml",name].join(":")):this.getAttr(name,ns)},DOMElement.prototype.setAttributeNS=function(ns,name,value){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),value)},DOMElement.prototype.removeAttribute=function(name){this.attr(name,null)},DOMElement.prototype.removeAttributeNS=function(ns,name){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),null)},DOMElement.prototype.appendChild=function(el){this.cnode(el)},DOMElement.prototype.removeChild=function(el){this.remove(el)},module.exports=DOMElement},{"./element":133,util:24}],133:[function(require,module,exports){"use strict";function Element(name,attrs){this.name=name,this.parent=null,this.children=[],this.setAttrs(attrs)}function escapeXml(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/"/g,"&apos;")}function escapeXmlText(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}Element.prototype.is=function(name,xmlns){return this.getName()===name&&(!xmlns||this.getNS()===xmlns)},Element.prototype.getName=function(){return this.name.indexOf(":")>=0?this.name.substr(this.name.indexOf(":")+1):this.name},Element.prototype.getNS=function(){if(this.name.indexOf(":")>=0){var prefix=this.name.substr(0,this.name.indexOf(":"));return this.findNS(prefix)}return this.findNS()},Element.prototype.findNS=function(prefix){if(prefix){var attr="xmlns:"+prefix;if(this.attrs[attr])return this.attrs[attr];if(this.parent)return this.parent.findNS(prefix)}else{if(this.attrs.xmlns)return this.attrs.xmlns;if(this.parent)return this.parent.findNS()}},Element.prototype.getXmlns=function(){var namespaces={};this.parent&&(namespaces=this.parent.getXmlns());for(var attr in this.attrs){var m=attr.match("xmlns:?(.*)");this.attrs.hasOwnProperty(attr)&&m&&(namespaces[this.attrs[attr]]=m[1])}return namespaces},Element.prototype.setAttrs=function(attrs){this.attrs={},"string"==typeof attrs?this.attrs.xmlns=attrs:attrs&&Object.keys(attrs).forEach(function(key){this.attrs[key]=attrs[key]},this)},Element.prototype.getAttr=function(name,xmlns){if(!xmlns)return this.attrs[name];var namespaces=this.getXmlns();return namespaces[xmlns]?this.attrs[[namespaces[xmlns],name].join(":")]:null},Element.prototype.getChild=function(name,xmlns){return this.getChildren(name,xmlns)[0]},Element.prototype.getChildren=function(name,xmlns){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.getName||child.getName()!==name||xmlns&&child.getNS()!==xmlns||result.push(child)}return result},Element.prototype.getChildByAttr=function(attr,val,xmlns,recursive){return this.getChildrenByAttr(attr,val,xmlns,recursive)[0]},Element.prototype.getChildrenByAttr=function(attr,val,xmlns,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.attrs||child.attrs[attr]!==val||xmlns&&child.getNS()!==xmlns||result.push(child),recursive&&child.getChildrenByAttr&&result.push(child.getChildrenByAttr(attr,val,xmlns,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getChildrenByFilter=function(filter,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];filter(child)&&result.push(child),recursive&&child.getChildrenByFilter&&result.push(child.getChildrenByFilter(filter,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getText=function(){for(var text="",i=0;i<this.children.length;i++){var child=this.children[i];("string"==typeof child||"number"==typeof child)&&(text+=child)}return text},Element.prototype.getChildText=function(name,xmlns){var child=this.getChild(name,xmlns);return child?child.getText():null},Element.prototype.getChildElements=function(){return this.getChildrenByFilter(function(child){return child instanceof Element})},Element.prototype.root=function(){return this.parent?this.parent.root():this},Element.prototype.tree=Element.prototype.root,Element.prototype.up=function(){return this.parent?this.parent:this},Element.prototype._getElement=function(name,attrs){var element=new Element(name,attrs);return element},Element.prototype.c=function(name,attrs){return this.cnode(this._getElement(name,attrs))},Element.prototype.cnode=function(child){return this.children.push(child),"object"==typeof child&&(child.parent=this),child},Element.prototype.t=function(text){return this.children.push(text),this},Element.prototype.remove=function(el,xmlns){var filter;return filter="string"==typeof el?function(child){return!(child.is&&child.is(el,xmlns))}:function(child){return child!==el},this.children=this.children.filter(filter),this},Element.prototype.clone=function(){for(var clone=this._getElement(this.name,this.attrs),i=0;i<this.children.length;i++){var child=this.children[i];clone.cnode(child.clone?child.clone():child)}return clone},Element.prototype.text=function(val){return val&&1===this.children.length?(this.children[0]=val,this):this.getText()},Element.prototype.attr=function(attr,val){return"undefined"!=typeof val||null===val?(this.attrs||(this.attrs={}),this.attrs[attr]=val,this):this.attrs[attr]},Element.prototype.toString=function(){var s="";return this.write(function(c){s+=c}),s},Element.prototype.toJSON=function(){return{name:this.name,attrs:this.attrs,children:this.children.map(function(child){return child&&child.toJSON?child.toJSON():child})}},Element.prototype._addChildren=function(writer){writer(">");for(var i=0;i<this.children.length;i++){var child=this.children[i];(child||0===child)&&(child.write?child.write(writer):"string"==typeof child?writer(escapeXmlText(child)):child.toString&&writer(escapeXmlText(child.toString(10))))}writer("</"),writer(this.name),writer(">")},Element.prototype.write=function(writer){writer("<"),writer(this.name);for(var k in this.attrs){var v=this.attrs[k];(v||""===v||0===v)&&(writer(" "),writer(k),writer('="'),"string"!=typeof v&&(v=v.toString(10)),writer(escapeXml(v)),writer('"'))}0===this.children.length?writer("/>"):this._addChildren(writer)},exports.Element=Element,exports.escapeXml=escapeXml},{}],134:[function(require,module){"use strict";var parse=require("./parse");parse.availableSaxParsers.push(parse.bestSaxParser=require("./sax/sax_ltx")),module.exports=require("./index")},{"./index":135,"./parse":136,"./sax/sax_ltx":137}],135:[function(require,module,exports){"use strict";var parse=require("./parse");exports.Element=require("./dom-element"),exports.escapeXml=require("./element").escapeXml,exports.parse=parse.parse,exports.Parser=parse.Parser,exports.availableSaxParsers=parse.availableSaxParsers,exports.bestSaxParser=parse.bestSaxParser},{"./dom-element":132,"./element":133,"./parse":136}],136:[function(require,module,exports){"use strict";var events=require("events"),util=require("util"),DOMElement=require("./dom-element");exports.availableSaxParsers=[],exports.bestSaxParser=null;var saxParsers=["./sax/sax_expat.js","./sax/sax_ltx.js","./sax/sax_saxjs.js"];saxParsers.forEach(function(modName){var mod;try{mod=require(modName)}catch(e){}mod&&(exports.availableSaxParsers.push(mod),exports.bestSaxParser||(exports.bestSaxParser=mod))}),exports.Parser=function(saxParser){events.EventEmitter.call(this);var self=this,ParserMod=saxParser||exports.bestSaxParser;if(!ParserMod)throw new Error("No SAX parser available");this.parser=new ParserMod;var el;this.parser.addListener("startElement",function(name,attrs){var child=new DOMElement(name,attrs);el=el?el.cnode(child):child}),this.parser.addListener("endElement",function(name){el&&name===el.name&&(el.parent?el=el.parent:self.tree||(self.tree=el,el=void 0))}),this.parser.addListener("text",function(str){el&&el.t(str)}),this.parser.addListener("error",function(e){self.error=e,self.emit("error",e)})},util.inherits(exports.Parser,events.EventEmitter),exports.Parser.prototype.write=function(data){this.parser.write(data)},exports.Parser.prototype.end=function(data){this.parser.end(data),this.error||(this.tree?this.emit("tree",this.tree):this.emit("error",new Error("Incomplete document")))},exports.parse=function(data,saxParser){var p=new exports.Parser(saxParser),result=null,error=null;if(p.on("tree",function(tree){result=tree}),p.on("error",function(e){error=e}),p.write(data),p.end(),error)throw error;return result}},{"./dom-element":132,events:6,util:24}],137:[function(require,module){"use strict";function unescapeXml(s){return s.replace(/\&(amp|#38);/g,"&").replace(/\&(lt|#60);/g,"<").replace(/\&(gt|#62);/g,">").replace(/\&(quot|#34);/g,'"').replace(/\&(apos|#39);/g,"'").replace(/\&(nbsp|#160);/g,"\n")}var util=require("util"),events=require("events"),STATE_TEXT=0,STATE_IGNORE_TAG=1,STATE_TAG_NAME=2,STATE_TAG=3,STATE_ATTR_NAME=4,STATE_ATTR_EQ=5,STATE_ATTR_QUOT=6,STATE_ATTR_VALUE=7,SaxLtx=module.exports=function(){events.EventEmitter.call(this);var remainder,tagName,attrs,endTag,selfClosing,attrQuote,attrName,state=STATE_TEXT,recordStart=0;this._handleTagOpening=function(endTag,tagName,attrs){endTag?this.emit("endElement",tagName):(this.emit("startElement",tagName,attrs),selfClosing&&this.emit("endElement",tagName))},this.write=function(data){function endRecording(){if("number"==typeof recordStart){var recorded=data.slice(recordStart,pos);return recordStart=void 0,recorded}}"string"!=typeof data&&(data=data.toString());var pos=0;for(remainder&&(data=remainder+data,pos+=remainder.length,remainder=null);pos<data.length;pos++){var c=data.charCodeAt(pos);switch(state){case STATE_TEXT:if(60===c){var text=endRecording();text&&this.emit("text",unescapeXml(text)),state=STATE_TAG_NAME,recordStart=pos+1,attrs={}}break;case STATE_TAG_NAME:47===c&&recordStart===pos?(recordStart=pos+1,endTag=!0):33===c||63===c?(recordStart=void 0,state=STATE_IGNORE_TAG):(32>=c||47===c||62===c)&&(tagName=endRecording(),pos--,state=STATE_TAG);break;case STATE_IGNORE_TAG:62===c&&(state=STATE_TEXT);break;case STATE_TAG:62===c?(this._handleTagOpening(endTag,tagName,attrs),tagName=void 0,attrs=void 0,endTag=void 0,selfClosing=void 0,state=STATE_TEXT,recordStart=pos+1):47===c?selfClosing=!0:c>32&&(recordStart=pos,state=STATE_ATTR_NAME);break;case STATE_ATTR_NAME:(32>=c||61===c)&&(attrName=endRecording(),pos--,state=STATE_ATTR_EQ);break;case STATE_ATTR_EQ:61===c&&(state=STATE_ATTR_QUOT);break;case STATE_ATTR_QUOT:(34===c||39===c)&&(attrQuote=c,state=STATE_ATTR_VALUE,recordStart=pos+1);break;case STATE_ATTR_VALUE:if(c===attrQuote){var value=unescapeXml(endRecording());attrs[attrName]=value,attrName=void 0,state=STATE_TAG}}}"number"==typeof recordStart&&recordStart<=data.length&&(remainder=data.slice(recordStart),recordStart=0)}};util.inherits(SaxLtx,events.EventEmitter),SaxLtx.prototype.end=function(data){data&&this.write(data),this.write=function(){}}},{events:6,util:24}],138:[function(require,module,exports){arguments[4][113][0].apply(exports,arguments)},{dup:113}],139:[function(require,module,exports){arguments[4][114][0].apply(exports,arguments)},{"./rng":138,dup:114}],140:[function(require,module){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"!=typeof module||"function"==typeof require&&"function"==typeof define||console.log.apply(console,arguments)}};if("undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia&&window.mozRTCPeerConnection){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10),webrtcMinimumVersion=31,window.RTCPeerConnection=function(pcConfig,pcConstraints){if(38>webrtcDetectedVersion&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate,getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if((void 0!==r.min||void 0!==r.max||void 0!==r.exact)&&require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};oc[key]="number"==typeof r.ideal?{min:r.ideal,max:r.ideal}:r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return 38>webrtcDetectedVersion&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},41>webrtcDetectedVersion){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices()["catch"](function(e){if("NotFoundError"===e.name)return[];throw e})}}Object.defineProperty(HTMLVideoElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(stream){this.mozSrcObject=stream}}),attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}}else if(navigator.webkitGetUserMedia){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&null===selector?origGetStats.apply(self,[function(response){resolve.apply(null,[fixChromeStats(response)])},reject]):origGetStats.apply(self,[resolve,reject])})},pc},["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);
-var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),Object.defineProperty(HTMLVideoElement.prototype,"srcObject",{get:function(){return this._srcObject},set:function(stream){this._srcObject=stream,this.src=URL.createObjectURL(stream)}}),attachMediaStream=function(element,stream){webrtcDetectedVersion>=43?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){webrtcDetectedVersion>=43?to.srcObject=from.srcObject:to.src=from.src}}else navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)?(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)[2],10),webrtcMinimumVersion=12,getUserMedia=navigator.getUserMedia,attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}):webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";var webrtcTesting={};if(Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}}),"undefined"!=typeof module){var RTCPeerConnection;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection),module.exports={RTCPeerConnection:RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}})},{}],141:[function(require,module){"use strict";var NS="urn:xmpp:jingle:transports:ice-udp:1";module.exports=function(stanza){var types=stanza.utils,ICE=stanza.define({name:"_iceUdp",namespace:NS,element:"transport",tags:["jingle-transport"],fields:{transType:{value:"iceUdp"},pwd:types.attribute("pwd"),ufrag:types.attribute("ufrag")}}),RemoteCandidate=stanza.define({name:"remoteCandidate",namespace:NS,element:"remote-candidate",fields:{component:types.attribute("component"),ip:types.attribute("ip"),port:types.attribute("port")}}),Candidate=stanza.define({name:"_iceUdpCandidate",namespace:NS,element:"candidate",fields:{component:types.attribute("component"),foundation:types.attribute("foundation"),generation:types.attribute("generation"),id:types.attribute("id"),ip:types.attribute("ip"),network:types.attribute("network"),port:types.attribute("port"),priority:types.attribute("priority"),protocol:types.attribute("protocol"),relAddr:types.attribute("rel-addr"),relPort:types.attribute("rel-port"),tcpType:types.attribute("tcptype"),type:types.attribute("type")}}),Fingerprint=stanza.define({name:"_iceFingerprint",namespace:"urn:xmpp:jingle:apps:dtls:0",element:"fingerprint",fields:{hash:types.attribute("hash"),setup:types.attribute("setup"),value:types.text(),required:types.boolAttribute("required")}}),SctpMap=stanza.define({name:"_sctpMap",namespace:"urn:xmpp:jingle:transports:dtls-sctp:1",element:"sctpmap",fields:{number:types.attribute("number"),protocol:types.attribute("protocol"),streams:types.attribute("streams")}});stanza.extend(ICE,Candidate,"candidates"),stanza.extend(ICE,RemoteCandidate),stanza.extend(ICE,Fingerprint,"fingerprints"),stanza.extend(ICE,SctpMap,"sctp"),stanza.withDefinition("content","urn:xmpp:jingle:1",function(Content){stanza.extend(Content,ICE)})}},{}],142:[function(require,module){"use strict";module.exports=function(stanza){var types=stanza.utils,Iq=stanza.define({name:"iq",namespace:"jabber:client",element:"iq",topLevel:!0,fields:{lang:types.langAttribute(),id:types.attribute("id"),to:types.attribute("to"),from:types.attribute("from"),type:types.attribute("type")}}),toJSON=Iq.prototype.toJSON;Iq.prototype.toJSON=function(){var result=toJSON.call(this);return result.resultReply=this.resultReply,result.errorReply=this.errorReply,result},Iq.prototype.resultReply=function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="result",new Iq(data)},Iq.prototype.errorReply=function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="error",new Iq(data)}}},{}],143:[function(require,module){"use strict";var NS="urn:xmpp:jingle:1",REASONS=["alternative-session","busy","cancel","connectivity-error","decline","expired","failed-application","failed-transport","general-error","gone","incompatible-parameters","media-error","security-error","success","timeout","unsupported-applications","unsupported-transports"];module.exports=function(stanza){var types=stanza.utils,Jingle=stanza.define({name:"jingle",namespace:NS,element:"jingle",fields:{action:types.attribute("action"),initiator:types.attribute("initiator"),responder:types.attribute("responder"),sid:types.attribute("sid")}}),Content=stanza.define({name:"_jingleContent",namespace:NS,element:"content",fields:{creator:types.attribute("creator"),disposition:types.attribute("disposition","session"),name:types.attribute("name"),senders:types.attribute("senders","both"),description:{get:function(){for(var opts=stanza.tagged("jingle-description").map(function(Description){return Description.prototype._name}),i=0,len=opts.length;len>i;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.descType;this[ext]=value}},transport:{get:function(){for(var opts=stanza.tagged("jingle-transport").map(function(Transport){return Transport.prototype._name}),i=0,len=opts.length;len>i;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.transType;this[ext]=value}}}}),Reason=stanza.define({name:"reason",namespace:NS,element:"reason",fields:{condition:types.enumSub(NS,REASONS),alternativeSession:{get:function(){return types.getSubText(this.xml,NS,"alternative-session")},set:function(value){this.condition="alternative-session",types.setSubText(this.xml,NS,"alternative-session",value)}},text:types.textSub(NS,"text")}});stanza.extend(Jingle,Content,"contents"),stanza.extend(Jingle,Reason)}},{}],144:[function(require,module){"use strict";var NS="urn:xmpp:jingle:apps:rtp:1",FBNS="urn:xmpp:jingle:apps:rtp:rtcp-fb:0",HDRNS="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",INFONS="urn:xmpp:jingle:apps:rtp:info:1",SSMANS="urn:xmpp:jingle:apps:rtp:ssma:0",GROUPNS="urn:xmpp:jingle:apps:grouping:0";module.exports=function(stanza){var types=stanza.utils,Feedback={get:function(){var existing=types.find(this.xml,FBNS,"rtcp-fb"),result=[];return existing.forEach(function(xml){result.push({type:types.getAttribute(xml,"type"),subtype:types.getAttribute(xml,"subtype")})}),existing=types.find(this.xml,FBNS,"rtcp-fb-trr-int"),existing.forEach(function(xml){result.push({type:types.getAttribute(xml,"type"),value:types.getAttribute(xml,"value")})}),result},set:function(values){var self=this,existing=types.find(this.xml,FBNS,"rtcp-fb");existing.forEach(function(item){self.xml.removeChild(item)}),existing=types.find(this.xml,FBNS,"rtcp-fb-trr-int"),existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var fb;"trr-int"===value.type?(fb=types.createElement(FBNS,"rtcp-fb-trr-int",NS),types.setAttribute(fb,"type",value.type),types.setAttribute(fb,"value",value.value)):(fb=types.createElement(FBNS,"rtcp-fb",NS),types.setAttribute(fb,"type",value.type),types.setAttribute(fb,"subtype",value.subtype)),self.xml.appendChild(fb)})}},Bandwidth=stanza.define({name:"bandwidth",namespace:NS,element:"bandwidth",fields:{type:types.attribute("type"),bandwidth:types.text()}}),RTP=stanza.define({name:"_rtp",namespace:NS,element:"description",tags:["jingle-description"],fields:{descType:{value:"rtp"},media:types.attribute("media"),ssrc:types.attribute("ssrc"),mux:types.boolSub(NS,"rtcp-mux"),encryption:{get:function(){var enc=types.find(this.xml,NS,"encryption");if(!enc.length)return[];enc=enc[0];var self=this,data=types.find(enc,NS,"crypto"),results=[];return data.forEach(function(xml){results.push(new Crypto({},xml,self).toJSON())}),results},set:function(values){var enc=types.find(this.xml,NS,"encryption");if(enc.length&&this.xml.removeChild(enc),values.length){types.setBoolSubAttribute(this.xml,NS,"encryption","required",!0),enc=types.find(this.xml,NS,"encryption")[0];var self=this;values.forEach(function(value){var content=new Crypto(value,null,self);enc.appendChild(content.xml)})}}},feedback:Feedback,headerExtensions:{get:function(){var existing=types.find(this.xml,HDRNS,"rtp-hdrext"),result=[];return existing.forEach(function(xml){result.push({id:types.getAttribute(xml,"id"),uri:types.getAttribute(xml,"uri"),senders:types.getAttribute(xml,"senders")})}),result},set:function(values){var self=this,existing=types.find(this.xml,HDRNS,"rtp-hdrext");existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var hdr=types.createElement(HDRNS,"rtp-hdrext",NS);types.setAttribute(hdr,"id",value.id),types.setAttribute(hdr,"uri",value.uri),types.setAttribute(hdr,"senders",value.senders),self.xml.appendChild(hdr)})}}}}),PayloadType=stanza.define({name:"_payloadType",namespace:NS,element:"payload-type",fields:{channels:types.attribute("channels"),clockrate:types.attribute("clockrate"),id:types.attribute("id"),maxptime:types.attribute("maxptime"),name:types.attribute("name"),ptime:types.attribute("ptime"),feedback:Feedback,parameters:{get:function(){var result=[],params=types.find(this.xml,NS,"parameter");return params.forEach(function(param){result.push({key:types.getAttribute(param,"name"),value:types.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=types.createElement(NS,"parameter");types.setAttribute(param,"name",value.key),types.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Crypto=stanza.define({name:"crypto",namespace:NS,element:"crypto",fields:{cipherSuite:types.attribute("crypto-suite"),keyParams:types.attribute("key-params"),sessionParams:types.attribute("session-params"),tag:types.attribute("tag")}}),ContentGroup=stanza.define({name:"_group",namespace:GROUPNS,element:"group",fields:{semantics:types.attribute("semantics"),contents:types.multiSubAttribute(GROUPNS,"content","name")}}),SourceGroup=stanza.define({name:"_sourceGroup",namespace:SSMANS,element:"ssrc-group",fields:{semantics:types.attribute("semantics"),sources:types.multiSubAttribute(SSMANS,"source","ssrc")}}),Source=stanza.define({name:"_source",namespace:SSMANS,element:"source",fields:{ssrc:types.attribute("ssrc"),parameters:{get:function(){var result=[],params=types.find(this.xml,SSMANS,"parameter");return params.forEach(function(param){result.push({key:types.getAttribute(param,"name"),value:types.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=types.createElement(SSMANS,"parameter");types.setAttribute(param,"name",value.key),types.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Mute=stanza.define({name:"mute",namespace:INFONS,element:"mute",fields:{creator:types.attribute("creator"),name:types.attribute("name")}}),Unmute=stanza.define({name:"unmute",namespace:INFONS,element:"unmute",fields:{creator:types.attribute("creator"),name:types.attribute("name")}});stanza.extend(RTP,Bandwidth),stanza.extend(RTP,PayloadType,"payloads"),stanza.extend(RTP,Source,"sources"),stanza.extend(RTP,SourceGroup,"sourceGroups"),stanza.withDefinition("content","urn:xmpp:jingle:1",function(Content){stanza.extend(Content,RTP)}),stanza.withDefinition("jingle","urn:xmpp:jingle:1",function(Jingle){stanza.extend(Jingle,Mute),stanza.extend(Jingle,Unmute),stanza.extend(Jingle,ContentGroup,"groups"),stanza.add(Jingle,"ringing",types.boolSub(INFONS,"ringing")),stanza.add(Jingle,"hold",types.boolSub(INFONS,"hold")),stanza.add(Jingle,"active",types.boolSub(INFONS,"active"))})}},{}],145:[function(require){"use strict";var JSM=require("jingle"),RTC=require("webrtc-adapter-test"),jxt=require("jxt").createRegistry();jxt.use(require("./stanza/iq.js")),jxt.use(require("./stanza/jingle.js")),jxt.use(require("./stanza/rtp.js")),jxt.use(require("./stanza/iceUdp.js"));var IqStanza=jxt.getDefinition("iq","jabber:client"),JingleStanza=jxt.getDefinition("jingle","urn:xmpp:jingle:1");jxt.extend(IqStanza,JingleStanza),function($){Strophe.addConnectionPlugin("jingle",{connection:null,peer_constraints:{},AUTOACCEPT:!1,localStream:null,manager:null,RTC:null,init:function(conn){var self=this;self.RTC=RTC,self.connection=conn,RTC.webrtcDetectedVersion<33&&"firefox"===RTC.webrtcDetectedBrowser||"chrome"===RTC.webrtcDetectedBrowser?(self.peer_constraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mandatory.MozDontOfferDataChannel=!0)):(self.peer_constraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mozDontOfferDataChannel=!0)),self.manager=new JSM({peerConnectionConstraints:self.peer_constraints,jid:self.connection.jid,selfID:self.connection.jid});var events={incoming:"callincoming.jingle",terminated:"callterminated.jingle",peerStreamAdded:"remotestreamadded.jingle",peerStreamRemoved:"remotestreamremoved.jingle",ringing:"ringing.jingle","log:error":"error.jingle"};if($.each(events,function(key,val){self.manager.on(key,function(){$(document).trigger(val,arguments)})}),self.manager.on("incoming",function(session){session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])})}),this.connection.disco){var i;for(i=0;i<self.manager.capabilities.length;i++)self.connection.disco.addFeature(self.manager.capabilities[i])}this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null),this.manager.on("send",function(data){var iq=new IqStanza(data);self.connection.send($.parseXML(iq.toString()).getElementsByTagName("iq")[0])})},onJingle:function(iq){var req=jxt.parse(iq.outerHTML);return this.manager.process(req),!0},initiate:function(peerjid,stream){var session=this.manager.createMediaSession(peerjid);return session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])}),stream&&(this.localStream=stream),this.localStream?(session.addStream(this.localStream),session.start(),session):void console.error("No local stream defined")},terminate:function(jid,reason,silent){"undefined"==typeof jid||null===jid?this.manager.endAllSessions(reason,silent):this.manager.endPeerSessions(jid,reason,silent)},terminateByJid:function(jid){this.manager.endPeerSessions(jid)},addICEServer:function(server){this.manager.addICEServer(server)},setICEServers:function(servers){this.manager.iceServers=servers},setPeerConstraints:function(constraints){this.manager.config.peerConnectionConstraints=constraints}})}(jQuery)},{"./stanza/iceUdp.js":141,"./stanza/iq.js":142,"./stanza/jingle.js":143,"./stanza/rtp.js":144,jingle:25,jxt:117,"webrtc-adapter-test":140}]},{},[145]),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;8>i;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;numberOfBytes>i;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){if("function"==typeof define&&define.amd)define(factory.bind(root,root.crypto||root.msCrypto));else if("undefined"!=typeof module&&module.exports)module.exports=factory(require("crypto"));else try{root.BigInt=factory(root.crypto||root.msCrypto)}catch(e){console.warn(e.message)}}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;n>i;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];n>i;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;p>i;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;s-1>=j&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;a>i;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=ky>kx+shift?kx+shift:ky;for(i=ky-1-shift;kx>i&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;ky>i;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(q[i-ky]=r[i]==y[ky-1]?mask:Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(-1==base){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),1>d)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;k>i&&(d=digitsStr.indexOf(s.substring(i,i+1),0),36>=base&&d>=36&&(d-=26),!(d>=base||0>d));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;kk>i;i++)y[i]=x[i];for(;k>i;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),-1==base){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;k>i;i++)if(c+=x[i],b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;k>i;i++)c+=x[i]*n,b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;kx>i;i++){for(c=s0[2*i]+x[i]*x[i],s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;kx>j;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);
-for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,0>k1)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;kn>i;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;ky-4>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ky>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn-4>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ks>j;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;b>i;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\x00"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);b>i;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};256>i;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],this.sigBytes=sigBytes!=undefined?sigBytes:4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;thatSigBytes>i;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;thatSigBytes>i;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;nBytes>i;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;hexStrLength>i;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;latin1StrLength>i;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;nWordsReady>offset;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});return C}(Math);return function(){{var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;sigBytes>i;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;4>j&&sigBytes>i+.75*j;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);-1!=paddingIndex&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;base64StrLength>i;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;blockSize>i;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;nPaddingBytes>i;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;256>i;i++)d[i]=128>i?i<<1:i<<1^283;for(var x=0,xi=0,i=0;256>i;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRows>ksRow;ksRow++)if(keySize>ksRow)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;ksRows>invKsRow;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;nRounds>round;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;80>i;i++){if(16>i)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;sqrtN>=factor;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;64>nPrime;)isPrime(n)&&(8>nPrime&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;64>i;i++){if(16>i)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){{var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;hasherBlockSize>i;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;blockSize>i;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
+!function(){function only_once(fn){var called=!1;return function(){if(called)throw new Error("Callback was already called.");called=!0,fn.apply(root,arguments)}}var root,previous_async,async={};root=this,null!=root&&(previous_async=root.async),async.noConflict=function(){return root.async=previous_async,async};var _toString=Object.prototype.toString,_isArray=Array.isArray||function(obj){return"[object Array]"===_toString.call(obj)},_each=function(arr,iterator){for(var i=0;i<arr.length;i+=1)iterator(arr[i],i,arr)},_map=function(arr,iterator){if(arr.map)return arr.map(iterator);var results=[];return _each(arr,function(x,i,a){results.push(iterator(x,i,a))}),results},_reduce=function(arr,iterator,memo){return arr.reduce?arr.reduce(iterator,memo):(_each(arr,function(x,i,a){memo=iterator(memo,x,i,a)}),memo)},_keys=function(obj){if(Object.keys)return Object.keys(obj);var keys=[];for(var k in obj)obj.hasOwnProperty(k)&&keys.push(k);return keys};"undefined"!=typeof process&&process.nextTick?(async.nextTick=process.nextTick,"undefined"!=typeof setImmediate?async.setImmediate=function(fn){setImmediate(fn)}:async.setImmediate=async.nextTick):"function"==typeof setImmediate?(async.nextTick=function(fn){setImmediate(fn)},async.setImmediate=async.nextTick):(async.nextTick=function(fn){setTimeout(fn,0)},async.setImmediate=async.nextTick),async.each=function(arr,iterator,callback){function done(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length&&callback())}if(callback=callback||function(){},!arr.length)return callback();var completed=0;_each(arr,function(x){iterator(x,only_once(done))})},async.forEach=async.each,async.eachSeries=function(arr,iterator,callback){if(callback=callback||function(){},!arr.length)return callback();var completed=0,iterate=function(){iterator(arr[completed],function(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length?callback():iterate())})};iterate()},async.forEachSeries=async.eachSeries,async.eachLimit=function(arr,limit,iterator,callback){var fn=_eachLimit(limit);fn.apply(null,[arr,iterator,callback])},async.forEachLimit=async.eachLimit;var _eachLimit=function(limit){return function(arr,iterator,callback){if(callback=callback||function(){},!arr.length||0>=limit)return callback();var completed=0,started=0,running=0;!function replenish(){if(completed>=arr.length)return callback();for(;limit>running&&started<arr.length;)started+=1,running+=1,iterator(arr[started-1],function(err){err?(callback(err),callback=function(){}):(completed+=1,running-=1,completed>=arr.length?callback():replenish())})}()}},doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.each].concat(args))}},doParallelLimit=function(limit,fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[_eachLimit(limit)].concat(args))}},doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.eachSeries].concat(args))}},_asyncMap=function(eachfn,arr,iterator,callback){if(arr=_map(arr,function(x,i){return{index:i,value:x}}),callback){var results=[];eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v,callback(err)})},function(err){callback(err,results)})}else eachfn(arr,function(x,callback){iterator(x.value,function(err){callback(err)})})};async.map=doParallel(_asyncMap),async.mapSeries=doSeries(_asyncMap),async.mapLimit=function(arr,limit,iterator,callback){return _mapLimit(limit)(arr,iterator,callback)};var _mapLimit=function(limit){return doParallelLimit(limit,_asyncMap)};async.reduce=function(arr,memo,iterator,callback){async.eachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v,callback(err)})},function(err){callback(err,memo)})},async.inject=async.reduce,async.foldl=async.reduce,async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)},async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v&&results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter),async.filterSeries=doSeries(_filter),async.select=async.filter,async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v||results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject),async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){result?(main_callback(x),main_callback=function(){}):callback()})},function(err){main_callback()})};async.detect=doParallel(_detect),async.detectSeries=doSeries(_detect),async.some=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v&&(main_callback(!0),main_callback=function(){}),callback()})},function(err){main_callback(!1)})},async.any=async.some,async.every=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v||(main_callback(!1),main_callback=function(){}),callback()})},function(err){main_callback(!0)})},async.all=async.every,async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){err?callback(err):callback(null,{value:x,criteria:criteria})})},function(err,results){if(err)return callback(err);var fn=function(left,right){var a=left.criteria,b=right.criteria;return b>a?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))})},async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks),remainingTasks=keys.length;if(!remainingTasks)return callback();var results={},listeners=[],addListener=function(fn){listeners.unshift(fn)},removeListener=function(fn){for(var i=0;i<listeners.length;i+=1)if(listeners[i]===fn)return void listeners.splice(i,1)},taskComplete=function(){remainingTasks--,_each(listeners.slice(0),function(fn){fn()})};addListener(function(){if(!remainingTasks){var theCallback=callback;callback=function(){},theCallback(null,results)}}),_each(keys,function(k){var task=_isArray(tasks[k])?tasks[k]:[tasks[k]],taskCallback=function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1&&(args=args[0]),err){var safeResults={};_each(_keys(results),function(rkey){safeResults[rkey]=results[rkey]}),safeResults[k]=args,callback(err,safeResults),callback=function(){}}else results[k]=args,async.setImmediate(taskComplete)},requires=task.slice(0,Math.abs(task.length-1))||[],ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},!0)&&!results.hasOwnProperty(k)};if(ready())task[task.length-1](taskCallback,results);else{var listener=function(){ready()&&(removeListener(listener),task[task.length-1](taskCallback,results))};addListener(listener)}})},async.retry=function(times,task,callback){var DEFAULT_TIMES=5,attempts=[];"function"==typeof times&&(callback=task,task=times,times=DEFAULT_TIMES),times=parseInt(times,10)||DEFAULT_TIMES;var wrappedTask=function(wrappedCallback,wrappedResults){for(var retryAttempt=function(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}};times;)attempts.push(retryAttempt(task,!(times-=1)));async.series(attempts,function(done,data){data=data[data.length-1],(wrappedCallback||callback)(data.err,data.result)})};return callback?wrappedTask():wrappedTask},async.waterfall=function(tasks,callback){if(callback=callback||function(){},!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length)return callback();var wrapIterator=function(iterator){return function(err){if(err)callback.apply(null,arguments),callback=function(){};else{var args=Array.prototype.slice.call(arguments,1),next=iterator.next();next?args.push(wrapIterator(next)):args.push(callback),async.setImmediate(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};var _parallel=function(eachfn,tasks,callback){if(callback=callback||function(){},_isArray(tasks))eachfn.map(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};eachfn.each(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}};async.parallel=function(tasks,callback){_parallel({map:async.map,each:async.each},tasks,callback)},async.parallelLimit=function(tasks,limit,callback){_parallel({map:_mapLimit(limit),each:_eachLimit(limit)},tasks,callback)},async.series=function(tasks,callback){if(callback=callback||function(){},_isArray(tasks))async.mapSeries(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};async.eachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}},async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){return tasks.length&&tasks[index].apply(null,arguments),fn.next()};return fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null},fn};return makeCallback(0)},async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]),cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat),async.concatSeries=doSeries(_concat),async.whilst=function(test,iterator,callback){test()?iterator(function(err){return err?callback(err):void async.whilst(test,iterator,callback)}):callback()},async.doWhilst=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?async.doWhilst(iterator,test,callback):callback()})},async.until=function(test,iterator,callback){test()?callback():iterator(function(err){return err?callback(err):void async.until(test,iterator,callback)})},async.doUntil=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?callback():async.doUntil(iterator,test,callback)})},async.queue=function(worker,concurrency){function _insert(q,data,pos,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,callback:"function"==typeof callback?callback:null};pos?q.tasks.unshift(item):q.tasks.push(item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}void 0===concurrency&&(concurrency=1);var workers=0,q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,started:!1,paused:!1,push:function(data,callback){_insert(q,data,!1,callback)},kill:function(){q.drain=null,q.tasks=[]},unshift:function(data,callback){_insert(q,data,!0,callback)},process:function(){if(!q.paused&&workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();q.empty&&0===q.tasks.length&&q.empty(),workers+=1;var next=function(){workers-=1,task.callback&&task.callback.apply(task,arguments),q.drain&&q.tasks.length+workers===0&&q.drain(),q.process()},cb=only_once(next);worker(task.data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},idle:function(){return q.tasks.length+workers===0},pause:function(){q.paused!==!0&&(q.paused=!0)},resume:function(){if(q.paused!==!1){q.paused=!1;for(var w=1;w<=q.concurrency;w++)async.setImmediate(q.process)}}};return q},async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){for(var beg=-1,end=sequence.length-1;end>beg;){var mid=beg+(end-beg+1>>>1);compare(item,sequence[mid])>=0?beg=mid:end=mid-1}return beg}function _insert(q,data,priority,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,priority:priority,callback:"function"==typeof callback?callback:null};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);return q.push=function(data,priority,callback){_insert(q,data,priority,callback)},delete q.unshift,q},async.cargo=function(worker,payload){var working=!1,tasks=[],cargo={tasks:tasks,payload:payload,saturated:null,empty:null,drain:null,drained:!0,push:function(data,callback){_isArray(data)||(data=[data]),_each(data,function(task){tasks.push({data:task,callback:"function"==typeof callback?callback:null}),cargo.drained=!1,cargo.saturated&&tasks.length===payload&&cargo.saturated()}),async.setImmediate(cargo.process)},process:function process(){if(!working){if(0===tasks.length)return cargo.drain&&!cargo.drained&&cargo.drain(),void(cargo.drained=!0);var ts="number"==typeof payload?tasks.splice(0,payload):tasks.splice(0,tasks.length),ds=_map(ts,function(task){return task.data});cargo.empty&&cargo.empty(),working=!0,worker(ds,function(){working=!1;var args=arguments;_each(ts,function(data){data.callback&&data.callback.apply(null,args)}),process()})}},length:function(){return tasks.length},running:function(){return working}};return cargo};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(err?console.error&&console.error(err):console[name]&&_each(args,function(x){console[name](x)}))}]))}};async.log=_console_fn("log"),async.dir=_console_fn("dir"),async.memoize=function(fn,hasher){var memo={},queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments),callback=args.pop(),key=hasher.apply(null,args);key in memo?async.nextTick(function(){callback.apply(null,memo[key])}):key in queues?queues[key].push(callback):(queues[key]=[callback],fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;l>i;i++)q[i].apply(null,arguments)}])))};return memoized.memo=memo,memoized.unmemoized=fn,memoized},async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}},async.times=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.map(counter,iterator,callback)},async.timesSeries=function(count,iterator,callback){for(var counter=[],i=0;count>i;i++)counter.push(i);return async.mapSeries(counter,iterator,callback)},async.seq=function(){var fns=arguments;return function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([function(){var err=arguments[0],nextargs=Array.prototype.slice.call(arguments,1);cb(err,nextargs)}]))},function(err,results){callback.apply(that,[err].concat(results))})}},async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))};var _applyEach=function(eachfn,fns){var go=function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();return eachfn(fns,function(fn,cb){fn.apply(that,args.concat([cb]))},callback)};if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);return go.apply(this,args)}return go};async.applyEach=doParallel(_applyEach),async.applyEachSeries=doSeries(_applyEach),async.forever=function(fn,callback){function next(err){if(err){if(callback)return callback(err);throw err}fn(next)}next()},"undefined"!=typeof module&&module.exports?module.exports=async:"undefined"!=typeof define&&define.amd?define([],function(){return async}):root.async=async}()}).call(this,require("_process"))},{_process:9}],113:[function(require,module,exports){(function(global){var rng;if(global.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);rng=function(){return crypto.getRandomValues(_rnds8),_rnds8}}if(!rng){var _rnds=new Array(16);rng=function(){for(var r,i=0;16>i;i++)0===(3&i)&&(r=4294967296*Math.random()),_rnds[i]=r>>>((3&i)<<3)&255;return _rnds}}module.exports=rng}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],114:[function(require,module,exports){function parse(s,buf,offset){var i=buf&&offset||0,ii=0;for(buf=buf||[],s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){16>ii&&(buf[i+ii++]=_hexToByte[oct])});16>ii;)buf[i+ii++]=0;return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}function v1(options,buf,offset){var i=buf&&offset||0,b=buf||[];options=options||{};var clockseq=void 0!==options.clockseq?options.clockseq:_clockseq,msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(0>dt&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(0>dt||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq,msecs+=122192928e5;var tl=(1e4*(268435455&msecs)+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var node=options.node||_nodeId,n=0;6>n;n++)b[i+n]=node[n];return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"==options?new Array(16):null,options=null),options=options||{};var rnds=options.random||(options.rng||_rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;16>ii;ii++)buf[i+ii]=rnds[ii];return buf||unparse(rnds)}for(var _rng=require("./rng"),_byteToHex=[],_hexToByte={},i=0;256>i;i++)_byteToHex[i]=(i+256).toString(16).substr(1),_hexToByte[_byteToHex[i]]=i;var _seedBytes=_rng(),_nodeId=[1|_seedBytes[0],_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]],_clockseq=16383&(_seedBytes[6]<<8|_seedBytes[7]),_lastMSecs=0,_lastNSecs=0,uuid=v4;uuid.v1=v1,uuid.v4=v4,uuid.parse=parse,uuid.unparse=unparse,module.exports=uuid},{"./rng":113}],115:[function(require,module,exports){var prefix,version;window.mozRTCPeerConnection||navigator.mozGetUserMedia?(prefix="moz",version=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10)):(window.webkitRTCPeerConnection||navigator.webkitGetUserMedia)&&(prefix="webkit",version=navigator.userAgent.match(/Chrom(e|ium)/)&&parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10));var PC=window.mozRTCPeerConnection||window.webkitRTCPeerConnection,IceCandidate=window.mozRTCIceCandidate||window.RTCIceCandidate,SessionDescription=window.mozRTCSessionDescription||window.RTCSessionDescription,MediaStream=window.webkitMediaStream||window.MediaStream,screenSharing="https:"===window.location.protocol&&("webkit"===prefix&&version>=26||"moz"===prefix&&version>=33),AudioContext=window.AudioContext||window.webkitAudioContext,videoEl=document.createElement("video"),supportVp8=videoEl&&videoEl.canPlayType&&"probably"===videoEl.canPlayType('video/webm; codecs="vp8", vorbis'),getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia;module.exports={prefix:prefix,browserVersion:version,support:!!PC&&supportVp8&&!!getUserMedia,supportRTCPeerConnection:!!PC,supportVp8:supportVp8,supportGetUserMedia:!!getUserMedia,supportDataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),supportWebAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),supportMediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),supportScreenSharing:!!screenSharing,dataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),webAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),mediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),screenSharing:!!screenSharing,AudioContext:AudioContext,PeerConnection:PC,SessionDescription:SessionDescription,IceCandidate:IceCandidate,MediaStream:MediaStream,getUserMedia:getUserMedia}},{}],116:[function(require,module,exports){function WildEmitter(){this.isWildEmitter=!0,this.callbacks={}}module.exports=WildEmitter,WildEmitter.prototype.on=function(event,groupName,fn){var hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return func._groupName=group,(this.callbacks[event]=this.callbacks[event]||[]).push(func),this},WildEmitter.prototype.once=function(event,groupName,fn){function on(){self.off(event,on),func.apply(this,arguments)}var self=this,hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return this.on(event,group,on),this},WildEmitter.prototype.releaseGroup=function(groupName){var item,i,len,handlers;for(item in this.callbacks)for(handlers=this.callbacks[item],i=0,len=handlers.length;len>i;i++)handlers[i]._groupName===groupName&&(handlers.splice(i,1),i--,len--);return this},WildEmitter.prototype.off=function(event,fn){var i,callbacks=this.callbacks[event];return callbacks?1===arguments.length?(delete this.callbacks[event],this):(i=callbacks.indexOf(fn),callbacks.splice(i,1),0===callbacks.length&&delete this.callbacks[event],this):this},WildEmitter.prototype.emit=function(event){var i,len,listeners,args=[].slice.call(arguments,1),callbacks=this.callbacks[event],specialCallbacks=this.getWildcardCallbacks(event);if(callbacks)for(listeners=callbacks.slice(),i=0,len=listeners.length;len>i&&listeners[i];++i)listeners[i].apply(this,args);if(specialCallbacks)for(len=specialCallbacks.length,listeners=specialCallbacks.slice(),i=0,len=listeners.length;len>i&&listeners[i];++i)listeners[i].apply(this,[event].concat(args));return this},WildEmitter.prototype.getWildcardCallbacks=function(eventName){var item,split,result=[];for(item in this.callbacks)split=item.split("*"),("*"===item||2===split.length&&eventName.slice(0,split[0].length)===split[0])&&(result=result.concat(this.callbacks[item]));return result}},{}],117:[function(require,module,exports){"use strict";function JXT(){this._LOOKUP={},this._LOOKUP_EXT={},this._TAGS={},this._CB_DEFINITION={},this._CB_TAG={},this._ID=uuid.v4(),this.utils=extend({},types,helpers)}var extend=require("lodash.assign"),uuid=require("uuid"),ltx=require("ltx"),types=require("./lib/types"),helpers=require("./lib/helpers"),stanzaConstructor=require("./lib/stanza");JXT.prototype.use=function(init){return init["__JXT_LOADED_"+this._ID]||init(this),init["__JXT_LOADED_"+this._ID]=!0,this},JXT.prototype.getDefinition=function(el,ns,required){var JXTClass=this._LOOKUP[ns+"|"+el];if(required&&!JXTClass)throw new Error("Could not find definition for <"+el+' xmlns="'+ns+'" />');return JXTClass},JXT.prototype.getExtensions=function(el,ns){return this._LOOKUP_EXT[ns+"|"+el]||{}},JXT.prototype.withDefinition=function(el,ns,cb){var name=ns+"|"+el;this._CB_DEFINITION[name]||(this._CB_DEFINITION[name]=[]),this._CB_DEFINITION[name].push(cb),this._LOOKUP[name]&&cb(this._LOOKUP[name])},JXT.prototype.withTag=function(tag,cb){this._CB_TAG[tag]||(this._CB_TAG[tag]=[]),this._CB_TAG[tag].push(cb),this.tagged(tag).forEach(function(stanza){cb(stanza)})},JXT.prototype.tagged=function(tag){return this._TAGS[tag]||[]},JXT.prototype.build=function(xml){var JXTClass=this.getDefinition(xml.localName,xml.namespaceURI);return JXTClass?new JXTClass(null,xml):void 0},JXT.prototype.parse=function(str){var xml=ltx.parse(str);if(1===xml.nodeType)return this.build(xml)},JXT.prototype.extend=function(ParentJXT,ChildJXT,multiName,hideSingle){var parentName=ParentJXT.prototype._NS+"|"+ParentJXT.prototype._EL,name=ChildJXT.prototype._name,qName=ChildJXT.prototype._NS+"|"+ChildJXT.prototype._EL;this._LOOKUP[qName]=ChildJXT,this._LOOKUP_EXT[qName]||(this._LOOKUP_EXT[qName]={}),this._LOOKUP_EXT[parentName]||(this._LOOKUP_EXT[parentName]={}),this._LOOKUP_EXT[parentName][name]=ChildJXT,(!multiName||multiName&&!hideSingle)&&this.add(ParentJXT,name,types.extension(ChildJXT)),multiName&&this.add(ParentJXT,multiName,types.multiExtension(ChildJXT))},JXT.prototype.add=function(ParentJXT,fieldName,field){field.enumerable=!0,Object.defineProperty(ParentJXT.prototype,fieldName,field)},JXT.prototype.define=function(opts){var self=this,Stanza=stanzaConstructor(this,opts),ns=Stanza.prototype._NS,el=Stanza.prototype._EL,tags=Stanza.prototype._TAGS,name=ns+"|"+el;this._LOOKUP[name]=Stanza,tags.forEach(function(tag){self._TAGS[tag]||(self._TAGS[tag]=[]),self._TAGS[tag].push(Stanza)});var fieldNames=Object.keys(opts.fields||{});return fieldNames.forEach(function(fieldName){self.add(Stanza,fieldName,opts.fields[fieldName])}),this._CB_DEFINITION[name]&&this._CB_DEFINITION[name].forEach(function(handler){handler(Stanza)}),tags.forEach(function(tag){self._CB_TAG[tag]&&self._CB_TAG[tag].forEach(function(handler){handler(Stanza)})}),Stanza},JXT.createRegistry=function(){return new JXT},extend(JXT,helpers),extend(JXT,types);var globalJXT=new JXT;JXT.define=globalJXT.define.bind(globalJXT),JXT.extend=globalJXT.extend.bind(globalJXT),JXT.add=globalJXT.add.bind(globalJXT),JXT.parse=globalJXT.parse.bind(globalJXT),JXT.build=globalJXT.build.bind(globalJXT),JXT.getExtensions=globalJXT.getExtensions.bind(globalJXT),JXT.getDefinition=globalJXT.getDefinition.bind(globalJXT),JXT.withDefinition=globalJXT.withDefinition.bind(globalJXT),JXT.withTag=globalJXT.withTag.bind(globalJXT),JXT.tagged=globalJXT.tagged.bind(globalJXT),JXT.getGlobalJXT=function(){return globalJXT},module.exports=JXT},{"./lib/helpers":118,"./lib/stanza":119,"./lib/types":120,"lodash.assign":121,ltx:134,uuid:139}],118:[function(require,module,exports){"use strict";var ltx=require("ltx"),XML_NS=exports.XML_NS="http://www.w3.org/XML/1998/namespace";exports.createElement=function(NS,name,parentNS){var el=new ltx.Element(name);return parentNS&&parentNS===NS||exports.setAttribute(el,"xmlns",NS),el};var find=exports.find=function(xml,NS,selector){for(var results=[],children=xml.getElementsByTagName(selector),i=0,len=children.length;len>i;i++){var child=children[i];child.namespaceURI===NS&&child.parentNode===xml&&results.push(child)}return results};exports.findOrCreate=function(xml,NS,selector){var existing=exports.find(xml,NS,selector);if(existing.length)return existing[0];var created=exports.createElement(NS,selector,xml.namespaceURI);return xml.appendChild(created),created},exports.getAttribute=function(xml,attr,defaultVal){return xml.getAttribute(attr)||defaultVal||""},exports.getAttributeNS=function(xml,NS,attr,defaultVal){return xml.getAttributeNS(NS,attr)||defaultVal||""},exports.setAttribute=function(xml,attr,value,force){value||force?xml.setAttribute(attr,value):xml.removeAttribute(attr)},exports.setAttributeNS=function(xml,NS,attr,value,force){value||force?xml.setAttributeNS(NS,attr,value):xml.removeAttributeNS(NS,attr)},exports.getBoolAttribute=function(xml,attr,defaultVal){var val=xml.getAttribute(attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolAttribute=function(xml,attr,value){value?xml.setAttribute(attr,"1"):xml.removeAttribute(attr)},exports.getSubAttribute=function(xml,NS,sub,attr,defaultVal){var subs=find(xml,NS,sub);if(!subs)return"";for(var i=0;i<subs.length;i++)return subs[i].getAttribute(attr)||defaultVal||"";return""},exports.setSubAttribute=function(xml,NS,sub,attr,value){var subs=find(xml,NS,sub);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return void subs[i].setAttribute(attr,value);subs[i].removeAttribute(attr)}else value&&(sub=exports.createElement(NS,sub,xml.namespaceURI),sub.setAttribute(attr,value),xml.appendChild(sub))},exports.getBoolSubAttribute=function(xml,NS,sub,attr,defaultVal){var val=xml.getSubAttribute(NS,sub,attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolSubAttribute=function(xml,NS,sub,attr,value){value=value?"1":"",exports.setSubAttribute(xml,NS,sub,attr,value)},exports.getText=function(xml){return xml.textContent},exports.setText=function(xml,value){xml.textContent=value},exports.getSubText=exports.getTextSub=function(xml,NS,element,defaultVal){var subs=find(xml,NS,element);return defaultVal=defaultVal||"",subs.length?subs[0].textContent||defaultVal:defaultVal},exports.setSubText=exports.setTextSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);value!==!0&&(sub.textContent=value),xml.appendChild(sub)}},exports.getMultiSubText=function(xml,NS,element,extractor){var subs=find(xml,NS,element),results=[];extractor=extractor||function(sub){return sub.textContent||""};for(var i=0;i<subs.length;i++)results.push(extractor(subs[i]));return results},exports.setMultiSubText=function(xml,NS,element,value,builder){var subs=find(xml,NS,element),values=[];builder=builder||function(value){if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);sub.textContent=value,xml.appendChild(sub)}},values="string"==typeof value?(value||"").split("\n"):value;var i,len;for(i=0,len=subs.length;len>i;i++)xml.removeChild(subs[i]);for(i=0,len=values.length;len>i;i++)builder(values[i])},exports.getMultiSubAttribute=function(xml,NS,element,attr){return exports.getMultiSubText(xml,NS,element,function(sub){return exports.getAttribute(sub,attr)})},exports.setMultiSubAttribute=function(xml,NS,element,attr,value){exports.setMultiSubText(xml,NS,element,value,function(val){var sub=exports.createElement(NS,element,xml.namespaceURI);exports.setAttribute(sub,attr,val),xml.appendChild(sub)})},exports.getSubLangText=function(xml,NS,element,defaultLang){var subs=find(xml,NS,element);if(!subs.length)return{};for(var lang,sub,results={},langs=[],i=0;i<subs.length;i++)sub=subs[i],lang=sub.getAttributeNS(XML_NS,"lang")||defaultLang,langs.push(lang),results[lang]=sub.textContent||"";return results},exports.setSubLangText=function(xml,NS,element,value,defaultLang){var sub,lang,subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if("string"==typeof value)sub=exports.createElement(NS,element,xml.namespaceURI),sub.textContent=value,xml.appendChild(sub);else if("object"==typeof value)for(lang in value)value.hasOwnProperty(lang)&&(sub=exports.createElement(NS,element,xml.namespaceURI),lang!==defaultLang&&sub.setAttributeNS(XML_NS,"lang",lang),
+sub.textContent=value[lang],xml.appendChild(sub))},exports.getBoolSub=function(xml,NS,element){var subs=find(xml,NS,element);return!!subs.length},exports.setBoolSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return;xml.removeChild(subs[i])}else if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);xml.appendChild(sub)}}},{ltx:134}],119:[function(require,module,exports){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),EXCLUDE={constructor:!0,parent:!0,prototype:!0,toJSON:!0,toString:!0,xml:!0};module.exports=function(JXT,opts){function Stanza(data,xml,parent){var self=this,parentNode=(xml||{}).parentNode||(parent||{}).xml,parentNS=(parentNode||{}).namespaceURI;self.xml=xml||helpers.createElement(self._NS,self._EL,parentNS),Object.keys(self._PREFIXES).forEach(function(prefix){var namespace=self._PREFIXES[prefix];self.xml.setAttribute("xmlns:"+prefix,namespace)}),self._extensions={};for(var i=0,len=self.xml.childNodes.length;len>i;i++){var child=self.xml.childNodes[i],ChildJXT=JXT.getDefinition(child.localName,child.namespaceURI);if(void 0!==ChildJXT){var name=ChildJXT.prototype._name;self._extensions[name]=new ChildJXT(null,child),self._extensions[name].parent=self}}return extend(self,data),opts.init&&opts.init.apply(self,[data]),self}return Stanza.prototype._name=opts.name,Stanza.prototype._eventname=opts.eventName,Stanza.prototype._NS=opts.namespace,Stanza.prototype._EL=opts.element||opts.name,Stanza.prototype._PREFIXES=opts.prefixes||{},Stanza.prototype._TAGS=opts.tags||[],Stanza.prototype.toString=function(){return this.xml.toString()},Stanza.prototype.toJSON=function(){var prop,result={};for(prop in this._extensions)this._extensions[prop].toJSON&&"_"!==prop[0]&&(result[prop]=this._extensions[prop].toJSON());for(prop in this){var allowedName=!EXCLUDE[prop]&&"_"!==prop[0],isExtensionName=JXT.getExtensions(this._EL,this._NS)[prop];if(allowedName&&!isExtensionName){var val=this[prop];if("function"==typeof val)continue;var type=Object.prototype.toString.call(val);if(type.indexOf("Object")>=0)Object.keys(val).length>0&&(result[prop]=val);else if(type.indexOf("Array")>=0){if(val.length>0){for(var vals=[],len=val.length,n=0;len>n;n++){var nval=val[n];"undefined"!=typeof nval&&(void 0!==nval.toJSON?vals.push(nval.toJSON()):vals.push(nval))}result[prop]=vals}}else void 0!==val&&val!==!1&&""!==val&&(result[prop]=val)}}return result},Stanza}},{"./helpers":118,"lodash.assign":121}],120:[function(require,module,exports){(function(Buffer){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),find=helpers.find,createElement=helpers.createElement,field=exports.field=function(getter,setter){return function(){var args=Array.prototype.slice.call(arguments);return{get:function(){return getter.apply(null,[this.xml].concat(args))},set:function(value){setter.apply(null,[this.xml].concat(args).concat([value]))}}}};exports.boolAttribute=field(helpers.getBoolAttribute,helpers.setBoolAttribute),exports.subAttribute=field(helpers.getSubAttribute,helpers.setSubAttribute),exports.boolSubAttribute=field(helpers.getSubBoolAttribute,helpers.setSubBoolAttribute),exports.text=field(helpers.getText,helpers.setText),exports.textSub=exports.subText=field(helpers.getSubText,helpers.setSubText),exports.multiTextSub=exports.multiSubText=field(helpers.getMultiSubText,helpers.setMultiSubText),exports.multiSubAttribute=field(helpers.getMultiSubAttribute,helpers.setMultiSubAttribute),exports.langTextSub=exports.subLangText=field(helpers.getSubLangText,helpers.setSubLangText),exports.boolSub=field(helpers.getBoolSub,helpers.setBoolSub),exports.langAttribute=field(function(xml){return xml.getAttributeNS(helpers.XML_NS,"lang")||""},function(xml,value){xml.setAttributeNS(helpers.XML_NS,"lang",value)}),exports.b64Text=field(function(xml){return xml.textContent&&"="!==xml.textContent?new Buffer(xml.textContent,"base64"):""},function(xml,value){if("string"==typeof value){var b64=new Buffer(value).toString("base64");xml.textContent=b64||"="}else xml.textContent=""}),exports.dateAttribute=function(attr,now){return{get:function(){var data=helpers.getAttribute(this.xml,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setAttribute(this.xml,attr,value))}}},exports.dateSub=function(NS,sub,now){return{get:function(){var data=helpers.getSubText(this.xml,NS,sub);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubText(this.xml,NS,sub,value))}}},exports.dateSubAttribute=function(NS,sub,attr,now){return{get:function(){var data=helpers.getSubAttribute(this.xml,NS,sub,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubAttribute(this.xml,NS,sub,attr,value))}}},exports.numberAttribute=function(attr,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getAttribute(this.xml,attr,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setAttribute(this.xml,attr,value.toString())}}},exports.numberSub=function(NS,sub,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getSubText(this.xml,NS,sub,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setSubText(this.xml,NS,sub,value.toString())}}},exports.attribute=function(name,defaultVal){return{get:function(){return helpers.getAttribute(this.xml,name,defaultVal)},set:function(value){helpers.setAttribute(this.xml,name,value)}}},exports.attributeNS=function(NS,name,defaultVal){return{get:function(){return helpers.getAttributeNS(this.xml,NS,name,defaultVal)},set:function(value){helpers.setAttributeNS(this.xml,NS,name,value)}}},exports.extension=function(ChildJXT){return{get:function(){var self=this,name=ChildJXT.prototype._name;if(!this._extensions[name]){var existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],self):(this._extensions[name]=new ChildJXT({},null,self),this.xml.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){if(value){var child=this[ChildJXT.prototype._name];value===!0&&(value={}),extend(child,value)}}}},exports.multiExtension=function(ChildJXT){return{get:function(){for(var self=this,data=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL),results=[],i=0,len=data.length;len>i;i++)results.push(new ChildJXT({},data[i],self));return results},set:function(value){value=value||[];var i,len,self=this,existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);for(i=0,len=existing.length;len>i;i++)self.xml.removeChild(existing[i]);for(i=0,len=value.length;len>i;i++){var content=new ChildJXT(value[i],null,self);self.xml.appendChild(content.xml)}}}},exports.enumSub=function(NS,enumValues){return{get:function(){var self=this,result=[];return enumValues.forEach(function(enumVal){var exists=find(self.xml,NS,enumVal);exists.length&&result.push(exists[0].nodeName)}),result[0]||""},set:function(value){var self=this,alreadyExists=!1;if(enumValues.forEach(function(enumVal){var elements=find(self.xml,NS,enumVal);elements.length&&(enumVal===value?alreadyExists=!0:self.xml.removeChild(elements[0]))}),value&&!alreadyExists){var condition=createElement(NS,value);this.xml.appendChild(condition)}}}},exports.subExtension=function(name,NS,sub,ChildJXT){return{get:function(){if(!this._extensions[name]){var wrapper=find(this.xml,NS,sub);wrapper.length?wrapper=wrapper[0]:(wrapper=createElement(NS,sub,this._NS),this.xml.appendChild(wrapper));var existing=find(wrapper,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],{xml:wrapper}):(this._extensions[name]=new ChildJXT({},null,{xml:wrapper}),wrapper.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){var wrapper=find(this.xml,NS,sub);if(wrapper.length&&!value&&this.xml.removeChild(wrapper[0]),value){var child=this[name];value===!0&&(value={}),extend(child,value)}}}},exports.subMultiExtension=function(NS,sub,ChildJXT){return{get:function(){var self=this,results=[],existing=find(this.xml,NS,sub);if(!existing.length)return results;existing=existing[0];var data=find(existing,ChildJXT.prototype._NS,ChildJXT.prototype._EL);return data.forEach(function(xml){results.push(new ChildJXT({},xml,self))}),results},set:function(values){var self=this,existing=find(this.xml,NS,sub);existing.length&&self.xml.removeChild(existing[0]),values.length&&(existing=createElement(NS,sub,this._NS),values.forEach(function(value){var content=new ChildJXT(value,null,self);existing.appendChild(content.xml)}),self.xml.appendChild(existing))}}}}).call(this,require("buffer").Buffer)},{"./helpers":118,buffer:2,"lodash.assign":121}],121:[function(require,module,exports){function assignWith(object,source,customizer){for(var index=-1,props=keys(source),length=props.length;++index<length;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(void 0!==value||key in object)||(object[key]=result)}return object}var baseAssign=require("lodash._baseassign"),createAssigner=require("lodash._createassigner"),keys=require("lodash.keys"),assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)});module.exports=assign},{"lodash._baseassign":122,"lodash._createassigner":124,"lodash.keys":128}],122:[function(require,module,exports){function baseAssign(object,source){return null==source?object:baseCopy(source,keys(source),object)}var baseCopy=require("lodash._basecopy"),keys=require("lodash.keys");module.exports=baseAssign},{"lodash._basecopy":123,"lodash.keys":128}],123:[function(require,module,exports){function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index];object[key]=source[key]}return object}module.exports=baseCopy},{}],124:[function(require,module,exports){function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2?sources[length-2]:void 0,guard=length>2?sources[2]:void 0,thisArg=length>1?sources[length-1]:void 0;for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:void 0,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?void 0:customizer,length=1);++index<length;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}var bindCallback=require("lodash._bindcallback"),isIterateeCall=require("lodash._isiterateecall"),restParam=require("lodash.restparam");module.exports=createAssigner},{"lodash._bindcallback":125,"lodash._isiterateecall":126,"lodash.restparam":127}],125:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54}],126:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object){var other=object[index];return value===value?value===other:other!==other}return!1}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var reIsUint=/^\d+$/,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isIterateeCall},{}],127:[function(require,module,exports){function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(void 0===start?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);++index<length;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;++index<start;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}var FUNC_ERROR_TEXT="Expected a function",nativeMax=Math.max;module.exports=restParam},{}],128:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{dup:51,"lodash._getnative":129,"lodash.isarguments":130,"lodash.isarray":131}],129:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{dup:52}],130:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],131:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],132:[function(require,module,exports){"use strict";function DOMElement(name,attrs){Element.call(this,name,attrs),this.nodeType=1,this.nodeName=this.localName}var util=require("util"),Element=require("./element").Element;util.inherits(DOMElement,Element),DOMElement.prototype._getElement=function(name,attrs){var element=new DOMElement(name,attrs);return element},Object.defineProperty(DOMElement.prototype,"localName",{get:function(){return this.getName()}}),Object.defineProperty(DOMElement.prototype,"namespaceURI",{get:function(){return this.getNS()}}),Object.defineProperty(DOMElement.prototype,"parentNode",{get:function(){return this.parent}}),Object.defineProperty(DOMElement.prototype,"childNodes",{get:function(){return this.children}}),Object.defineProperty(DOMElement.prototype,"textContent",{get:function(){return this.getText()},set:function(value){this.children.push(value)}}),DOMElement.prototype.getElementsByTagName=function(name){return this.getChildren(name)},DOMElement.prototype.getAttribute=function(name){return this.getAttr(name)},DOMElement.prototype.setAttribute=function(name,value){this.attr(name,value)},DOMElement.prototype.getAttributeNS=function(ns,name){return"http://www.w3.org/XML/1998/namespace"===ns?this.getAttr(["xml",name].join(":")):this.getAttr(name,ns)},DOMElement.prototype.setAttributeNS=function(ns,name,value){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),value)},DOMElement.prototype.removeAttribute=function(name){this.attr(name,null)},DOMElement.prototype.removeAttributeNS=function(ns,name){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),null)},DOMElement.prototype.appendChild=function(el){this.cnode(el)},DOMElement.prototype.removeChild=function(el){this.remove(el)},module.exports=DOMElement},{"./element":133,util:24}],133:[function(require,module,exports){"use strict";function Element(name,attrs){this.name=name,this.parent=null,this.children=[],this.setAttrs(attrs)}function escapeXml(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/"/g,"&apos;")}function escapeXmlText(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}Element.prototype.is=function(name,xmlns){return this.getName()===name&&(!xmlns||this.getNS()===xmlns)},Element.prototype.getName=function(){return this.name.indexOf(":")>=0?this.name.substr(this.name.indexOf(":")+1):this.name},Element.prototype.getNS=function(){if(this.name.indexOf(":")>=0){var prefix=this.name.substr(0,this.name.indexOf(":"));return this.findNS(prefix)}return this.findNS()},Element.prototype.findNS=function(prefix){if(prefix){var attr="xmlns:"+prefix;if(this.attrs[attr])return this.attrs[attr];if(this.parent)return this.parent.findNS(prefix)}else{if(this.attrs.xmlns)return this.attrs.xmlns;if(this.parent)return this.parent.findNS()}},Element.prototype.getXmlns=function(){var namespaces={};this.parent&&(namespaces=this.parent.getXmlns());for(var attr in this.attrs){var m=attr.match("xmlns:?(.*)");this.attrs.hasOwnProperty(attr)&&m&&(namespaces[this.attrs[attr]]=m[1])}return namespaces},Element.prototype.setAttrs=function(attrs){this.attrs={},"string"==typeof attrs?this.attrs.xmlns=attrs:attrs&&Object.keys(attrs).forEach(function(key){this.attrs[key]=attrs[key]},this)},Element.prototype.getAttr=function(name,xmlns){if(!xmlns)return this.attrs[name];var namespaces=this.getXmlns();return namespaces[xmlns]?this.attrs[[namespaces[xmlns],name].join(":")]:null},Element.prototype.getChild=function(name,xmlns){return this.getChildren(name,xmlns)[0]},Element.prototype.getChildren=function(name,xmlns){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.getName||child.getName()!==name||xmlns&&child.getNS()!==xmlns||result.push(child)}return result},Element.prototype.getChildByAttr=function(attr,val,xmlns,recursive){return this.getChildrenByAttr(attr,val,xmlns,recursive)[0]},Element.prototype.getChildrenByAttr=function(attr,val,xmlns,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.attrs||child.attrs[attr]!==val||xmlns&&child.getNS()!==xmlns||result.push(child),recursive&&child.getChildrenByAttr&&result.push(child.getChildrenByAttr(attr,val,xmlns,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getChildrenByFilter=function(filter,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];filter(child)&&result.push(child),recursive&&child.getChildrenByFilter&&result.push(child.getChildrenByFilter(filter,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getText=function(){for(var text="",i=0;i<this.children.length;i++){var child=this.children[i];("string"==typeof child||"number"==typeof child)&&(text+=child)}return text},Element.prototype.getChildText=function(name,xmlns){var child=this.getChild(name,xmlns);return child?child.getText():null},Element.prototype.getChildElements=function(){return this.getChildrenByFilter(function(child){return child instanceof Element})},Element.prototype.root=function(){return this.parent?this.parent.root():this},Element.prototype.tree=Element.prototype.root,Element.prototype.up=function(){return this.parent?this.parent:this},Element.prototype._getElement=function(name,attrs){var element=new Element(name,attrs);return element},Element.prototype.c=function(name,attrs){return this.cnode(this._getElement(name,attrs))},Element.prototype.cnode=function(child){return this.children.push(child),"object"==typeof child&&(child.parent=this),child},Element.prototype.t=function(text){return this.children.push(text),this},Element.prototype.remove=function(el,xmlns){var filter;return filter="string"==typeof el?function(child){return!(child.is&&child.is(el,xmlns))}:function(child){return child!==el},this.children=this.children.filter(filter),this},Element.prototype.clone=function(){for(var clone=this._getElement(this.name,this.attrs),i=0;i<this.children.length;i++){var child=this.children[i];clone.cnode(child.clone?child.clone():child)}return clone},Element.prototype.text=function(val){return val&&1===this.children.length?(this.children[0]=val,this):this.getText()},Element.prototype.attr=function(attr,val){return"undefined"!=typeof val||null===val?(this.attrs||(this.attrs={}),this.attrs[attr]=val,this):this.attrs[attr]},Element.prototype.toString=function(){var s="";return this.write(function(c){s+=c}),s},Element.prototype.toJSON=function(){return{name:this.name,attrs:this.attrs,children:this.children.map(function(child){return child&&child.toJSON?child.toJSON():child})}},Element.prototype._addChildren=function(writer){writer(">");for(var i=0;i<this.children.length;i++){var child=this.children[i];(child||0===child)&&(child.write?child.write(writer):"string"==typeof child?writer(escapeXmlText(child)):child.toString&&writer(escapeXmlText(child.toString(10))))}writer("</"),writer(this.name),writer(">")},Element.prototype.write=function(writer){writer("<"),writer(this.name);for(var k in this.attrs){var v=this.attrs[k];(v||""===v||0===v)&&(writer(" "),writer(k),writer('="'),"string"!=typeof v&&(v=v.toString(10)),writer(escapeXml(v)),writer('"'))}0===this.children.length?writer("/>"):this._addChildren(writer)},exports.Element=Element,exports.escapeXml=escapeXml},{}],134:[function(require,module,exports){"use strict";var parse=require("./parse");parse.availableSaxParsers.push(parse.bestSaxParser=require("./sax/sax_ltx")),module.exports=require("./index")},{"./index":135,"./parse":136,"./sax/sax_ltx":137}],135:[function(require,module,exports){"use strict";var parse=require("./parse");exports.Element=require("./dom-element"),exports.escapeXml=require("./element").escapeXml,exports.parse=parse.parse,exports.Parser=parse.Parser,exports.availableSaxParsers=parse.availableSaxParsers,exports.bestSaxParser=parse.bestSaxParser},{"./dom-element":132,"./element":133,"./parse":136}],136:[function(require,module,exports){"use strict";var events=require("events"),util=require("util"),DOMElement=require("./dom-element");exports.availableSaxParsers=[],exports.bestSaxParser=null;var saxParsers=["./sax/sax_expat.js","./sax/sax_ltx.js","./sax/sax_saxjs.js"];saxParsers.forEach(function(modName){var mod;try{mod=require(modName)}catch(e){}mod&&(exports.availableSaxParsers.push(mod),exports.bestSaxParser||(exports.bestSaxParser=mod))}),exports.Parser=function(saxParser){events.EventEmitter.call(this);var self=this,ParserMod=saxParser||exports.bestSaxParser;if(!ParserMod)throw new Error("No SAX parser available");this.parser=new ParserMod;var el;this.parser.addListener("startElement",function(name,attrs){var child=new DOMElement(name,attrs);el=el?el.cnode(child):child}),this.parser.addListener("endElement",function(name){el&&name===el.name&&(el.parent?el=el.parent:self.tree||(self.tree=el,el=void 0))}),this.parser.addListener("text",function(str){el&&el.t(str)}),this.parser.addListener("error",function(e){self.error=e,self.emit("error",e)})},util.inherits(exports.Parser,events.EventEmitter),exports.Parser.prototype.write=function(data){this.parser.write(data)},exports.Parser.prototype.end=function(data){this.parser.end(data),this.error||(this.tree?this.emit("tree",this.tree):this.emit("error",new Error("Incomplete document")))},exports.parse=function(data,saxParser){var p=new exports.Parser(saxParser),result=null,error=null;if(p.on("tree",function(tree){result=tree}),p.on("error",function(e){error=e}),p.write(data),p.end(),error)throw error;return result}},{"./dom-element":132,events:6,util:24}],137:[function(require,module,exports){"use strict";function unescapeXml(s){return s.replace(/\&(amp|#38);/g,"&").replace(/\&(lt|#60);/g,"<").replace(/\&(gt|#62);/g,">").replace(/\&(quot|#34);/g,'"').replace(/\&(apos|#39);/g,"'").replace(/\&(nbsp|#160);/g,"\n")}var util=require("util"),events=require("events"),STATE_TEXT=0,STATE_IGNORE_TAG=1,STATE_TAG_NAME=2,STATE_TAG=3,STATE_ATTR_NAME=4,STATE_ATTR_EQ=5,STATE_ATTR_QUOT=6,STATE_ATTR_VALUE=7,SaxLtx=module.exports=function(){events.EventEmitter.call(this);var remainder,tagName,attrs,endTag,selfClosing,attrQuote,attrName,state=STATE_TEXT,recordStart=0;this._handleTagOpening=function(endTag,tagName,attrs){endTag?this.emit("endElement",tagName):(this.emit("startElement",tagName,attrs),selfClosing&&this.emit("endElement",tagName))},this.write=function(data){function endRecording(){if("number"==typeof recordStart){var recorded=data.slice(recordStart,pos);return recordStart=void 0,recorded}}"string"!=typeof data&&(data=data.toString());var pos=0;for(remainder&&(data=remainder+data,pos+=remainder.length,remainder=null);pos<data.length;pos++){var c=data.charCodeAt(pos);switch(state){case STATE_TEXT:if(60===c){var text=endRecording();text&&this.emit("text",unescapeXml(text)),state=STATE_TAG_NAME,recordStart=pos+1,attrs={}}break;case STATE_TAG_NAME:47===c&&recordStart===pos?(recordStart=pos+1,endTag=!0):33===c||63===c?(recordStart=void 0,state=STATE_IGNORE_TAG):(32>=c||47===c||62===c)&&(tagName=endRecording(),pos--,state=STATE_TAG);break;case STATE_IGNORE_TAG:62===c&&(state=STATE_TEXT);break;case STATE_TAG:62===c?(this._handleTagOpening(endTag,tagName,attrs),tagName=void 0,attrs=void 0,endTag=void 0,selfClosing=void 0,state=STATE_TEXT,recordStart=pos+1):47===c?selfClosing=!0:c>32&&(recordStart=pos,state=STATE_ATTR_NAME);break;case STATE_ATTR_NAME:(32>=c||61===c)&&(attrName=endRecording(),pos--,state=STATE_ATTR_EQ);break;case STATE_ATTR_EQ:61===c&&(state=STATE_ATTR_QUOT);break;case STATE_ATTR_QUOT:(34===c||39===c)&&(attrQuote=c,state=STATE_ATTR_VALUE,recordStart=pos+1);break;case STATE_ATTR_VALUE:if(c===attrQuote){var value=unescapeXml(endRecording());attrs[attrName]=value,attrName=void 0,state=STATE_TAG}}}"number"==typeof recordStart&&recordStart<=data.length&&(remainder=data.slice(recordStart),recordStart=0)}};util.inherits(SaxLtx,events.EventEmitter),SaxLtx.prototype.end=function(data){data&&this.write(data),this.write=function(){}}},{events:6,util:24}],138:[function(require,module,exports){arguments[4][113][0].apply(exports,arguments)},{dup:113}],139:[function(require,module,exports){arguments[4][114][0].apply(exports,arguments)},{"./rng":138,dup:114}],140:[function(require,module,exports){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"!=typeof module||"function"==typeof require&&"function"==typeof define||console.log.apply(console,arguments)}};if("undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia&&window.mozRTCPeerConnection){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10),webrtcMinimumVersion=31,window.RTCPeerConnection=function(pcConfig,pcConstraints){if(38>webrtcDetectedVersion&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate,getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if((void 0!==r.min||void 0!==r.max||void 0!==r.exact)&&require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return 38>webrtcDetectedVersion&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},41>webrtcDetectedVersion){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices()["catch"](function(e){if("NotFoundError"===e.name)return[];throw e})}}Object.defineProperty(HTMLVideoElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(stream){this.mozSrcObject=stream}}),attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}}else if(navigator.webkitGetUserMedia){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&null===selector?origGetStats.apply(self,[function(response){resolve.apply(null,[fixChromeStats(response)])},reject]):origGetStats.apply(self,[resolve,reject])})},pc},["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;
+var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),Object.defineProperty(HTMLVideoElement.prototype,"srcObject",{get:function(){return this._srcObject},set:function(stream){this._srcObject=stream,this.src=URL.createObjectURL(stream)}}),attachMediaStream=function(element,stream){webrtcDetectedVersion>=43?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){webrtcDetectedVersion>=43?to.srcObject=from.srcObject:to.src=from.src}}else navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)?(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=parseInt(navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)[2],10),webrtcMinimumVersion=12,getUserMedia=navigator.getUserMedia,attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject}):webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";var webrtcTesting={};if(Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}}),"undefined"!=typeof module){var RTCPeerConnection;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection),module.exports={RTCPeerConnection:RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting}})},{}],141:[function(require,module,exports){"use strict";var NS="urn:xmpp:jingle:transports:ice-udp:1";module.exports=function(stanza){var types=stanza.utils,ICE=stanza.define({name:"_iceUdp",namespace:NS,element:"transport",tags:["jingle-transport"],fields:{transType:{value:"iceUdp"},pwd:types.attribute("pwd"),ufrag:types.attribute("ufrag")}}),RemoteCandidate=stanza.define({name:"remoteCandidate",namespace:NS,element:"remote-candidate",fields:{component:types.attribute("component"),ip:types.attribute("ip"),port:types.attribute("port")}}),Candidate=stanza.define({name:"_iceUdpCandidate",namespace:NS,element:"candidate",fields:{component:types.attribute("component"),foundation:types.attribute("foundation"),generation:types.attribute("generation"),id:types.attribute("id"),ip:types.attribute("ip"),network:types.attribute("network"),port:types.attribute("port"),priority:types.attribute("priority"),protocol:types.attribute("protocol"),relAddr:types.attribute("rel-addr"),relPort:types.attribute("rel-port"),tcpType:types.attribute("tcptype"),type:types.attribute("type")}}),Fingerprint=stanza.define({name:"_iceFingerprint",namespace:"urn:xmpp:jingle:apps:dtls:0",element:"fingerprint",fields:{hash:types.attribute("hash"),setup:types.attribute("setup"),value:types.text(),required:types.boolAttribute("required")}}),SctpMap=stanza.define({name:"_sctpMap",namespace:"urn:xmpp:jingle:transports:dtls-sctp:1",element:"sctpmap",fields:{number:types.attribute("number"),protocol:types.attribute("protocol"),streams:types.attribute("streams")}});stanza.extend(ICE,Candidate,"candidates"),stanza.extend(ICE,RemoteCandidate),stanza.extend(ICE,Fingerprint,"fingerprints"),stanza.extend(ICE,SctpMap,"sctp"),stanza.withDefinition("content","urn:xmpp:jingle:1",function(Content){stanza.extend(Content,ICE)})}},{}],142:[function(require,module,exports){"use strict";module.exports=function(stanza){var types=stanza.utils,Iq=stanza.define({name:"iq",namespace:"jabber:client",element:"iq",topLevel:!0,fields:{lang:types.langAttribute(),id:types.attribute("id"),to:types.attribute("to"),from:types.attribute("from"),type:types.attribute("type")}}),toJSON=Iq.prototype.toJSON;Iq.prototype.toJSON=function(){var result=toJSON.call(this);return result.resultReply=this.resultReply,result.errorReply=this.errorReply,result},Iq.prototype.resultReply=function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="result",new Iq(data)},Iq.prototype.errorReply=function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="error",new Iq(data)}}},{}],143:[function(require,module,exports){"use strict";var NS="urn:xmpp:jingle:1",REASONS=["alternative-session","busy","cancel","connectivity-error","decline","expired","failed-application","failed-transport","general-error","gone","incompatible-parameters","media-error","security-error","success","timeout","unsupported-applications","unsupported-transports"];module.exports=function(stanza){var types=stanza.utils,Jingle=stanza.define({name:"jingle",namespace:NS,element:"jingle",fields:{action:types.attribute("action"),initiator:types.attribute("initiator"),responder:types.attribute("responder"),sid:types.attribute("sid")}}),Content=stanza.define({name:"_jingleContent",namespace:NS,element:"content",fields:{creator:types.attribute("creator"),disposition:types.attribute("disposition","session"),name:types.attribute("name"),senders:types.attribute("senders","both"),description:{get:function(){for(var opts=stanza.tagged("jingle-description").map(function(Description){return Description.prototype._name}),i=0,len=opts.length;len>i;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.descType;this[ext]=value}},transport:{get:function(){for(var opts=stanza.tagged("jingle-transport").map(function(Transport){return Transport.prototype._name}),i=0,len=opts.length;len>i;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.transType;this[ext]=value}}}}),Reason=stanza.define({name:"reason",namespace:NS,element:"reason",fields:{condition:types.enumSub(NS,REASONS),alternativeSession:{get:function(){return types.getSubText(this.xml,NS,"alternative-session")},set:function(value){this.condition="alternative-session",types.setSubText(this.xml,NS,"alternative-session",value)}},text:types.textSub(NS,"text")}});stanza.extend(Jingle,Content,"contents"),stanza.extend(Jingle,Reason)}},{}],144:[function(require,module,exports){"use strict";var NS="urn:xmpp:jingle:apps:rtp:1",FBNS="urn:xmpp:jingle:apps:rtp:rtcp-fb:0",HDRNS="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",INFONS="urn:xmpp:jingle:apps:rtp:info:1",SSMANS="urn:xmpp:jingle:apps:rtp:ssma:0",GROUPNS="urn:xmpp:jingle:apps:grouping:0";module.exports=function(stanza){var types=stanza.utils,Feedback={get:function(){var existing=types.find(this.xml,FBNS,"rtcp-fb"),result=[];return existing.forEach(function(xml){result.push({type:types.getAttribute(xml,"type"),subtype:types.getAttribute(xml,"subtype")})}),existing=types.find(this.xml,FBNS,"rtcp-fb-trr-int"),existing.forEach(function(xml){result.push({type:types.getAttribute(xml,"type"),value:types.getAttribute(xml,"value")})}),result},set:function(values){var self=this,existing=types.find(this.xml,FBNS,"rtcp-fb");existing.forEach(function(item){self.xml.removeChild(item)}),existing=types.find(this.xml,FBNS,"rtcp-fb-trr-int"),existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var fb;"trr-int"===value.type?(fb=types.createElement(FBNS,"rtcp-fb-trr-int",NS),types.setAttribute(fb,"type",value.type),types.setAttribute(fb,"value",value.value)):(fb=types.createElement(FBNS,"rtcp-fb",NS),types.setAttribute(fb,"type",value.type),types.setAttribute(fb,"subtype",value.subtype)),self.xml.appendChild(fb)})}},Bandwidth=stanza.define({name:"bandwidth",namespace:NS,element:"bandwidth",fields:{type:types.attribute("type"),bandwidth:types.text()}}),RTP=stanza.define({name:"_rtp",namespace:NS,element:"description",tags:["jingle-description"],fields:{descType:{value:"rtp"},media:types.attribute("media"),ssrc:types.attribute("ssrc"),mux:types.boolSub(NS,"rtcp-mux"),encryption:{get:function(){var enc=types.find(this.xml,NS,"encryption");if(!enc.length)return[];enc=enc[0];var self=this,data=types.find(enc,NS,"crypto"),results=[];return data.forEach(function(xml){results.push(new Crypto({},xml,self).toJSON())}),results},set:function(values){var enc=types.find(this.xml,NS,"encryption");if(enc.length&&this.xml.removeChild(enc),values.length){types.setBoolSubAttribute(this.xml,NS,"encryption","required",!0),enc=types.find(this.xml,NS,"encryption")[0];var self=this;values.forEach(function(value){var content=new Crypto(value,null,self);enc.appendChild(content.xml)})}}},feedback:Feedback,headerExtensions:{get:function(){var existing=types.find(this.xml,HDRNS,"rtp-hdrext"),result=[];return existing.forEach(function(xml){result.push({id:types.getAttribute(xml,"id"),uri:types.getAttribute(xml,"uri"),senders:types.getAttribute(xml,"senders")})}),result},set:function(values){var self=this,existing=types.find(this.xml,HDRNS,"rtp-hdrext");existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var hdr=types.createElement(HDRNS,"rtp-hdrext",NS);types.setAttribute(hdr,"id",value.id),types.setAttribute(hdr,"uri",value.uri),types.setAttribute(hdr,"senders",value.senders),self.xml.appendChild(hdr)})}}}}),PayloadType=stanza.define({name:"_payloadType",namespace:NS,element:"payload-type",fields:{channels:types.attribute("channels"),clockrate:types.attribute("clockrate"),id:types.attribute("id"),maxptime:types.attribute("maxptime"),name:types.attribute("name"),ptime:types.attribute("ptime"),feedback:Feedback,parameters:{get:function(){var result=[],params=types.find(this.xml,NS,"parameter");return params.forEach(function(param){result.push({key:types.getAttribute(param,"name"),value:types.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=types.createElement(NS,"parameter");types.setAttribute(param,"name",value.key),types.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Crypto=stanza.define({name:"crypto",namespace:NS,element:"crypto",fields:{cipherSuite:types.attribute("crypto-suite"),keyParams:types.attribute("key-params"),sessionParams:types.attribute("session-params"),tag:types.attribute("tag")}}),ContentGroup=stanza.define({name:"_group",namespace:GROUPNS,element:"group",fields:{semantics:types.attribute("semantics"),contents:types.multiSubAttribute(GROUPNS,"content","name")}}),SourceGroup=stanza.define({name:"_sourceGroup",namespace:SSMANS,element:"ssrc-group",fields:{semantics:types.attribute("semantics"),sources:types.multiSubAttribute(SSMANS,"source","ssrc")}}),Source=stanza.define({name:"_source",namespace:SSMANS,element:"source",fields:{ssrc:types.attribute("ssrc"),parameters:{get:function(){var result=[],params=types.find(this.xml,SSMANS,"parameter");return params.forEach(function(param){result.push({key:types.getAttribute(param,"name"),value:types.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=types.createElement(SSMANS,"parameter");types.setAttribute(param,"name",value.key),types.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Mute=stanza.define({name:"mute",namespace:INFONS,element:"mute",fields:{creator:types.attribute("creator"),name:types.attribute("name")}}),Unmute=stanza.define({name:"unmute",namespace:INFONS,element:"unmute",fields:{creator:types.attribute("creator"),name:types.attribute("name")}});stanza.extend(RTP,Bandwidth),stanza.extend(RTP,PayloadType,"payloads"),stanza.extend(RTP,Source,"sources"),stanza.extend(RTP,SourceGroup,"sourceGroups"),stanza.withDefinition("content","urn:xmpp:jingle:1",function(Content){stanza.extend(Content,RTP)}),stanza.withDefinition("jingle","urn:xmpp:jingle:1",function(Jingle){stanza.extend(Jingle,Mute),stanza.extend(Jingle,Unmute),stanza.extend(Jingle,ContentGroup,"groups"),stanza.add(Jingle,"ringing",types.boolSub(INFONS,"ringing")),stanza.add(Jingle,"hold",types.boolSub(INFONS,"hold")),stanza.add(Jingle,"active",types.boolSub(INFONS,"active"))})}},{}],145:[function(require,module,exports){"use strict";var JSM=require("jingle"),RTC=require("webrtc-adapter-test"),jxt=require("jxt").createRegistry();jxt.use(require("./stanza/iq.js")),jxt.use(require("./stanza/jingle.js")),jxt.use(require("./stanza/rtp.js")),jxt.use(require("./stanza/iceUdp.js"));var IqStanza=jxt.getDefinition("iq","jabber:client"),JingleStanza=jxt.getDefinition("jingle","urn:xmpp:jingle:1");jxt.extend(IqStanza,JingleStanza),function($){Strophe.addConnectionPlugin("jingle",{connection:null,peer_constraints:{},AUTOACCEPT:!1,localStream:null,manager:null,RTC:null,init:function(conn){var self=this;self.RTC=RTC,self.connection=conn,RTC.webrtcDetectedVersion<33&&"firefox"===RTC.webrtcDetectedBrowser||"chrome"===RTC.webrtcDetectedBrowser?(self.peer_constraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mandatory.MozDontOfferDataChannel=!0)):(self.peer_constraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mozDontOfferDataChannel=!0)),self.manager=new JSM({peerConnectionConstraints:self.peer_constraints,jid:self.connection.jid,selfID:self.connection.jid});var events={incoming:"callincoming.jingle",terminated:"callterminated.jingle",peerStreamAdded:"remotestreamadded.jingle",peerStreamRemoved:"remotestreamremoved.jingle",ringing:"ringing.jingle","log:error":"error.jingle"};if($.each(events,function(key,val){self.manager.on(key,function(){$(document).trigger(val,arguments)})}),self.manager.on("incoming",function(session){session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])})}),this.connection.disco){var i;for(i=0;i<self.manager.capabilities.length;i++)self.connection.disco.addFeature(self.manager.capabilities[i])}this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null),this.manager.on("send",function(data){var iq=new IqStanza(data);self.connection.send($.parseXML(iq.toString()).getElementsByTagName("iq")[0])})},onJingle:function(iq){var req=jxt.parse(iq.outerHTML);return this.manager.process(req),!0},initiate:function(peerjid,stream){var session=this.manager.createMediaSession(peerjid);return session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])}),stream&&(this.localStream=stream),this.localStream?(session.addStream(this.localStream),session.start(),session):void console.error("No local stream defined")},terminate:function(jid,reason,silent){"undefined"==typeof jid||null===jid?this.manager.endAllSessions(reason,silent):this.manager.endPeerSessions(jid,reason,silent)},terminateByJid:function(jid){this.manager.endPeerSessions(jid)},addICEServer:function(server){this.manager.addICEServer(server)},setICEServers:function(servers){this.manager.iceServers=servers},setPeerConstraints:function(constraints){this.manager.config.peerConnectionConstraints=constraints}})}(jQuery)},{"./stanza/iceUdp.js":141,"./stanza/iq.js":142,"./stanza/jingle.js":143,"./stanza/rtp.js":144,jingle:25,jxt:117,"webrtc-adapter-test":140}]},{},[145]),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;8>i;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;numberOfBytes>i;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){if("function"==typeof define&&define.amd)define(factory.bind(root,root.crypto||root.msCrypto));else if("undefined"!=typeof module&&module.exports)module.exports=factory(require("crypto"));else try{root.BigInt=factory(root.crypto||root.msCrypto)}catch(e){console.warn(e.message)}}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;n>i;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];n>i;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;p>i;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;s-1>=j&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;a>i;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=ky>kx+shift?kx+shift:ky;for(i=ky-1-shift;kx>i&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;ky>i;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(r[i]==y[ky-1]?q[i-ky]=mask:q[i-ky]=Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(-1==base){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),1>d)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;k>i&&(d=digitsStr.indexOf(s.substring(i,i+1),0),36>=base&&d>=36&&(d-=26),!(d>=base||0>d));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;kk>i;i++)y[i]=x[i];for(;k>i;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),-1==base){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;k>i;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;k>i;i++)if(c+=x[i],b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;k>i;i++)c+=x[i]*n,b=0,0>c&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;k>i;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&kk>i;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;k>i;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;kx>i;i++){for(c=s0[2*i]+x[i]*x[i],s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;kx>j;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),
+copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,0>k1)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;kn>i;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;ky-4>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ky>j;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn-4>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;kn>j;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;ks>j;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;b>i;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\x00"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);b>i;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};256>i;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],sigBytes!=undefined?this.sigBytes=sigBytes:this.sigBytes=4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;thatSigBytes>i;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;thatSigBytes>i;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;nBytes>i;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;hexStrLength>i;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;sigBytes>i;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;latin1StrLength>i;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;nWordsReady>offset;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});return C}(Math);return function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;sigBytes>i;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;4>j&&sigBytes>i+.75*j;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);-1!=paddingIndex&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;base64StrLength>i;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;blockSize>i;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;nPaddingBytes>i;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;256>i;i++)128>i?d[i]=i<<1:d[i]=i<<1^283;for(var x=0,xi=0,i=0;256>i;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRows>ksRow;ksRow++)if(keySize>ksRow)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;ksRows>invKsRow;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];4>invKsRow||4>=ksRow?invKeySchedule[invKsRow]=t:invKeySchedule[invKsRow]=INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;nRounds>round;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;80>i;i++){if(16>i)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;sqrtN>=factor;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;64>nPrime;)isPrime(n)&&(8>nPrime&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;64>i;i++){if(16>i)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;hasherBlockSize>i;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;blockSize>i;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
* Source: lib/otr/build/dep/eventemitter.js, license: MIT, url: http://git.io/ee
*/
/*!
@@ -111,11 +111,11 @@ for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,0>k1)retur
* MIT license
* @preserve
*/
-function(){"use strict";function EventEmitter(){}function indexOfListener(listeners,listener){for(var i=listeners.length;i--;)if(listeners[i].listener===listener)return i;return-1}function alias(name){return function(){return this[name].apply(this,arguments)}}var proto=EventEmitter.prototype;proto.getListeners=function(evt){var response,key,events=this._getEvents();if("object"==typeof evt){response={};for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&(response[key]=events[key])}else response=events[evt]||(events[evt]=[]);return response},proto.flattenListeners=function(listeners){var i,flatListeners=[];for(i=0;i<listeners.length;i+=1)flatListeners.push(listeners[i].listener);return flatListeners},proto.getListenersAsObject=function(evt){var response,listeners=this.getListeners(evt);return listeners instanceof Array&&(response={},response[evt]=listeners),response||listeners},proto.addListener=function(evt,listener){var key,listeners=this.getListenersAsObject(evt),listenerIsWrapped="object"==typeof listener;for(key in listeners)listeners.hasOwnProperty(key)&&-1===indexOfListener(listeners[key],listener)&&listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:!1});return this},proto.on=alias("addListener"),proto.addOnceListener=function(evt,listener){return this.addListener(evt,{listener:listener,once:!0})},proto.once=alias("addOnceListener"),proto.defineEvent=function(evt){return this.getListeners(evt),this},proto.defineEvents=function(evts){for(var i=0;i<evts.length;i+=1)this.defineEvent(evts[i]);return this},proto.removeListener=function(evt,listener){var index,key,listeners=this.getListenersAsObject(evt);for(key in listeners)listeners.hasOwnProperty(key)&&(index=indexOfListener(listeners[key],listener),-1!==index&&listeners[key].splice(index,1));return this},proto.off=alias("removeListener"),proto.addListeners=function(evt,listeners){return this.manipulateListeners(!1,evt,listeners)},proto.removeListeners=function(evt,listeners){return this.manipulateListeners(!0,evt,listeners)},proto.manipulateListeners=function(remove,evt,listeners){var i,value,single=remove?this.removeListener:this.addListener,multiple=remove?this.removeListeners:this.addListeners;if("object"!=typeof evt||evt instanceof RegExp)for(i=listeners.length;i--;)single.call(this,evt,listeners[i]);else for(i in evt)evt.hasOwnProperty(i)&&(value=evt[i])&&("function"==typeof value?single.call(this,i,value):multiple.call(this,i,value));return this},proto.removeEvent=function(evt){var key,type=typeof evt,events=this._getEvents();if("string"===type)delete events[evt];else if("object"===type)for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&delete events[key];else delete this._events;return this},proto.emitEvent=function(evt,args){var listener,i,key,response,listeners=this.getListenersAsObject(evt);for(key in listeners)if(listeners.hasOwnProperty(key))for(i=listeners[key].length;i--;)listener=listeners[key][i],listener.once===!0&&this.removeListener(evt,listener.listener),response=listener.listener.apply(this,args||[]),response===this._getOnceReturnValue()&&this.removeListener(evt,listener.listener);return this},proto.trigger=alias("emitEvent"),proto.emit=function(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args)},proto.setOnceReturnValue=function(value){return this._onceReturnValue=value,this},proto._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},proto._getEvents=function(){return this._events||(this._events={})},"function"==typeof define&&define.amd?define(function(){return EventEmitter}):"object"==typeof module&&module.exports?module.exports=EventEmitter:this.EventEmitter=EventEmitter}.call(this),function(root,factory){"function"==typeof define&&define.amd?define(["bigint","crypto","eventemitter"],function(BigInt,CryptoJS,EventEmitter){var root={BigInt:BigInt,CryptoJS:CryptoJS,EventEmitter:EventEmitter,OTR:{},DSA:{}};return factory.call(root)}):(root.OTR={},root.DSA={},"undefined"!=typeof root.BigInt&&factory.call(root))}(this,function(){return function(){"use strict";var root=this,CONST={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:" ",WHITESPACE_TAG_V2:" ",WHITESPACE_TAG_V3:" ",OTR_TAG:"?OTR",OTR_VERSION_1:"\x00",OTR_VERSION_2:"\x00",OTR_VERSION_3:"\x00",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};"undefined"!=typeof module&&module.exports?module.exports=CONST:root.OTR.CONST=CONST}.call(this),function(){"use strict";function intCompare(x,y){var z=~(x^y);return z&=z>>16,z&=z>>8,z&=z>>4,z&=z>>2,z&=z>>1,1&z}var CryptoJS,BigInt,root=this,HLP={};"undefined"!=typeof module&&module.exports?(module.exports=HLP={},CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js")):(root.OTR&&(root.OTR.HLP=HLP),root.DSA&&(root.DSA.HLP=HLP),CryptoJS=root.CryptoJS,BigInt=root.BigInt);var DTS={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},WRAPPER_BEGIN="?OTR",WRAPPER_END=".",TWO=BigInt.str2bigInt("2",10);HLP.debug=function(msg){this.debug&&"function"!=typeof this.debug&&"undefined"!=typeof console&&console.log(msg)},HLP.extend=function(child,parent){function Ctor(){this.constructor=child}for(var key in parent)Object.hasOwnProperty.call(parent,key)&&(child[key]=parent[key]);Ctor.prototype=parent.prototype,child.prototype=new Ctor,child.__super__=parent.prototype},HLP.compare=function(str1,str2){if(str1.length!==str2.length)return!1;for(var i=0,result=0;i<str1.length;i++)result|=str1[i].charCodeAt(0)^str2[i].charCodeAt(0);return intCompare(result,0)},HLP.randomExponent=function(){return BigInt.randBigInt(1536)},HLP.smpHash=function(version,fmpi,smpi){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(version,DTS.BYTE))),sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(fmpi))),smpi&&sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(smpi)));var hash=sha256.finalize();return HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},HLP.makeMac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA256(CryptoJS.enc.Latin1.parse(aesctr),pass);return HLP.mask(mac.toString(CryptoJS.enc.Latin1),0,160)},HLP.make1Mac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA1(CryptoJS.enc.Latin1.parse(aesctr),pass);return mac.toString(CryptoJS.enc.Latin1)},HLP.encryptAes=function(msg,c,iv){var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding},aesctr=CryptoJS.AES.encrypt(msg,CryptoJS.enc.Latin1.parse(c),opts),aesctr_decoded=CryptoJS.enc.Base64.parse(aesctr.toString());return CryptoJS.enc.Latin1.stringify(aesctr_decoded)},HLP.decryptAes=function(msg,c,iv){msg=CryptoJS.enc.Latin1.parse(msg);var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding};return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(msg),CryptoJS.enc.Latin1.parse(c),opts)},HLP.multPowMod=function(a,b,c,d,e){return BigInt.multMod(BigInt.powMod(a,b,e),BigInt.powMod(c,d,e),e)},HLP.ZKP=function(v,c,d,e){return BigInt.equals(c,HLP.smpHash(v,d,e))},HLP.GTOE=function(a,b){return BigInt.equals(a,b)||BigInt.greater(a,b)},HLP.between=function(x,a,b){return BigInt.greater(x,a)&&BigInt.greater(b,x)},HLP.checkGroup=function(g,N_MINUS_2){return HLP.GTOE(g,TWO)&&HLP.GTOE(N_MINUS_2,g)},HLP.h1=function(b,secbytes){var sha1=CryptoJS.algo.SHA1.create();return sha1.update(CryptoJS.enc.Latin1.parse(b)),sha1.update(CryptoJS.enc.Latin1.parse(secbytes)),sha1.finalize().toString(CryptoJS.enc.Latin1)},HLP.h2=function(b,secbytes){var sha256=CryptoJS.algo.SHA256.create();return sha256.update(CryptoJS.enc.Latin1.parse(b)),sha256.update(CryptoJS.enc.Latin1.parse(secbytes)),sha256.finalize().toString(CryptoJS.enc.Latin1)},HLP.mask=function(bytes,start,n){return bytes.substr(start/8,n/8)};var _toString=String.fromCharCode;HLP.packBytes=function(val,bytes){val=val.toString(16);for(var nex,res="";bytes>0;bytes--)nex=val.length?val.substr(-2,2):"0",val=val.substr(0,val.length-2),res=_toString(parseInt(nex,16))+res;return res},HLP.packINT=function(d){return HLP.packBytes(d,DTS.INT)},HLP.packCtr=function(d){return HLP.padCtr(HLP.packBytes(d,DTS.CTR))},HLP.padCtr=function(ctr){return ctr+"\x00\x00\x00\x00\x00\x00\x00\x00"},HLP.unpackCtr=function(d){return d=HLP.toByteArray(d.substring(0,8)),HLP.unpack(d)},HLP.unpack=function(arr){for(var val=0,i=0,len=arr.length;len>i;i++)val=256*val+arr[i];return val},HLP.packData=function(d){return HLP.packINT(d.length)+d},HLP.bits2bigInt=function(bits){return bits=HLP.toByteArray(bits),BigInt.ba2bigInt(bits)},HLP.packMPI=function(mpi){return HLP.packData(BigInt.bigInt2bits(BigInt.trim(mpi,0)))},HLP.packSHORT=function(short){return HLP.packBytes(short,DTS.SHORT)},HLP.unpackSHORT=function(short){return short=HLP.toByteArray(short),HLP.unpack(short)},HLP.packTLV=function(type,value){return HLP.packSHORT(type)+HLP.packSHORT(value.length)+value},HLP.readLen=function(msg){return msg=HLP.toByteArray(msg.substring(0,4)),HLP.unpack(msg)},HLP.readData=function(data){var n=HLP.unpack(data.splice(0,4));return[n,data]},HLP.readMPI=function(data){return data=HLP.toByteArray(data),data=HLP.readData(data),BigInt.ba2bigInt(data[1])},HLP.packMPIs=function(arr){return arr.reduce(function(prv,cur){return prv+HLP.packMPI(cur)},"")},HLP.unpackMPIs=function(num,mpis){for(var i=0,arr=[];num>i;i++)arr.push("MPI");return HLP.splitype(arr,mpis).map(function(m){return HLP.readMPI(m)})},HLP.wrapMsg=function(msg,fs,v3,our_it,their_it){msg=CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(msg)),msg=WRAPPER_BEGIN+":"+msg+WRAPPER_END;var its;if(v3&&(its="|",its+=HLP.readLen(our_it).toString(16),its+="|",its+=HLP.readLen(their_it).toString(16)),!fs)return[null,msg];var n=Math.ceil(msg.length/fs);if(n>65535)return["Too many fragments"];if(1==n)return[null,msg];var k,bi,ei,frag,mf,mfs=[];for(k=1;n>=k;k++)bi=(k-1)*fs,ei=k*fs,frag=msg.slice(bi,ei),mf=WRAPPER_BEGIN,v3&&(mf+=its),mf+=","+k+",",mf+=n+",",mf+=frag+",",mfs.push(mf);return[null,mfs]},HLP.splitype=function splitype(arr,msg){var data=[];return arr.forEach(function(a){var str;switch(a){case"PUBKEY":str=splitype(["SHORT","MPI","MPI","MPI","MPI"],msg).join("");break;case"DATA":case"MPI":str=msg.substring(0,HLP.readLen(msg)+4);break;default:str=msg.substring(0,DTS[a])}data.push(str),msg=msg.substring(str.length)}),data};var _bin2num=function(){for(var i=0,_bin2num={};256>i;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;256>i;++i)_bin2num[String.fromCharCode(63232+i)]=i;return _bin2num}();HLP.toByteArray=function(data){for(var rv=[],ary=data.split(""),i=-1,iz=ary.length,remain=iz%8;remain--;)++i,rv[i]=_bin2num[ary[i]];for(remain=iz>>3;remain--;)rv.push(_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]]);return rv}}.call(this),function(){"use strict";function timer(){var start=(new Date).getTime();return function(s){if(DEBUG&&"undefined"!=typeof console){var t=(new Date).getTime();console.log(s+": "+(t-start)),start=t}}}function makeRandom(min,max){var c=BigInt.randBigInt(BigInt.bitSize(max));return HLP.between(c,min,max)?c:makeRandom(min,max)}function isProbPrime(k,n){var i,B=3e4,l=BigInt.bitSize(k),primes=BigInt.primes;for(0===primes.length&&(primes=BigInt.findPrimes(B)),rpprb.length!=k.length&&(rpprb=BigInt.dup(k)),i=0;i<primes.length&&primes[i]<=B;i++)if(0===BigInt.modInt(k,primes[i])&&!BigInt.equalsInt(k,primes[i]))return 0;for(i=0;n>i;i++){for(BigInt.randBigInt_(rpprb,l,0);!BigInt.greater(k,rpprb);)BigInt.randBigInt_(rpprb,l,0);if(!BigInt.millerRabin(k,rpprb))return 0}return 1}function generatePrimes(bit_length){for(var q,p,rem,counter,t=timer(),repeat=bit_lengths[bit_length].repeat,N=bit_lengths[bit_length].N,LM1=BigInt.twoToThe(bit_length-1),bl4=4*bit_length,brk=!1;;)if(q=BigInt.randBigInt(N,1),q[0]|=1,isProbPrime(q,repeat)){for(t("q"),counter=0;bl4>counter;counter++)if(p=BigInt.randBigInt(bit_length,1),p[0]|=1,rem=BigInt.mod(p,q),rem=BigInt.sub(rem,ONE),p=BigInt.sub(p,rem),!BigInt.greater(LM1,p)&&isProbPrime(p,repeat)){t("p"),primes[bit_length]={p:p,q:q},brk=!0;break}if(brk)break}for(var g,h=BigInt.dup(TWO),pm1=BigInt.sub(p,ONE),e=BigInt.multMod(pm1,BigInt.inverseMod(q,p),p);;){g=BigInt.powMod(h,e,p);{if(!BigInt.equals(g,ONE))return primes[bit_length].g=g,void t("g");h=BigInt.add(h,ONE)}}throw new Error("Unreachable!")}function DSA(obj,opts){if(!(this instanceof DSA))return new DSA(obj,opts);if(opts=opts||{},obj){var self=this;return["p","q","g","y","x"].forEach(function(prop){self[prop]=obj[prop]}),void(this.type=obj.type||KEY_TYPE)}var bit_length=parseInt(opts.bit_length?opts.bit_length:1024,10);if(!bit_lengths[bit_length])throw new Error("Unsupported bit length.");primes[bit_length]||generatePrimes(bit_length),this.p=primes[bit_length].p,this.q=primes[bit_length].q,this.g=primes[bit_length].g,this.type=KEY_TYPE,this.x=makeRandom(ZERO,this.q),this.y=BigInt.powMod(this.g,this.x,this.p),opts.nocache&&(primes[bit_length]=null)}function tokenizeStr(str){var start,end;if(start=str.indexOf("("),end=str.lastIndexOf(")"),0>start||0>end)throw new Error("Malformed S-Expression");str=str.substring(start+1,end);var splt=str.search(/\s/),obj={type:str.substring(0,splt),val:[]};if(str=str.substring(splt+1,end),start=str.indexOf("("),0>start)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;len>i&&ss>es;i++)"("===str[i]&&ss++,")"===str[i]&&es++;obj.val.push(tokenizeStr(str.substring(start,++i))),str=str.substring(++i),start=str.indexOf("(")}return obj}function parseLibotr(obj){if(!obj.type)throw new Error("Parse error.");var o,val;return"privkeys"===obj.type?(o=[],obj.val.forEach(function(i){o.push(parseLibotr(i))}),o):(o={},obj.val.forEach(function(i){val=i.val[0],"string"==typeof val?0===val.indexOf("#")&&(val=val.substring(1,val.lastIndexOf("#")),val=BigInt.str2bigInt(val,16)):val=parseLibotr(i),o[i.type]=val}),o)}var CryptoJS,BigInt,Worker,WWPath,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=DSA,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),WWPath=require("path").join(__dirname,"/dsa-webworker.js"),HLP=require("./helpers.js")):(Object.keys(root.DSA).forEach(function(k){DSA[k]=root.DSA[k]}),root.DSA=DSA,CryptoJS=root.CryptoJS,BigInt=root.BigInt,Worker=root.Worker,WWPath="dsa-webworker.js",HLP=DSA.HLP);var ZERO=BigInt.str2bigInt("0",10),ONE=BigInt.str2bigInt("1",10),TWO=BigInt.str2bigInt("2",10),KEY_TYPE="\x00\x00",DEBUG=!1,rpprb=[],bit_lengths={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},primes={};DSA.prototype={constructor:DSA,packPublic:function(){var str=this.type;return str+=HLP.packMPI(this.p),str+=HLP.packMPI(this.q),str+=HLP.packMPI(this.g),str+=HLP.packMPI(this.y)},packPrivate:function(){var str=this.packPublic()+HLP.packMPI(this.x);return str=CryptoJS.enc.Latin1.parse(str),str.toString(CryptoJS.enc.Base64)},generateNonce:function(m){var priv=BigInt.bigInt2bits(BigInt.trim(this.x,0)),rand=BigInt.bigInt2bits(BigInt.randBigInt(256)),sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(priv)),sha256.update(m),sha256.update(CryptoJS.enc.Latin1.parse(rand));var hash=sha256.finalize();return hash=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1)),BigInt.rightShift_(hash,256-BigInt.bitSize(this.q)),HLP.between(hash,ZERO,this.q)?hash:this.generateNonce(m)},sign:function(m){m=CryptoJS.enc.Latin1.parse(m);for(var k,b=BigInt.str2bigInt(m.toString(CryptoJS.enc.Hex),16),r=ZERO,s=ZERO;BigInt.isZero(s)||BigInt.isZero(r);)k=this.generateNonce(m),r=BigInt.mod(BigInt.powMod(this.g,k,this.p),this.q),BigInt.isZero(r)||(s=BigInt.inverseMod(k,this.q),s=BigInt.mult(s,BigInt.add(b,BigInt.mult(this.x,r))),s=BigInt.mod(s,this.q));return[r,s]},fingerprint:function(){var pk=this.packPublic();return this.type===KEY_TYPE&&(pk=pk.substring(2)),pk=CryptoJS.enc.Latin1.parse(pk),CryptoJS.SHA1(pk).toString(CryptoJS.enc.Hex)}},DSA.parsePublic=function(str,priv){var fields=["SHORT","MPI","MPI","MPI","MPI"];priv&&fields.push("MPI"),str=HLP.splitype(fields,str);var obj={type:str[0],p:HLP.readMPI(str[1]),q:HLP.readMPI(str[2]),g:HLP.readMPI(str[3]),y:HLP.readMPI(str[4])};return priv&&(obj.x=HLP.readMPI(str[5])),new DSA(obj)},DSA.parsePrivate=function(str,libotr){return libotr?parseLibotr(tokenizeStr(str))[0]["private-key"].dsa:(str=CryptoJS.enc.Base64.parse(str),str=str.toString(CryptoJS.enc.Latin1),DSA.parsePublic(str,!0))},DSA.verify=function(key,m,r,s){if(!HLP.between(r,ZERO,key.q)||!HLP.between(s,ZERO,key.q))return!1;var hm=CryptoJS.enc.Latin1.parse(m);hm=BigInt.str2bigInt(hm.toString(CryptoJS.enc.Hex),16);var w=BigInt.inverseMod(s,key.q),u1=BigInt.multMod(hm,w,key.q),u2=BigInt.multMod(r,w,key.q);u1=BigInt.powMod(key.g,u1,key.p),u2=BigInt.powMod(key.y,u2,key.p);var v=BigInt.mod(BigInt.multMod(u1,u2,key.p),key.q);return BigInt.equals(v,r)},DSA.createInWebWorker=function(options,cb){var opts={path:WWPath,seed:BigInt.getSeed};options&&"object"==typeof options&&Object.keys(options).forEach(function(k){opts[k]=options[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker);var worker=new Worker(opts.path);worker.onmessage=function(e){var data=e.data;switch(data.type){case"debug":if(!DEBUG||"undefined"==typeof console)return;console.log(data.val);break;case"data":worker.terminate(),cb(DSA.parsePrivate(data.val));break;default:throw new Error("Unrecognized type.")}},worker.postMessage({seed:opts.seed(),imports:opts.imports,debug:DEBUG})}}.call(this),function(){"use strict";var CryptoJS,CONST,HLP,root=this,Parse={};"undefined"!=typeof module&&module.exports?(module.exports=Parse,CryptoJS=require("../vendor/crypto.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.Parse=Parse,CryptoJS=root.CryptoJS,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var tags={};tags[CONST.WHITESPACE_TAG_V2]=CONST.OTR_VERSION_2,tags[CONST.WHITESPACE_TAG_V3]=CONST.OTR_VERSION_3,Parse.parseMsg=function(otr,msg){var ver=[],start=msg.indexOf(CONST.OTR_TAG);if(!~start){if(this.initFragment(otr),ind=msg.indexOf(CONST.WHITESPACE_TAG),~ind){msg=msg.split(""),msg.splice(ind,16);for(var tag,len=msg.length;len>ind;)tag=msg.slice(ind,ind+8).join(""),Object.hasOwnProperty.call(tags,tag)?(msg.splice(ind,8),ver.push(tags[tag])):ind+=8;msg=msg.join("")}return{msg:msg,ver:ver}}var ind=start+CONST.OTR_TAG.length,com=msg[ind];if(","===com||"|"===com)return this.msgFragment(otr,msg.substring(ind+1),"|"===com);if(this.initFragment(otr),~["?","v"].indexOf(com)){"?"===msg[ind]&&(ver.push(CONST.OTR_VERSION_1),ind+=1);var vers={2:CONST.OTR_VERSION_2,3:CONST.OTR_VERSION_3},qs=msg.substring(ind+1),qi=qs.indexOf("?");return qi>=1&&(qs=qs.substring(0,qi).split(""),"v"===msg[ind]&&qs.forEach(function(q){Object.hasOwnProperty.call(vers,q)&&ver.push(vers[q])})),{cls:"query",ver:ver}}if(":"===com){ind+=1;var info=msg.substring(ind,ind+4);if(info.length<4)return{msg:msg};info=CryptoJS.enc.Base64.parse(info).toString(CryptoJS.enc.Latin1);var version=info.substring(0,2),type=info.substring(2);if(!otr["ALLOW_V"+HLP.unpackSHORT(version)])return{msg:msg};ind+=4;var end=msg.substring(ind).indexOf(".");if(!~end)return{msg:msg};msg=CryptoJS.enc.Base64.parse(msg.substring(ind,ind+end)),msg=CryptoJS.enc.Latin1.stringify(msg);var instance_tags;version===CONST.OTR_VERSION_3&&(instance_tags=msg.substring(0,8),msg=msg.substring(8));var cls;return~["","\n","",""].indexOf(type)?cls="ake":""===type&&(cls="data"),{version:version,type:type,msg:msg,cls:cls,instance_tags:instance_tags}}return" Error:"===msg.substring(ind,ind+7)?(otr.ERROR_START_AKE&&otr.sendQueryMsg(),{msg:msg.substring(ind+7),cls:"error"}):{msg:msg}},Parse.initFragment=function(otr){otr.fragment={s:"",j:0,k:0}},Parse.msgFragment=function(otr,msg,v3){if(msg=msg.split(","),v3){var its=msg.shift().split("|"),their_it=HLP.packINT(parseInt(its[0],16)),our_it=HLP.packINT(parseInt(its[1],16));if(otr.checkInstanceTags(their_it+our_it))return}if(!(msg.length<4||isNaN(parseInt(msg[0],10))||isNaN(parseInt(msg[1],10)))){var k=parseInt(msg[0],10),n=parseInt(msg[1],10);return msg=msg[2],k>n||0===n||0===k?void this.initFragment(otr):(1===k?(this.initFragment(otr),otr.fragment={k:1,n:n,s:msg}):n===otr.fragment.n&&k===otr.fragment.k+1?(otr.fragment.s+=msg,otr.fragment.k+=1):this.initFragment(otr),n===k?(msg=otr.fragment.s,this.initFragment(otr),this.parseMsg(otr,msg)):void 0)}}}.call(this),function(){"use strict";function hMac(gx,gy,pk,kid,m){var pass=CryptoJS.enc.Latin1.parse(m),hmac=CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,pass);return hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gx))),hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gy))),hmac.update(CryptoJS.enc.Latin1.parse(pk)),hmac.update(CryptoJS.enc.Latin1.parse(kid)),hmac.finalize().toString(CryptoJS.enc.Latin1)}function AKE(otr){if(!(this instanceof AKE))return new AKE(otr);this.otr=otr,this.our_dh=otr.our_old_dh,this.our_keyid=otr.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var self=this;["sendMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)})}var CryptoJS,BigInt,CONST,HLP,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=AKE,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),DSA=require("./dsa.js")):(root.OTR.AKE=AKE,CryptoJS=root.CryptoJS,BigInt=root.BigInt,CONST=root.OTR.CONST,HLP=root.OTR.HLP,DSA=root.DSA);var N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10));AKE.prototype={constructor:AKE,createKeys:function(g){var s=BigInt.powMod(g,this.our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.ssid=HLP.mask(HLP.h2("\x00",secbytes),0,64);var tmp=HLP.h2("",secbytes);this.c=HLP.mask(tmp,0,128),this.c_prime=HLP.mask(tmp,128,128),this.m1=HLP.h2("",secbytes),this.m2=HLP.h2("",secbytes),this.m1_prime=HLP.h2("",secbytes),this.m2_prime=HLP.h2("",secbytes)},verifySignMac:function(mac,aesctr,m2,c,their_y,our_dh_pk,m1,ctr){var vmac=HLP.makeMac(aesctr,m2);if(!HLP.compare(mac,vmac))return["MACs do not match."];var x=HLP.decryptAes(aesctr.substring(4),c,ctr);x=HLP.splitype(["PUBKEY","INT","SIG"],x.toString(CryptoJS.enc.Latin1));var m=hMac(their_y,our_dh_pk,x[0],x[1],m1),pub=DSA.parsePublic(x[0]),r=HLP.bits2bigInt(x[2].substring(0,20)),s=HLP.bits2bigInt(x[2].substring(20));return DSA.verify(pub,m,r,s)?[null,HLP.readLen(x[1]),pub]:["Cannot verify signature of m."]},makeM:function(their_y,m1,c,m2){var pk=this.otr.priv.packPublic(),kid=HLP.packINT(this.our_keyid),m=hMac(this.our_dh.publicKey,their_y,pk,kid,m1);m=this.otr.priv.sign(m);var msg=pk+kid;msg+=BigInt.bigInt2bits(m[0],20),msg+=BigInt.bigInt2bits(m[1],20),msg=CryptoJS.enc.Latin1.parse(msg);var aesctr=HLP.packData(HLP.encryptAes(msg,c,HLP.packCtr(0))),mac=HLP.makeMac(aesctr,m2);return aesctr+mac},akeSuccess:function(version){return HLP.debug.call(this.otr,"success"),BigInt.equals(this.their_y,this.our_dh.publicKey)?this.otr.error("equal keys - we have a problem."):(this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&BigInt.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&BigInt.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=version,this.otr.authstate=CONST.AUTHSTATE_NONE,this.otr.msgstate=CONST.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[CONST.STATUS_AKE_SUCCESS]),void this.otr.sendStored())},handleAKE:function(msg){var send,vsm,type,version=msg.version;switch(msg.type){case"":if(HLP.debug.call(this.otr,"d-h key message"),msg=HLP.splitype(["DATA","DATA"],msg.msg),this.otr.authstate===CONST.AUTHSTATE_AWAITING_DHKEY){var ourHash=HLP.readMPI(this.myhashed),theirHash=HLP.readMPI(msg[1]);if(BigInt.greater(ourHash,theirHash)){type="",send=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=CONST.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===CONST.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=CONST.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=msg[0].substring(4),this.hashed=msg[1].substring(4),type="\n",send=HLP.packMPI(this.our_dh.publicKey);break;case"\n":if(HLP.debug.call(this.otr,"reveal signature message"),msg=HLP.splitype(["MPI"],msg.msg),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;if(!BigInt.equals(this.their_y,HLP.readMPI(msg[0])))return}if(this.otr.authstate=CONST.AUTHSTATE_AWAITING_SIG,this.their_y=HLP.readMPI(msg[0]),!HLP.checkGroup(this.their_y,N_MINUS_2))return this.otr.error("Illegal g^y.");this.createKeys(this.their_y),type="",send=HLP.packMPI(this.r),send+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"":if(HLP.debug.call(this.otr,"signature message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_REVEALSIG)return;msg=HLP.splitype(["DATA","DATA","MAC"],msg.msg),this.r=HLP.readMPI(msg[0]);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key);var gxmpi=HLP.decryptAes(this.encrypted,key,HLP.packCtr(0));gxmpi=gxmpi.toString(CryptoJS.enc.Latin1),this.their_y=HLP.readMPI(gxmpi);var hash=CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi));return HLP.compare(this.hashed,hash.toString(CryptoJS.enc.Latin1))?HLP.checkGroup(this.their_y,N_MINUS_2)?(this.createKeys(this.their_y),vsm=this.verifySignMac(msg[2],msg[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],send=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(version,"",send),void this.akeSuccess(version))):this.otr.error("Illegal g^x."):this.otr.error("Hashed g^x does not match.");case"":if(HLP.debug.call(this.otr,"data message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;return msg=HLP.splitype(["DATA","MAC"],msg.msg),vsm=this.verifySignMac(msg[1],msg[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,void this.akeSuccess(version));default:return}this.sendMsg(version,type,send)},sendMsg:function(version,type,msg){var send=version+type,v3=version===CONST.OTR_VERSION_3;return v3&&(HLP.debug.call(this.otr,"instance tags"),send+=this.otr.our_instance_tag,send+=this.otr.their_instance_tag),send+=msg,send=HLP.wrapMsg(send,this.otr.fragment_size,v3,this.otr.our_instance_tag,this.otr.their_instance_tag),send[0]?this.otr.error(send[0]):void this.otr.io(send[1])},initiateAKE:function(version){HLP.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[CONST.STATUS_AKE_INIT]),this.otr.authstate=CONST.AUTHSTATE_AWAITING_DHKEY;var gxmpi=HLP.packMPI(this.our_dh.publicKey);gxmpi=CryptoJS.enc.Latin1.parse(gxmpi),this.r=BigInt.randBigInt(128);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key),this.myhashed=CryptoJS.SHA256(gxmpi),this.myhashed=HLP.packData(this.myhashed.toString(CryptoJS.enc.Latin1)),this.dhcommit=HLP.packData(HLP.encryptAes(gxmpi,key,HLP.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(version,"",this.dhcommit)}}}.call(this),function(){"use strict";function SM(reqs){return this instanceof SM?(this.version=1,this.our_fp=reqs.our_fp,this.their_fp=reqs.their_fp,this.ssid=reqs.ssid,this.debug=!!reqs.debug,void this.init()):new SM(reqs)}var CryptoJS,BigInt,EventEmitter,CONST,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=SM,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.SM=SM,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10)),Q=BigInt.sub(N,BigInt.str2bigInt("1",10));BigInt.divInt_(Q,2),HLP.extend(SM,EventEmitter),SM.prototype.init=function(){this.smpstate=CONST.SMPSTATE_EXPECT1,this.secret=null},SM.prototype.makeSecret=function(our,secret){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(this.version,1))),sha256.update(CryptoJS.enc.Hex.parse(our?this.our_fp:this.their_fp)),sha256.update(CryptoJS.enc.Hex.parse(our?this.their_fp:this.our_fp)),sha256.update(CryptoJS.enc.Latin1.parse(this.ssid)),sha256.update(CryptoJS.enc.Latin1.parse(secret));var hash=sha256.finalize();this.secret=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},SM.prototype.makeG2s=function(){this.a2=HLP.randomExponent(),this.a3=HLP.randomExponent(),this.g2a=BigInt.powMod(G,this.a2,N),this.g3a=BigInt.powMod(G,this.a3,N),HLP.checkGroup(this.g2a,N_MINUS_2)&&HLP.checkGroup(this.g3a,N_MINUS_2)||this.makeG2s()},SM.prototype.computeGs=function(g2a,g3a){this.g2=BigInt.powMod(g2a,this.a2,N),this.g3=BigInt.powMod(g3a,this.a3,N)},SM.prototype.computePQ=function(r){this.p=BigInt.powMod(this.g3,r,N),this.q=HLP.multPowMod(G,r,this.g2,this.secret,N)},SM.prototype.computeR=function(){this.r=BigInt.powMod(this.QoQ,this.a3,N)},SM.prototype.computeRab=function(r){return BigInt.powMod(r,this.a3,N)},SM.prototype.computeC=function(v,r){return HLP.smpHash(v,BigInt.powMod(G,r,N))},SM.prototype.computeD=function(r,a,c){return BigInt.subMod(r,BigInt.multMod(a,c,Q),Q)},SM.prototype.handleSM=function(msg){var send,r2,r3,r7,t1,t2,t3,t4,rab,tmp2,cR,d7,ms,trust,expectStates={2:CONST.SMPSTATE_EXPECT1,3:CONST.SMPSTATE_EXPECT2,4:CONST.SMPSTATE_EXPECT3,5:CONST.SMPSTATE_EXPECT4,7:CONST.SMPSTATE_EXPECT1};if(6===msg.type)return this.init(),void this.trigger("abort");if(this.smpstate!==expectStates[msg.type])return this.abort();switch(this.smpstate){case CONST.SMPSTATE_EXPECT1:HLP.debug.call(this,"smp tlv 2");var ind,question;return 7===msg.type&&(ind=msg.msg.indexOf("\x00"),question=msg.msg.substring(0,ind),msg.msg=msg.msg.substring(ind+1)),ms=HLP.readLen(msg.msg.substr(0,4)),6!==ms?this.abort():(msg=HLP.unpackMPIs(6,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.ZKP(1,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N))&&HLP.ZKP(2,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N))?(this.g3ao=msg[3],this.makeG2s(),r2=HLP.randomExponent(),r3=HLP.randomExponent(),this.c2=this.computeC(3,r2),this.c3=this.computeC(4,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.computeGs(msg[0],msg[3]),this.smpstate=CONST.SMPSTATE_EXPECT0,question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());
-case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(msg.msg.substr(0,4)),11!==ms)return this.abort();if(msg=HLP.unpackMPIs(11,msg.msg.substring(4)),!(HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.checkGroup(msg[6],N_MINUS_2)&&HLP.checkGroup(msg[7],N_MINUS_2)))return this.abort();if(!HLP.ZKP(3,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N)))return this.abort();if(!HLP.ZKP(4,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N)))return this.abort();if(this.g3ao=msg[3],this.computeGs(msg[0],msg[3]),t1=HLP.multPowMod(this.g3,msg[9],msg[6],msg[8],N),t2=HLP.multPowMod(G,msg[9],this.g2,msg[10],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[7],msg[8],N),N),!HLP.ZKP(5,msg[8],t1,t2))return this.abort();var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(6,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.QoQ=BigInt.divMod(this.q,msg[7],N),this.PoP=BigInt.divMod(this.p,msg[6],N),this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(7,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),this.smpstate=CONST.SMPSTATE_EXPECT4,send=HLP.packINT(8)+HLP.packMPIs([this.p,this.q,cP,d5,d6,this.r,cR,d7]),send=HLP.packTLV(4,send);break;case CONST.SMPSTATE_EXPECT3:if(HLP.debug.call(this,"smp tlv 4"),ms=HLP.readLen(msg.msg.substr(0,4)),8!==ms)return this.abort();if(msg=HLP.unpackMPIs(8,msg.msg.substring(4)),!HLP.checkGroup(msg[0],N_MINUS_2)||!HLP.checkGroup(msg[1],N_MINUS_2)||!HLP.checkGroup(msg[5],N_MINUS_2))return this.abort();if(t1=HLP.multPowMod(this.g3,msg[3],msg[0],msg[2],N),t2=HLP.multPowMod(G,msg[3],this.g2,msg[4],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[1],msg[2],N),N),!HLP.ZKP(6,msg[2],t1,t2))return this.abort();if(t3=HLP.multPowMod(G,msg[7],this.g3ao,msg[6],N),this.QoQ=BigInt.divMod(msg[1],this.q,N),t4=HLP.multPowMod(this.QoQ,msg[7],msg[5],msg[6],N),!HLP.ZKP(7,msg[6],t3,t4))return this.abort();this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(8,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),send=HLP.packINT(3)+HLP.packMPIs([this.r,cR,d7]),send=HLP.packTLV(5,send),rab=this.computeRab(msg[5]),trust=!!BigInt.equals(rab,BigInt.divMod(msg[0],this.p,N)),this.trigger("trust",[trust,"answered"]),this.init();break;case CONST.SMPSTATE_EXPECT4:return HLP.debug.call(this,"smp tlv 5"),ms=HLP.readLen(msg.msg.substr(0,4)),3!==ms?this.abort():(msg=HLP.unpackMPIs(3,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)?(t3=HLP.multPowMod(G,msg[2],this.g3ao,msg[1],N),t4=HLP.multPowMod(this.QoQ,msg[2],msg[0],msg[1],N),HLP.ZKP(8,msg[1],t3,t4)?(rab=this.computeRab(msg[0]),trust=!!BigInt.equals(rab,this.PoP),this.trigger("trust",[trust,"asked"]),void this.init()):this.abort()):this.abort())}this.sendMsg(send)},SM.prototype.sendMsg=function(send){this.trigger("send",[this.ssid,"\x00"+send])},SM.prototype.rcvSecret=function(secret,question){HLP.debug.call(this,"receive secret");var fn,our=!1;this.smpstate===CONST.SMPSTATE_EXPECT0?fn=this.answer:(fn=this.initiate,our=!0),this.makeSecret(our,secret),fn.call(this,question)},SM.prototype.answer=function(){HLP.debug.call(this,"smp answer");var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(5,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.smpstate=CONST.SMPSTATE_EXPECT3;var send=HLP.packINT(11)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,cP,d5,d6]);this.sendMsg(HLP.packTLV(3,send))},SM.prototype.initiate=function(question){HLP.debug.call(this,"smp initiate"),this.smpstate!==CONST.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var r2=HLP.randomExponent(),r3=HLP.randomExponent();this.c2=this.computeC(1,r2),this.c3=this.computeC(2,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.smpstate=CONST.SMPSTATE_EXPECT2;var send="",type=2;question&&(send+=question,send+="\x00",type=7),send+=HLP.packINT(6)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(HLP.packTLV(type,send))},SM.prototype.abort=function(){this.init(),this.sendMsg(HLP.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function OTRCB(cb){this.cb=cb}function OTR(options){if(!(this instanceof OTR))return new OTR(options);if(options=options||{},options.priv&&!(options.priv instanceof DSA))throw new Error("Requires long-lived DSA key.");if(this.priv=options.priv?options.priv:new DSA,this.fragment_size=options.fragment_size||0,this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");if(this.send_interval=options.send_interval||0,this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=options.instance_tag||OTR.makeInstanceTag(),this.debug=!!options.debug,this.smw=options.smw,this.init();var self=this;["sendMsg","receiveMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)}),EventEmitter.call(this)}var CryptoJS,BigInt,EventEmitter,Worker,SMWPath,CONST,HLP,Parse,AKE,SM,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=OTR,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),SMWPath=require("path").join(__dirname,"/sm-webworker.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),Parse=require("./parse.js"),AKE=require("./ake.js"),SM=require("./sm.js"),DSA=require("./dsa.js"),OTR.CONST=CONST):(Object.keys(root.OTR).forEach(function(k){OTR[k]=root.OTR[k]}),root.OTR=OTR,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,Worker=root.Worker,SMWPath="sm-webworker.js",CONST=OTR.CONST,HLP=OTR.HLP,Parse=OTR.Parse,AKE=OTR.AKE,SM=OTR.SM,DSA=root.DSA);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),MAX_INT=Math.pow(2,53)-1,MAX_UINT=Math.pow(2,31)-1;HLP.extend(OTR,EventEmitter),OTR.prototype.init=function(){this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.authstate=CONST.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,Parse.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\x00\x00\x00\x00",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},OTR.prototype._akeInit=function(){this.ake=new AKE(this),this.transmittedRS=!1,this.ssid=null},OTR.prototype._SMW=function(otr,reqs){this.otr=otr;var opts={path:SMWPath,seed:BigInt.getSeed};"object"==typeof otr.smw&&Object.keys(otr.smw).forEach(function(k){opts[k]=otr.smw[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker),this.worker=new Worker(opts.path);var self=this;this.worker.onmessage=function(e){var d=e.data;d&&self.trigger(d.method,d.args)},this.worker.postMessage({type:"seed",seed:opts.seed(),imports:opts.imports}),this.worker.postMessage({type:"init",reqs:reqs})},HLP.extend(OTR.prototype._SMW,EventEmitter),["handleSM","rcvSecret","abort"].forEach(function(m){OTR.prototype._SMW.prototype[m]=function(){this.worker.postMessage({type:"method",method:m,args:Array.prototype.slice.call(arguments,0)})}}),OTR.prototype._smInit=function(){var reqs={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,reqs)):this.sm=new SM(reqs);var self=this;["trust","abort","question"].forEach(function(e){self.sm.on(e,function(){self.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(ssid,send){self.ssid===ssid&&(send=self.prepareMsg(send),self.io(send))})},OTR.prototype.io=function(msg,meta){msg=[].concat(msg).map(function(m,i,arr){var obj={msg:m};return meta instanceof OTRCB&&i!==arr.length-1||(obj.meta=meta),obj}),this.outgoing=this.outgoing.concat(msg);var self=this;!function send(first){if(!first){if(!self.outgoing.length)return;var elem=self.outgoing.shift(),cb=null;elem.meta instanceof OTRCB&&(cb=elem.meta.cb,elem.meta=null),self.trigger("io",[elem.msg,elem.meta]),cb&&cb()}setTimeout(send,first?0:self.send_interval)}(!0)},OTR.prototype.dh=function(){var keys={privateKey:BigInt.randBigInt(320)};return keys.publicKey=BigInt.powMod(G,keys.privateKey,N),keys},OTR.prototype.DHSession=function DHSession(our_dh,their_y){if(!(this instanceof DHSession))return new DHSession(our_dh,their_y);var s=BigInt.powMod(their_y,our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.id=HLP.mask(HLP.h2("\x00",secbytes),0,64);var sq=BigInt.greater(our_dh.publicKey,their_y),sendbyte=sq?"":"",rcvbyte=sq?"":"";this.sendenc=HLP.mask(HLP.h1(sendbyte,secbytes),0,128),this.sendmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(CryptoJS.enc.Latin1),this.rcvenc=HLP.mask(HLP.h1(rcvbyte,secbytes),0,128),this.rcvmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(CryptoJS.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=HLP.h2("ÿ",secbytes),this.send_counter=0,this.rcv_counter=0},OTR.prototype.rotateOurKeys=function(){var self=this;this.sessKeys[1].forEach(function(sk){sk&&sk.rcvmacused&&self.oldMacKeys.push(sk.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},OTR.prototype.rotateTheirKeys=function(their_y){this.their_keyid+=1;var self=this;this.sessKeys.forEach(function(sk){sk[1]&&sk[1].rcvmacused&&self.oldMacKeys.push(sk[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=their_y,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},OTR.prototype.prepareMsg=function(msg,esk){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||0===this.their_keyid)return this.notify("Not ready to encrypt.");var sessKeys=this.sessKeys[1][0];if(sessKeys.send_counter>=MAX_INT)return this.notify("Should have rekeyed by now.");sessKeys.send_counter+=1;var ctr=HLP.packCtr(sessKeys.send_counter),send=this.ake.otr_version+"",v3=this.ake.otr_version===CONST.OTR_VERSION_3;if(v3&&(send+=this.our_instance_tag,send+=this.their_instance_tag),send+="\x00",send+=HLP.packINT(this.our_keyid-1),send+=HLP.packINT(this.their_keyid),send+=HLP.packMPI(this.our_dh.publicKey),send+=ctr.substring(0,8),Math.ceil(msg.length/8)>=MAX_UINT)return this.notify("Message is too long.");var aes=HLP.encryptAes(CryptoJS.enc.Latin1.parse(msg),sessKeys.sendenc,ctr);return send+=HLP.packData(aes),send+=HLP.make1Mac(send,sessKeys.sendmac),send+=HLP.packData(this.oldMacKeys.splice(0).join("")),send=HLP.wrapMsg(send,this.fragment_size,v3,this.our_instance_tag,this.their_instance_tag),send[0]?this.notify(send[0]):(esk&&this.trigger("file",["send",sessKeys.extra_symkey,esk]),send[1])},OTR.prototype.handleDataMsg=function(msg){var vt=msg.version+msg.type;this.ake.otr_version===CONST.OTR_VERSION_3&&(vt+=msg.instance_tags);var types=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];msg=HLP.splitype(types,msg.msg);var ign=""===msg[0];if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||8!==msg.length)return void(ign||this.error("Received an unreadable encrypted message."));var our_keyid=this.our_keyid-HLP.readLen(msg[2]),their_keyid=this.their_keyid-HLP.readLen(msg[1]);if(0>our_keyid||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(0>their_keyid||their_keyid>1)return void(ign||this.error("Not of your latest keys."));var their_y=their_keyid?this.their_old_y:this.their_y;if(1===their_keyid&&!their_y)return void(ign||this.error("Do not have that key."));var sessKeys=this.sessKeys[our_keyid][their_keyid],ctr=HLP.unpackCtr(msg[4]);if(ctr<=sessKeys.rcv_counter)return void(ign||this.error("Counter in message is not larger."));sessKeys.rcv_counter=ctr,vt+=msg.slice(0,6).join("");var vmac=HLP.make1Mac(vt,sessKeys.rcvmac);if(!HLP.compare(msg[6],vmac))return void(ign||this.error("MACs do not match."));sessKeys.rcvmacused=!0;var out=HLP.decryptAes(msg[5].substring(4),sessKeys.rcvenc,HLP.padCtr(msg[4]));out=out.toString(CryptoJS.enc.Latin1),our_keyid||this.rotateOurKeys(),their_keyid||this.rotateTheirKeys(HLP.readMPI(msg[3]));var ind=out.indexOf("\x00");return~ind&&(this.handleTLVs(out.substring(ind+1),sessKeys),out=out.substring(0,ind)),out=CryptoJS.enc.Latin1.parse(out),out.toString(CryptoJS.enc.Utf8)},OTR.prototype.handleTLVs=function(tlvs,sessKeys){for(var type,len,msg;tlvs.length&&(type=HLP.unpackSHORT(tlvs.substr(0,2)),len=HLP.unpackSHORT(tlvs.substr(2,2)),msg=tlvs.substr(4,len),!(msg.length<len));){switch(type){case 1:this.msgstate=CONST.MSGSTATE_FINISHED,this.trigger("status",[CONST.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return void(this.sm&&this.sm.abort());this.sm||this._smInit(),this.sm.handleSM({msg:msg,type:type});break;case 8:msg=msg.substring(4),msg=CryptoJS.enc.Latin1.parse(msg),msg=msg.toString(CryptoJS.enc.Utf8),this.trigger("file",["receive",sessKeys.extra_symkey,msg])}tlvs=tlvs.substring(4+len)}},OTR.prototype.smpSecret=function(secret,question){return this.msgstate!==CONST.MSGSTATE_ENCRYPTED?this.notify("Must be encrypted for SMP."):"string"!=typeof secret||secret.length<1?this.notify("Secret is required."):(this.sm||this._smInit(),secret=CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1),question&&(question=CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)),void this.sm.rcvSecret(secret,question))},OTR.prototype.sendQueryMsg=function(){var versions={},msg=CONST.OTR_TAG;this.ALLOW_V2&&(versions[2]=!0),this.ALLOW_V3&&(versions[3]=!0);var vs=Object.keys(versions);vs.length&&(msg+="v",vs.forEach(function(v){"1"!==v&&(msg+=v)}),msg+="?"),this.io(msg),this.trigger("status",[CONST.STATUS_SEND_QUERY])},OTR.prototype.sendMsg=function(msg,meta){switch((this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&(msg=CryptoJS.enc.Utf8.parse(msg),msg=msg.toString(CryptoJS.enc.Latin1)),this.msgstate){case CONST.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION)return this.storedMgs.push({msg:msg,meta:meta}),void this.sendQueryMsg();this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(msg+=CONST.WHITESPACE_TAG,this.ALLOW_V3&&(msg+=CONST.WHITESPACE_TAG_V3),this.ALLOW_V2&&(msg+=CONST.WHITESPACE_TAG_V2));break;case CONST.MSGSTATE_FINISHED:return this.storedMgs.push({msg:msg,meta:meta}),void this.notify("Message cannot be sent at this time.","warn");case CONST.MSGSTATE_ENCRYPTED:msg=this.prepareMsg(msg);break;default:throw new Error("Unknown message state.")}msg&&this.io(msg,meta)},OTR.prototype.receiveMsg=function(msg,meta){if(msg=Parse.parseMsg(this,msg)){switch(msg.cls){case"error":return void this.notify(msg.msg);case"ake":return msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags)?void this.notify("Received a message intended for a different session.","warn"):void this.ake.handleAKE(msg);case"data":if(msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags))return void this.notify("Received a message intended for a different session.","warn");msg.msg=this.handleDataMsg(msg),msg.encrypted=!0;break;case"query":this.msgstate===CONST.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(msg);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&this.notify("Received an unencrypted message.","warn"),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&msg.ver.length>0&&this.doAKE(msg)}msg.msg&&this.trigger("ui",[msg.msg,!!msg.encrypted,meta])}},OTR.prototype.checkInstanceTags=function(it){var their_it=HLP.readLen(it.substr(0,4)),our_it=HLP.readLen(it.substr(4,4));if(our_it&&our_it!==HLP.readLen(this.our_instance_tag))return!0;if(HLP.readLen(this.their_instance_tag)){if(HLP.readLen(this.their_instance_tag)!==their_it)return!0}else{if(100>their_it)return!0;this.their_instance_tag=HLP.packINT(their_it)}},OTR.prototype.doAKE=function(msg){this.ALLOW_V3&&~msg.ver.indexOf(CONST.OTR_VERSION_3)?this.ake.initiateAKE(CONST.OTR_VERSION_3):this.ALLOW_V2&&~msg.ver.indexOf(CONST.OTR_VERSION_2)?this.ake.initiateAKE(CONST.OTR_VERSION_2):this.notify("OTR conversation requested, but no compatible protocol version found.","warn")},OTR.prototype.error=function(err){this.debug||(err="An OTR error has occurred."),this.io("?OTR Error:"+err),this.notify(err)},OTR.prototype.notify=function(err,severity){this.trigger("error",[err,severity||"error"])},OTR.prototype.sendStored=function(){var self=this;this.storedMgs.splice(0).forEach(function(elem){var msg=self.prepareMsg(elem.msg);self.io(msg,elem.meta)})},OTR.prototype.sendFile=function(filename){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return this.notify("Not ready to encrypt.");if(this.ake.otr_version!==CONST.OTR_VERSION_3)return this.notify("Protocol v3 required.");if(!filename)return this.notify("Please specify a filename.");var l1name=CryptoJS.enc.Utf8.parse(filename);if(l1name=l1name.toString(CryptoJS.enc.Latin1),l1name.length>=65532)return this.notify("Filename is too long.");var msg="\x00";msg+="\x00\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\x00\x00\x00",msg+=l1name,msg=this.prepareMsg(msg,filename),this.io(msg)},OTR.prototype.endOtr=function(cb){this.msgstate===CONST.MSGSTATE_ENCRYPTED?("function"==typeof cb&&(cb=new OTRCB(cb)),this.sendMsg("\x00\x00\x00\x00",cb),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)):"function"==typeof cb&&setTimeout(cb,0),this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[CONST.STATUS_END_OTR])},OTR.makeInstanceTag=function(){var num=BigInt.randBigInt(32);return BigInt.greater(BigInt.str2bigInt("100",16),num)?OTR.makeInstanceTag():HLP.packINT(parseInt(BigInt.bigInt2str(num,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),/*!
+function(){"use strict";function EventEmitter(){}function indexOfListener(listeners,listener){for(var i=listeners.length;i--;)if(listeners[i].listener===listener)return i;return-1}function alias(name){return function(){return this[name].apply(this,arguments)}}var proto=EventEmitter.prototype;proto.getListeners=function(evt){var response,key,events=this._getEvents();if("object"==typeof evt){response={};for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&(response[key]=events[key])}else response=events[evt]||(events[evt]=[]);return response},proto.flattenListeners=function(listeners){var i,flatListeners=[];for(i=0;i<listeners.length;i+=1)flatListeners.push(listeners[i].listener);return flatListeners},proto.getListenersAsObject=function(evt){var response,listeners=this.getListeners(evt);return listeners instanceof Array&&(response={},response[evt]=listeners),response||listeners},proto.addListener=function(evt,listener){var key,listeners=this.getListenersAsObject(evt),listenerIsWrapped="object"==typeof listener;for(key in listeners)listeners.hasOwnProperty(key)&&-1===indexOfListener(listeners[key],listener)&&listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:!1});return this},proto.on=alias("addListener"),proto.addOnceListener=function(evt,listener){return this.addListener(evt,{listener:listener,once:!0})},proto.once=alias("addOnceListener"),proto.defineEvent=function(evt){return this.getListeners(evt),this},proto.defineEvents=function(evts){for(var i=0;i<evts.length;i+=1)this.defineEvent(evts[i]);return this},proto.removeListener=function(evt,listener){var index,key,listeners=this.getListenersAsObject(evt);for(key in listeners)listeners.hasOwnProperty(key)&&(index=indexOfListener(listeners[key],listener),-1!==index&&listeners[key].splice(index,1));return this},proto.off=alias("removeListener"),proto.addListeners=function(evt,listeners){return this.manipulateListeners(!1,evt,listeners)},proto.removeListeners=function(evt,listeners){return this.manipulateListeners(!0,evt,listeners)},proto.manipulateListeners=function(remove,evt,listeners){var i,value,single=remove?this.removeListener:this.addListener,multiple=remove?this.removeListeners:this.addListeners;if("object"!=typeof evt||evt instanceof RegExp)for(i=listeners.length;i--;)single.call(this,evt,listeners[i]);else for(i in evt)evt.hasOwnProperty(i)&&(value=evt[i])&&("function"==typeof value?single.call(this,i,value):multiple.call(this,i,value));return this},proto.removeEvent=function(evt){var key,type=typeof evt,events=this._getEvents();if("string"===type)delete events[evt];else if("object"===type)for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&delete events[key];else delete this._events;return this},proto.emitEvent=function(evt,args){var listener,i,key,response,listeners=this.getListenersAsObject(evt);for(key in listeners)if(listeners.hasOwnProperty(key))for(i=listeners[key].length;i--;)listener=listeners[key][i],listener.once===!0&&this.removeListener(evt,listener.listener),response=listener.listener.apply(this,args||[]),response===this._getOnceReturnValue()&&this.removeListener(evt,listener.listener);return this},proto.trigger=alias("emitEvent"),proto.emit=function(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args)},proto.setOnceReturnValue=function(value){return this._onceReturnValue=value,this},proto._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},proto._getEvents=function(){return this._events||(this._events={})},"function"==typeof define&&define.amd?define(function(){return EventEmitter}):"object"==typeof module&&module.exports?module.exports=EventEmitter:this.EventEmitter=EventEmitter}.call(this),function(root,factory){"function"==typeof define&&define.amd?define(["bigint","crypto","eventemitter"],function(BigInt,CryptoJS,EventEmitter){var root={BigInt:BigInt,CryptoJS:CryptoJS,EventEmitter:EventEmitter,OTR:{},DSA:{}};return factory.call(root)}):(root.OTR={},root.DSA={},"undefined"!=typeof root.BigInt&&factory.call(root))}(this,function(){return function(){"use strict";var root=this,CONST={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:" ",WHITESPACE_TAG_V2:" ",WHITESPACE_TAG_V3:" ",OTR_TAG:"?OTR",OTR_VERSION_1:"\x00",OTR_VERSION_2:"\x00",OTR_VERSION_3:"\x00",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};"undefined"!=typeof module&&module.exports?module.exports=CONST:root.OTR.CONST=CONST}.call(this),function(){"use strict";function intCompare(x,y){var z=~(x^y);return z&=z>>16,z&=z>>8,z&=z>>4,z&=z>>2,z&=z>>1,1&z}var CryptoJS,BigInt,root=this,HLP={};"undefined"!=typeof module&&module.exports?(module.exports=HLP={},CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js")):(root.OTR&&(root.OTR.HLP=HLP),root.DSA&&(root.DSA.HLP=HLP),CryptoJS=root.CryptoJS,BigInt=root.BigInt);var DTS={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},WRAPPER_BEGIN="?OTR",WRAPPER_END=".",TWO=BigInt.str2bigInt("2",10);HLP.debug=function(msg){this.debug&&"function"!=typeof this.debug&&"undefined"!=typeof console&&console.log(msg)},HLP.extend=function(child,parent){function Ctor(){this.constructor=child}for(var key in parent)Object.hasOwnProperty.call(parent,key)&&(child[key]=parent[key]);Ctor.prototype=parent.prototype,child.prototype=new Ctor,child.__super__=parent.prototype},HLP.compare=function(str1,str2){if(str1.length!==str2.length)return!1;for(var i=0,result=0;i<str1.length;i++)result|=str1[i].charCodeAt(0)^str2[i].charCodeAt(0);return intCompare(result,0)},HLP.randomExponent=function(){return BigInt.randBigInt(1536)},HLP.smpHash=function(version,fmpi,smpi){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(version,DTS.BYTE))),sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(fmpi))),smpi&&sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(smpi)));var hash=sha256.finalize();return HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},HLP.makeMac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA256(CryptoJS.enc.Latin1.parse(aesctr),pass);return HLP.mask(mac.toString(CryptoJS.enc.Latin1),0,160)},HLP.make1Mac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA1(CryptoJS.enc.Latin1.parse(aesctr),pass);return mac.toString(CryptoJS.enc.Latin1)},HLP.encryptAes=function(msg,c,iv){var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding},aesctr=CryptoJS.AES.encrypt(msg,CryptoJS.enc.Latin1.parse(c),opts),aesctr_decoded=CryptoJS.enc.Base64.parse(aesctr.toString());return CryptoJS.enc.Latin1.stringify(aesctr_decoded)},HLP.decryptAes=function(msg,c,iv){msg=CryptoJS.enc.Latin1.parse(msg);var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding};return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(msg),CryptoJS.enc.Latin1.parse(c),opts)},HLP.multPowMod=function(a,b,c,d,e){return BigInt.multMod(BigInt.powMod(a,b,e),BigInt.powMod(c,d,e),e)},HLP.ZKP=function(v,c,d,e){return BigInt.equals(c,HLP.smpHash(v,d,e))},HLP.GTOE=function(a,b){return BigInt.equals(a,b)||BigInt.greater(a,b)},HLP.between=function(x,a,b){return BigInt.greater(x,a)&&BigInt.greater(b,x)},HLP.checkGroup=function(g,N_MINUS_2){return HLP.GTOE(g,TWO)&&HLP.GTOE(N_MINUS_2,g)},HLP.h1=function(b,secbytes){var sha1=CryptoJS.algo.SHA1.create();return sha1.update(CryptoJS.enc.Latin1.parse(b)),sha1.update(CryptoJS.enc.Latin1.parse(secbytes)),sha1.finalize().toString(CryptoJS.enc.Latin1)},HLP.h2=function(b,secbytes){var sha256=CryptoJS.algo.SHA256.create();return sha256.update(CryptoJS.enc.Latin1.parse(b)),sha256.update(CryptoJS.enc.Latin1.parse(secbytes)),sha256.finalize().toString(CryptoJS.enc.Latin1)},HLP.mask=function(bytes,start,n){return bytes.substr(start/8,n/8)};var _toString=String.fromCharCode;HLP.packBytes=function(val,bytes){val=val.toString(16);for(var nex,res="";bytes>0;bytes--)nex=val.length?val.substr(-2,2):"0",val=val.substr(0,val.length-2),res=_toString(parseInt(nex,16))+res;return res},HLP.packINT=function(d){return HLP.packBytes(d,DTS.INT)},HLP.packCtr=function(d){return HLP.padCtr(HLP.packBytes(d,DTS.CTR))},HLP.padCtr=function(ctr){return ctr+"\x00\x00\x00\x00\x00\x00\x00\x00"},HLP.unpackCtr=function(d){return d=HLP.toByteArray(d.substring(0,8)),HLP.unpack(d)},HLP.unpack=function(arr){for(var val=0,i=0,len=arr.length;len>i;i++)val=256*val+arr[i];return val},HLP.packData=function(d){return HLP.packINT(d.length)+d},HLP.bits2bigInt=function(bits){return bits=HLP.toByteArray(bits),BigInt.ba2bigInt(bits)},HLP.packMPI=function(mpi){return HLP.packData(BigInt.bigInt2bits(BigInt.trim(mpi,0)))},HLP.packSHORT=function(short){return HLP.packBytes(short,DTS.SHORT)},HLP.unpackSHORT=function(short){return short=HLP.toByteArray(short),HLP.unpack(short)},HLP.packTLV=function(type,value){return HLP.packSHORT(type)+HLP.packSHORT(value.length)+value},HLP.readLen=function(msg){return msg=HLP.toByteArray(msg.substring(0,4)),HLP.unpack(msg)},HLP.readData=function(data){var n=HLP.unpack(data.splice(0,4));return[n,data]},HLP.readMPI=function(data){return data=HLP.toByteArray(data),data=HLP.readData(data),BigInt.ba2bigInt(data[1])},HLP.packMPIs=function(arr){return arr.reduce(function(prv,cur){return prv+HLP.packMPI(cur)},"")},HLP.unpackMPIs=function(num,mpis){for(var i=0,arr=[];num>i;i++)arr.push("MPI");return HLP.splitype(arr,mpis).map(function(m){return HLP.readMPI(m)})},HLP.wrapMsg=function(msg,fs,v3,our_it,their_it){msg=CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(msg)),msg=WRAPPER_BEGIN+":"+msg+WRAPPER_END;var its;if(v3&&(its="|",its+=HLP.readLen(our_it).toString(16),its+="|",its+=HLP.readLen(their_it).toString(16)),!fs)return[null,msg];var n=Math.ceil(msg.length/fs);if(n>65535)return["Too many fragments"];if(1==n)return[null,msg];var k,bi,ei,frag,mf,mfs=[];for(k=1;n>=k;k++)bi=(k-1)*fs,ei=k*fs,frag=msg.slice(bi,ei),mf=WRAPPER_BEGIN,v3&&(mf+=its),mf+=","+k+",",mf+=n+",",mf+=frag+",",mfs.push(mf);return[null,mfs]},HLP.splitype=function splitype(arr,msg){var data=[];return arr.forEach(function(a){var str;switch(a){case"PUBKEY":str=splitype(["SHORT","MPI","MPI","MPI","MPI"],msg).join("");break;case"DATA":case"MPI":str=msg.substring(0,HLP.readLen(msg)+4);break;default:str=msg.substring(0,DTS[a])}data.push(str),msg=msg.substring(str.length)}),data};var _bin2num=function(){for(var i=0,_bin2num={};256>i;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;256>i;++i)_bin2num[String.fromCharCode(63232+i)]=i;return _bin2num}();HLP.toByteArray=function(data){for(var rv=[],ary=data.split(""),i=-1,iz=ary.length,remain=iz%8;remain--;)++i,rv[i]=_bin2num[ary[i]];for(remain=iz>>3;remain--;)rv.push(_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]]);return rv}}.call(this),function(){"use strict";function timer(){var start=(new Date).getTime();return function(s){if(DEBUG&&"undefined"!=typeof console){var t=(new Date).getTime();console.log(s+": "+(t-start)),start=t}}}function makeRandom(min,max){var c=BigInt.randBigInt(BigInt.bitSize(max));return HLP.between(c,min,max)?c:makeRandom(min,max)}function isProbPrime(k,n){var i,B=3e4,l=BigInt.bitSize(k),primes=BigInt.primes;for(0===primes.length&&(primes=BigInt.findPrimes(B)),rpprb.length!=k.length&&(rpprb=BigInt.dup(k)),i=0;i<primes.length&&primes[i]<=B;i++)if(0===BigInt.modInt(k,primes[i])&&!BigInt.equalsInt(k,primes[i]))return 0;for(i=0;n>i;i++){for(BigInt.randBigInt_(rpprb,l,0);!BigInt.greater(k,rpprb);)BigInt.randBigInt_(rpprb,l,0);if(!BigInt.millerRabin(k,rpprb))return 0}return 1}function generatePrimes(bit_length){for(var q,p,rem,counter,t=timer(),repeat=bit_lengths[bit_length].repeat,N=bit_lengths[bit_length].N,LM1=BigInt.twoToThe(bit_length-1),bl4=4*bit_length,brk=!1;;)if(q=BigInt.randBigInt(N,1),q[0]|=1,isProbPrime(q,repeat)){for(t("q"),counter=0;bl4>counter;counter++)if(p=BigInt.randBigInt(bit_length,1),p[0]|=1,rem=BigInt.mod(p,q),rem=BigInt.sub(rem,ONE),p=BigInt.sub(p,rem),!BigInt.greater(LM1,p)&&isProbPrime(p,repeat)){t("p"),primes[bit_length]={p:p,q:q},brk=!0;break}if(brk)break}for(var g,h=BigInt.dup(TWO),pm1=BigInt.sub(p,ONE),e=BigInt.multMod(pm1,BigInt.inverseMod(q,p),p);;){g=BigInt.powMod(h,e,p);{if(!BigInt.equals(g,ONE))return primes[bit_length].g=g,void t("g");h=BigInt.add(h,ONE)}}throw new Error("Unreachable!")}function DSA(obj,opts){if(!(this instanceof DSA))return new DSA(obj,opts);if(opts=opts||{},obj){var self=this;return["p","q","g","y","x"].forEach(function(prop){self[prop]=obj[prop]}),void(this.type=obj.type||KEY_TYPE)}var bit_length=parseInt(opts.bit_length?opts.bit_length:1024,10);if(!bit_lengths[bit_length])throw new Error("Unsupported bit length.");primes[bit_length]||generatePrimes(bit_length),this.p=primes[bit_length].p,this.q=primes[bit_length].q,this.g=primes[bit_length].g,this.type=KEY_TYPE,this.x=makeRandom(ZERO,this.q),this.y=BigInt.powMod(this.g,this.x,this.p),opts.nocache&&(primes[bit_length]=null)}function tokenizeStr(str){var start,end;if(start=str.indexOf("("),end=str.lastIndexOf(")"),0>start||0>end)throw new Error("Malformed S-Expression");str=str.substring(start+1,end);var splt=str.search(/\s/),obj={type:str.substring(0,splt),val:[]};if(str=str.substring(splt+1,end),start=str.indexOf("("),0>start)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;len>i&&ss>es;i++)"("===str[i]&&ss++,")"===str[i]&&es++;obj.val.push(tokenizeStr(str.substring(start,++i))),str=str.substring(++i),start=str.indexOf("(")}return obj}function parseLibotr(obj){if(!obj.type)throw new Error("Parse error.");var o,val;return"privkeys"===obj.type?(o=[],obj.val.forEach(function(i){o.push(parseLibotr(i))}),o):(o={},obj.val.forEach(function(i){val=i.val[0],"string"==typeof val?0===val.indexOf("#")&&(val=val.substring(1,val.lastIndexOf("#")),val=BigInt.str2bigInt(val,16)):val=parseLibotr(i),o[i.type]=val}),o)}var CryptoJS,BigInt,Worker,WWPath,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=DSA,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),WWPath=require("path").join(__dirname,"/dsa-webworker.js"),HLP=require("./helpers.js")):(Object.keys(root.DSA).forEach(function(k){DSA[k]=root.DSA[k]}),root.DSA=DSA,CryptoJS=root.CryptoJS,BigInt=root.BigInt,Worker=root.Worker,WWPath="dsa-webworker.js",HLP=DSA.HLP);var ZERO=BigInt.str2bigInt("0",10),ONE=BigInt.str2bigInt("1",10),TWO=BigInt.str2bigInt("2",10),KEY_TYPE="\x00\x00",DEBUG=!1,rpprb=[],bit_lengths={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},primes={};DSA.prototype={constructor:DSA,packPublic:function(){var str=this.type;return str+=HLP.packMPI(this.p),str+=HLP.packMPI(this.q),str+=HLP.packMPI(this.g),str+=HLP.packMPI(this.y)},packPrivate:function(){var str=this.packPublic()+HLP.packMPI(this.x);return str=CryptoJS.enc.Latin1.parse(str),str.toString(CryptoJS.enc.Base64)},generateNonce:function(m){var priv=BigInt.bigInt2bits(BigInt.trim(this.x,0)),rand=BigInt.bigInt2bits(BigInt.randBigInt(256)),sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(priv)),sha256.update(m),sha256.update(CryptoJS.enc.Latin1.parse(rand));var hash=sha256.finalize();return hash=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1)),BigInt.rightShift_(hash,256-BigInt.bitSize(this.q)),HLP.between(hash,ZERO,this.q)?hash:this.generateNonce(m)},sign:function(m){m=CryptoJS.enc.Latin1.parse(m);for(var k,b=BigInt.str2bigInt(m.toString(CryptoJS.enc.Hex),16),r=ZERO,s=ZERO;BigInt.isZero(s)||BigInt.isZero(r);)k=this.generateNonce(m),r=BigInt.mod(BigInt.powMod(this.g,k,this.p),this.q),BigInt.isZero(r)||(s=BigInt.inverseMod(k,this.q),s=BigInt.mult(s,BigInt.add(b,BigInt.mult(this.x,r))),s=BigInt.mod(s,this.q));return[r,s]},fingerprint:function(){var pk=this.packPublic();return this.type===KEY_TYPE&&(pk=pk.substring(2)),pk=CryptoJS.enc.Latin1.parse(pk),CryptoJS.SHA1(pk).toString(CryptoJS.enc.Hex)}},DSA.parsePublic=function(str,priv){var fields=["SHORT","MPI","MPI","MPI","MPI"];priv&&fields.push("MPI"),str=HLP.splitype(fields,str);var obj={type:str[0],p:HLP.readMPI(str[1]),q:HLP.readMPI(str[2]),g:HLP.readMPI(str[3]),y:HLP.readMPI(str[4])};return priv&&(obj.x=HLP.readMPI(str[5])),new DSA(obj)},DSA.parsePrivate=function(str,libotr){return libotr?parseLibotr(tokenizeStr(str))[0]["private-key"].dsa:(str=CryptoJS.enc.Base64.parse(str),str=str.toString(CryptoJS.enc.Latin1),DSA.parsePublic(str,!0))},DSA.verify=function(key,m,r,s){if(!HLP.between(r,ZERO,key.q)||!HLP.between(s,ZERO,key.q))return!1;var hm=CryptoJS.enc.Latin1.parse(m);hm=BigInt.str2bigInt(hm.toString(CryptoJS.enc.Hex),16);var w=BigInt.inverseMod(s,key.q),u1=BigInt.multMod(hm,w,key.q),u2=BigInt.multMod(r,w,key.q);u1=BigInt.powMod(key.g,u1,key.p),u2=BigInt.powMod(key.y,u2,key.p);var v=BigInt.mod(BigInt.multMod(u1,u2,key.p),key.q);return BigInt.equals(v,r)},DSA.createInWebWorker=function(options,cb){var opts={path:WWPath,seed:BigInt.getSeed};options&&"object"==typeof options&&Object.keys(options).forEach(function(k){opts[k]=options[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker);var worker=new Worker(opts.path);worker.onmessage=function(e){var data=e.data;switch(data.type){case"debug":if(!DEBUG||"undefined"==typeof console)return;console.log(data.val);break;case"data":worker.terminate(),cb(DSA.parsePrivate(data.val));break;default:throw new Error("Unrecognized type.")}},worker.postMessage({seed:opts.seed(),imports:opts.imports,debug:DEBUG})}}.call(this),function(){"use strict";var CryptoJS,CONST,HLP,root=this,Parse={};"undefined"!=typeof module&&module.exports?(module.exports=Parse,CryptoJS=require("../vendor/crypto.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.Parse=Parse,CryptoJS=root.CryptoJS,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var tags={};tags[CONST.WHITESPACE_TAG_V2]=CONST.OTR_VERSION_2,tags[CONST.WHITESPACE_TAG_V3]=CONST.OTR_VERSION_3,Parse.parseMsg=function(otr,msg){var ver=[],start=msg.indexOf(CONST.OTR_TAG);if(!~start){if(this.initFragment(otr),ind=msg.indexOf(CONST.WHITESPACE_TAG),~ind){msg=msg.split(""),msg.splice(ind,16);for(var tag,len=msg.length;len>ind;)tag=msg.slice(ind,ind+8).join(""),Object.hasOwnProperty.call(tags,tag)?(msg.splice(ind,8),ver.push(tags[tag])):ind+=8;msg=msg.join("")}return{msg:msg,ver:ver}}var ind=start+CONST.OTR_TAG.length,com=msg[ind];if(","===com||"|"===com)return this.msgFragment(otr,msg.substring(ind+1),"|"===com);if(this.initFragment(otr),~["?","v"].indexOf(com)){"?"===msg[ind]&&(ver.push(CONST.OTR_VERSION_1),ind+=1);var vers={2:CONST.OTR_VERSION_2,3:CONST.OTR_VERSION_3},qs=msg.substring(ind+1),qi=qs.indexOf("?");return qi>=1&&(qs=qs.substring(0,qi).split(""),"v"===msg[ind]&&qs.forEach(function(q){Object.hasOwnProperty.call(vers,q)&&ver.push(vers[q])})),{cls:"query",ver:ver}}if(":"===com){ind+=1;var info=msg.substring(ind,ind+4);if(info.length<4)return{msg:msg};info=CryptoJS.enc.Base64.parse(info).toString(CryptoJS.enc.Latin1);var version=info.substring(0,2),type=info.substring(2);if(!otr["ALLOW_V"+HLP.unpackSHORT(version)])return{msg:msg};ind+=4;var end=msg.substring(ind).indexOf(".");if(!~end)return{msg:msg};msg=CryptoJS.enc.Base64.parse(msg.substring(ind,ind+end)),msg=CryptoJS.enc.Latin1.stringify(msg);var instance_tags;version===CONST.OTR_VERSION_3&&(instance_tags=msg.substring(0,8),msg=msg.substring(8));var cls;return~["","\n","",""].indexOf(type)?cls="ake":""===type&&(cls="data"),{version:version,type:type,msg:msg,cls:cls,instance_tags:instance_tags}}return" Error:"===msg.substring(ind,ind+7)?(otr.ERROR_START_AKE&&otr.sendQueryMsg(),{msg:msg.substring(ind+7),cls:"error"}):{msg:msg}},Parse.initFragment=function(otr){otr.fragment={s:"",j:0,k:0}},Parse.msgFragment=function(otr,msg,v3){if(msg=msg.split(","),v3){var its=msg.shift().split("|"),their_it=HLP.packINT(parseInt(its[0],16)),our_it=HLP.packINT(parseInt(its[1],16));if(otr.checkInstanceTags(their_it+our_it))return}if(!(msg.length<4||isNaN(parseInt(msg[0],10))||isNaN(parseInt(msg[1],10)))){var k=parseInt(msg[0],10),n=parseInt(msg[1],10);return msg=msg[2],k>n||0===n||0===k?void this.initFragment(otr):(1===k?(this.initFragment(otr),otr.fragment={k:1,n:n,s:msg}):n===otr.fragment.n&&k===otr.fragment.k+1?(otr.fragment.s+=msg,otr.fragment.k+=1):this.initFragment(otr),n===k?(msg=otr.fragment.s,this.initFragment(otr),this.parseMsg(otr,msg)):void 0)}}}.call(this),function(){"use strict";function hMac(gx,gy,pk,kid,m){var pass=CryptoJS.enc.Latin1.parse(m),hmac=CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,pass);return hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gx))),hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gy))),hmac.update(CryptoJS.enc.Latin1.parse(pk)),hmac.update(CryptoJS.enc.Latin1.parse(kid)),hmac.finalize().toString(CryptoJS.enc.Latin1)}function AKE(otr){if(!(this instanceof AKE))return new AKE(otr);this.otr=otr,this.our_dh=otr.our_old_dh,this.our_keyid=otr.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var self=this;["sendMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)})}var CryptoJS,BigInt,CONST,HLP,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=AKE,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),DSA=require("./dsa.js")):(root.OTR.AKE=AKE,CryptoJS=root.CryptoJS,BigInt=root.BigInt,CONST=root.OTR.CONST,HLP=root.OTR.HLP,DSA=root.DSA);var N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10));AKE.prototype={constructor:AKE,createKeys:function(g){var s=BigInt.powMod(g,this.our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.ssid=HLP.mask(HLP.h2("\x00",secbytes),0,64);var tmp=HLP.h2("",secbytes);this.c=HLP.mask(tmp,0,128),this.c_prime=HLP.mask(tmp,128,128),this.m1=HLP.h2("",secbytes),this.m2=HLP.h2("",secbytes),this.m1_prime=HLP.h2("",secbytes),this.m2_prime=HLP.h2("",secbytes)},verifySignMac:function(mac,aesctr,m2,c,their_y,our_dh_pk,m1,ctr){var vmac=HLP.makeMac(aesctr,m2);if(!HLP.compare(mac,vmac))return["MACs do not match."];var x=HLP.decryptAes(aesctr.substring(4),c,ctr);x=HLP.splitype(["PUBKEY","INT","SIG"],x.toString(CryptoJS.enc.Latin1));var m=hMac(their_y,our_dh_pk,x[0],x[1],m1),pub=DSA.parsePublic(x[0]),r=HLP.bits2bigInt(x[2].substring(0,20)),s=HLP.bits2bigInt(x[2].substring(20));return DSA.verify(pub,m,r,s)?[null,HLP.readLen(x[1]),pub]:["Cannot verify signature of m."]},makeM:function(their_y,m1,c,m2){var pk=this.otr.priv.packPublic(),kid=HLP.packINT(this.our_keyid),m=hMac(this.our_dh.publicKey,their_y,pk,kid,m1);m=this.otr.priv.sign(m);var msg=pk+kid;msg+=BigInt.bigInt2bits(m[0],20),msg+=BigInt.bigInt2bits(m[1],20),msg=CryptoJS.enc.Latin1.parse(msg);var aesctr=HLP.packData(HLP.encryptAes(msg,c,HLP.packCtr(0))),mac=HLP.makeMac(aesctr,m2);return aesctr+mac},akeSuccess:function(version){return HLP.debug.call(this.otr,"success"),BigInt.equals(this.their_y,this.our_dh.publicKey)?this.otr.error("equal keys - we have a problem."):(this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&BigInt.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&BigInt.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=version,this.otr.authstate=CONST.AUTHSTATE_NONE,this.otr.msgstate=CONST.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[CONST.STATUS_AKE_SUCCESS]),void this.otr.sendStored())},handleAKE:function(msg){var send,vsm,type,version=msg.version;switch(msg.type){case"":if(HLP.debug.call(this.otr,"d-h key message"),msg=HLP.splitype(["DATA","DATA"],msg.msg),this.otr.authstate===CONST.AUTHSTATE_AWAITING_DHKEY){var ourHash=HLP.readMPI(this.myhashed),theirHash=HLP.readMPI(msg[1]);if(BigInt.greater(ourHash,theirHash)){type="",send=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=CONST.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===CONST.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=CONST.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=msg[0].substring(4),this.hashed=msg[1].substring(4),type="\n",send=HLP.packMPI(this.our_dh.publicKey);break;case"\n":if(HLP.debug.call(this.otr,"reveal signature message"),msg=HLP.splitype(["MPI"],msg.msg),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;if(!BigInt.equals(this.their_y,HLP.readMPI(msg[0])))return}if(this.otr.authstate=CONST.AUTHSTATE_AWAITING_SIG,this.their_y=HLP.readMPI(msg[0]),!HLP.checkGroup(this.their_y,N_MINUS_2))return this.otr.error("Illegal g^y.");this.createKeys(this.their_y),type="",send=HLP.packMPI(this.r),send+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"":if(HLP.debug.call(this.otr,"signature message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_REVEALSIG)return;msg=HLP.splitype(["DATA","DATA","MAC"],msg.msg),this.r=HLP.readMPI(msg[0]);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key);var gxmpi=HLP.decryptAes(this.encrypted,key,HLP.packCtr(0));gxmpi=gxmpi.toString(CryptoJS.enc.Latin1),this.their_y=HLP.readMPI(gxmpi);var hash=CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi));return HLP.compare(this.hashed,hash.toString(CryptoJS.enc.Latin1))?HLP.checkGroup(this.their_y,N_MINUS_2)?(this.createKeys(this.their_y),vsm=this.verifySignMac(msg[2],msg[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],send=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(version,"",send),void this.akeSuccess(version))):this.otr.error("Illegal g^x."):this.otr.error("Hashed g^x does not match.");case"":if(HLP.debug.call(this.otr,"data message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;return msg=HLP.splitype(["DATA","MAC"],msg.msg),vsm=this.verifySignMac(msg[1],msg[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,void this.akeSuccess(version));default:return}this.sendMsg(version,type,send)},sendMsg:function(version,type,msg){var send=version+type,v3=version===CONST.OTR_VERSION_3;return v3&&(HLP.debug.call(this.otr,"instance tags"),send+=this.otr.our_instance_tag,send+=this.otr.their_instance_tag),send+=msg,send=HLP.wrapMsg(send,this.otr.fragment_size,v3,this.otr.our_instance_tag,this.otr.their_instance_tag),send[0]?this.otr.error(send[0]):void this.otr.io(send[1])},initiateAKE:function(version){HLP.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[CONST.STATUS_AKE_INIT]),this.otr.authstate=CONST.AUTHSTATE_AWAITING_DHKEY;var gxmpi=HLP.packMPI(this.our_dh.publicKey);gxmpi=CryptoJS.enc.Latin1.parse(gxmpi),this.r=BigInt.randBigInt(128);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key),this.myhashed=CryptoJS.SHA256(gxmpi),this.myhashed=HLP.packData(this.myhashed.toString(CryptoJS.enc.Latin1)),this.dhcommit=HLP.packData(HLP.encryptAes(gxmpi,key,HLP.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(version,"",this.dhcommit)}}}.call(this),function(){"use strict";function SM(reqs){return this instanceof SM?(this.version=1,this.our_fp=reqs.our_fp,this.their_fp=reqs.their_fp,this.ssid=reqs.ssid,this.debug=!!reqs.debug,void this.init()):new SM(reqs)}var CryptoJS,BigInt,EventEmitter,CONST,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=SM,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.SM=SM,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10)),Q=BigInt.sub(N,BigInt.str2bigInt("1",10));BigInt.divInt_(Q,2),HLP.extend(SM,EventEmitter),SM.prototype.init=function(){this.smpstate=CONST.SMPSTATE_EXPECT1,this.secret=null},SM.prototype.makeSecret=function(our,secret){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(this.version,1))),sha256.update(CryptoJS.enc.Hex.parse(our?this.our_fp:this.their_fp)),sha256.update(CryptoJS.enc.Hex.parse(our?this.their_fp:this.our_fp)),sha256.update(CryptoJS.enc.Latin1.parse(this.ssid)),sha256.update(CryptoJS.enc.Latin1.parse(secret));var hash=sha256.finalize();this.secret=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},SM.prototype.makeG2s=function(){this.a2=HLP.randomExponent(),this.a3=HLP.randomExponent(),this.g2a=BigInt.powMod(G,this.a2,N),this.g3a=BigInt.powMod(G,this.a3,N),HLP.checkGroup(this.g2a,N_MINUS_2)&&HLP.checkGroup(this.g3a,N_MINUS_2)||this.makeG2s()},SM.prototype.computeGs=function(g2a,g3a){this.g2=BigInt.powMod(g2a,this.a2,N),this.g3=BigInt.powMod(g3a,this.a3,N)},SM.prototype.computePQ=function(r){this.p=BigInt.powMod(this.g3,r,N),this.q=HLP.multPowMod(G,r,this.g2,this.secret,N)},SM.prototype.computeR=function(){this.r=BigInt.powMod(this.QoQ,this.a3,N)},SM.prototype.computeRab=function(r){return BigInt.powMod(r,this.a3,N)},SM.prototype.computeC=function(v,r){return HLP.smpHash(v,BigInt.powMod(G,r,N))},SM.prototype.computeD=function(r,a,c){return BigInt.subMod(r,BigInt.multMod(a,c,Q),Q)},SM.prototype.handleSM=function(msg){var send,r2,r3,r7,t1,t2,t3,t4,rab,tmp2,cR,d7,ms,trust,expectStates={2:CONST.SMPSTATE_EXPECT1,3:CONST.SMPSTATE_EXPECT2,4:CONST.SMPSTATE_EXPECT3,5:CONST.SMPSTATE_EXPECT4,7:CONST.SMPSTATE_EXPECT1};if(6===msg.type)return this.init(),void this.trigger("abort");if(this.smpstate!==expectStates[msg.type])return this.abort();switch(this.smpstate){case CONST.SMPSTATE_EXPECT1:HLP.debug.call(this,"smp tlv 2");var ind,question;return 7===msg.type&&(ind=msg.msg.indexOf("\x00"),question=msg.msg.substring(0,ind),msg.msg=msg.msg.substring(ind+1)),ms=HLP.readLen(msg.msg.substr(0,4)),6!==ms?this.abort():(msg=HLP.unpackMPIs(6,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.ZKP(1,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N))&&HLP.ZKP(2,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N))?(this.g3ao=msg[3],this.makeG2s(),r2=HLP.randomExponent(),r3=HLP.randomExponent(),this.c2=this.computeC(3,r2),this.c3=this.computeC(4,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.computeGs(msg[0],msg[3]),this.smpstate=CONST.SMPSTATE_EXPECT0,
+question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(msg.msg.substr(0,4)),11!==ms)return this.abort();if(msg=HLP.unpackMPIs(11,msg.msg.substring(4)),!(HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.checkGroup(msg[6],N_MINUS_2)&&HLP.checkGroup(msg[7],N_MINUS_2)))return this.abort();if(!HLP.ZKP(3,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N)))return this.abort();if(!HLP.ZKP(4,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N)))return this.abort();if(this.g3ao=msg[3],this.computeGs(msg[0],msg[3]),t1=HLP.multPowMod(this.g3,msg[9],msg[6],msg[8],N),t2=HLP.multPowMod(G,msg[9],this.g2,msg[10],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[7],msg[8],N),N),!HLP.ZKP(5,msg[8],t1,t2))return this.abort();var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(6,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.QoQ=BigInt.divMod(this.q,msg[7],N),this.PoP=BigInt.divMod(this.p,msg[6],N),this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(7,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),this.smpstate=CONST.SMPSTATE_EXPECT4,send=HLP.packINT(8)+HLP.packMPIs([this.p,this.q,cP,d5,d6,this.r,cR,d7]),send=HLP.packTLV(4,send);break;case CONST.SMPSTATE_EXPECT3:if(HLP.debug.call(this,"smp tlv 4"),ms=HLP.readLen(msg.msg.substr(0,4)),8!==ms)return this.abort();if(msg=HLP.unpackMPIs(8,msg.msg.substring(4)),!HLP.checkGroup(msg[0],N_MINUS_2)||!HLP.checkGroup(msg[1],N_MINUS_2)||!HLP.checkGroup(msg[5],N_MINUS_2))return this.abort();if(t1=HLP.multPowMod(this.g3,msg[3],msg[0],msg[2],N),t2=HLP.multPowMod(G,msg[3],this.g2,msg[4],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[1],msg[2],N),N),!HLP.ZKP(6,msg[2],t1,t2))return this.abort();if(t3=HLP.multPowMod(G,msg[7],this.g3ao,msg[6],N),this.QoQ=BigInt.divMod(msg[1],this.q,N),t4=HLP.multPowMod(this.QoQ,msg[7],msg[5],msg[6],N),!HLP.ZKP(7,msg[6],t3,t4))return this.abort();this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(8,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),send=HLP.packINT(3)+HLP.packMPIs([this.r,cR,d7]),send=HLP.packTLV(5,send),rab=this.computeRab(msg[5]),trust=!!BigInt.equals(rab,BigInt.divMod(msg[0],this.p,N)),this.trigger("trust",[trust,"answered"]),this.init();break;case CONST.SMPSTATE_EXPECT4:return HLP.debug.call(this,"smp tlv 5"),ms=HLP.readLen(msg.msg.substr(0,4)),3!==ms?this.abort():(msg=HLP.unpackMPIs(3,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)?(t3=HLP.multPowMod(G,msg[2],this.g3ao,msg[1],N),t4=HLP.multPowMod(this.QoQ,msg[2],msg[0],msg[1],N),HLP.ZKP(8,msg[1],t3,t4)?(rab=this.computeRab(msg[0]),trust=!!BigInt.equals(rab,this.PoP),this.trigger("trust",[trust,"asked"]),void this.init()):this.abort()):this.abort())}this.sendMsg(send)},SM.prototype.sendMsg=function(send){this.trigger("send",[this.ssid,"\x00"+send])},SM.prototype.rcvSecret=function(secret,question){HLP.debug.call(this,"receive secret");var fn,our=!1;this.smpstate===CONST.SMPSTATE_EXPECT0?fn=this.answer:(fn=this.initiate,our=!0),this.makeSecret(our,secret),fn.call(this,question)},SM.prototype.answer=function(){HLP.debug.call(this,"smp answer");var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(5,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.smpstate=CONST.SMPSTATE_EXPECT3;var send=HLP.packINT(11)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,cP,d5,d6]);this.sendMsg(HLP.packTLV(3,send))},SM.prototype.initiate=function(question){HLP.debug.call(this,"smp initiate"),this.smpstate!==CONST.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var r2=HLP.randomExponent(),r3=HLP.randomExponent();this.c2=this.computeC(1,r2),this.c3=this.computeC(2,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.smpstate=CONST.SMPSTATE_EXPECT2;var send="",type=2;question&&(send+=question,send+="\x00",type=7),send+=HLP.packINT(6)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(HLP.packTLV(type,send))},SM.prototype.abort=function(){this.init(),this.sendMsg(HLP.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function OTRCB(cb){this.cb=cb}function OTR(options){if(!(this instanceof OTR))return new OTR(options);if(options=options||{},options.priv&&!(options.priv instanceof DSA))throw new Error("Requires long-lived DSA key.");if(this.priv=options.priv?options.priv:new DSA,this.fragment_size=options.fragment_size||0,this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");if(this.send_interval=options.send_interval||0,this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=options.instance_tag||OTR.makeInstanceTag(),this.debug=!!options.debug,this.smw=options.smw,this.init();var self=this;["sendMsg","receiveMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)}),EventEmitter.call(this)}var CryptoJS,BigInt,EventEmitter,Worker,SMWPath,CONST,HLP,Parse,AKE,SM,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=OTR,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),SMWPath=require("path").join(__dirname,"/sm-webworker.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),Parse=require("./parse.js"),AKE=require("./ake.js"),SM=require("./sm.js"),DSA=require("./dsa.js"),OTR.CONST=CONST):(Object.keys(root.OTR).forEach(function(k){OTR[k]=root.OTR[k]}),root.OTR=OTR,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,Worker=root.Worker,SMWPath="sm-webworker.js",CONST=OTR.CONST,HLP=OTR.HLP,Parse=OTR.Parse,AKE=OTR.AKE,SM=OTR.SM,DSA=root.DSA);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),MAX_INT=Math.pow(2,53)-1,MAX_UINT=Math.pow(2,31)-1;HLP.extend(OTR,EventEmitter),OTR.prototype.init=function(){this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.authstate=CONST.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,Parse.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\x00\x00\x00\x00",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},OTR.prototype._akeInit=function(){this.ake=new AKE(this),this.transmittedRS=!1,this.ssid=null},OTR.prototype._SMW=function(otr,reqs){this.otr=otr;var opts={path:SMWPath,seed:BigInt.getSeed};"object"==typeof otr.smw&&Object.keys(otr.smw).forEach(function(k){opts[k]=otr.smw[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker),this.worker=new Worker(opts.path);var self=this;this.worker.onmessage=function(e){var d=e.data;d&&self.trigger(d.method,d.args)},this.worker.postMessage({type:"seed",seed:opts.seed(),imports:opts.imports}),this.worker.postMessage({type:"init",reqs:reqs})},HLP.extend(OTR.prototype._SMW,EventEmitter),["handleSM","rcvSecret","abort"].forEach(function(m){OTR.prototype._SMW.prototype[m]=function(){this.worker.postMessage({type:"method",method:m,args:Array.prototype.slice.call(arguments,0)})}}),OTR.prototype._smInit=function(){var reqs={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,reqs)):this.sm=new SM(reqs);var self=this;["trust","abort","question"].forEach(function(e){self.sm.on(e,function(){self.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(ssid,send){self.ssid===ssid&&(send=self.prepareMsg(send),self.io(send))})},OTR.prototype.io=function(msg,meta){msg=[].concat(msg).map(function(m,i,arr){var obj={msg:m};return meta instanceof OTRCB&&i!==arr.length-1||(obj.meta=meta),obj}),this.outgoing=this.outgoing.concat(msg);var self=this;!function send(first){if(!first){if(!self.outgoing.length)return;var elem=self.outgoing.shift(),cb=null;elem.meta instanceof OTRCB&&(cb=elem.meta.cb,elem.meta=null),self.trigger("io",[elem.msg,elem.meta]),cb&&cb()}setTimeout(send,first?0:self.send_interval)}(!0)},OTR.prototype.dh=function(){var keys={privateKey:BigInt.randBigInt(320)};return keys.publicKey=BigInt.powMod(G,keys.privateKey,N),keys},OTR.prototype.DHSession=function DHSession(our_dh,their_y){if(!(this instanceof DHSession))return new DHSession(our_dh,their_y);var s=BigInt.powMod(their_y,our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.id=HLP.mask(HLP.h2("\x00",secbytes),0,64);var sq=BigInt.greater(our_dh.publicKey,their_y),sendbyte=sq?"":"",rcvbyte=sq?"":"";this.sendenc=HLP.mask(HLP.h1(sendbyte,secbytes),0,128),this.sendmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(CryptoJS.enc.Latin1),this.rcvenc=HLP.mask(HLP.h1(rcvbyte,secbytes),0,128),this.rcvmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(CryptoJS.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=HLP.h2("ÿ",secbytes),this.send_counter=0,this.rcv_counter=0},OTR.prototype.rotateOurKeys=function(){var self=this;this.sessKeys[1].forEach(function(sk){sk&&sk.rcvmacused&&self.oldMacKeys.push(sk.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},OTR.prototype.rotateTheirKeys=function(their_y){this.their_keyid+=1;var self=this;this.sessKeys.forEach(function(sk){sk[1]&&sk[1].rcvmacused&&self.oldMacKeys.push(sk[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=their_y,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},OTR.prototype.prepareMsg=function(msg,esk){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||0===this.their_keyid)return this.notify("Not ready to encrypt.");var sessKeys=this.sessKeys[1][0];if(sessKeys.send_counter>=MAX_INT)return this.notify("Should have rekeyed by now.");sessKeys.send_counter+=1;var ctr=HLP.packCtr(sessKeys.send_counter),send=this.ake.otr_version+"",v3=this.ake.otr_version===CONST.OTR_VERSION_3;if(v3&&(send+=this.our_instance_tag,send+=this.their_instance_tag),send+="\x00",send+=HLP.packINT(this.our_keyid-1),send+=HLP.packINT(this.their_keyid),send+=HLP.packMPI(this.our_dh.publicKey),send+=ctr.substring(0,8),Math.ceil(msg.length/8)>=MAX_UINT)return this.notify("Message is too long.");var aes=HLP.encryptAes(CryptoJS.enc.Latin1.parse(msg),sessKeys.sendenc,ctr);return send+=HLP.packData(aes),send+=HLP.make1Mac(send,sessKeys.sendmac),send+=HLP.packData(this.oldMacKeys.splice(0).join("")),send=HLP.wrapMsg(send,this.fragment_size,v3,this.our_instance_tag,this.their_instance_tag),send[0]?this.notify(send[0]):(esk&&this.trigger("file",["send",sessKeys.extra_symkey,esk]),send[1])},OTR.prototype.handleDataMsg=function(msg){var vt=msg.version+msg.type;this.ake.otr_version===CONST.OTR_VERSION_3&&(vt+=msg.instance_tags);var types=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];msg=HLP.splitype(types,msg.msg);var ign=""===msg[0];if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||8!==msg.length)return void(ign||this.error("Received an unreadable encrypted message."));var our_keyid=this.our_keyid-HLP.readLen(msg[2]),their_keyid=this.their_keyid-HLP.readLen(msg[1]);if(0>our_keyid||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(0>their_keyid||their_keyid>1)return void(ign||this.error("Not of your latest keys."));var their_y=their_keyid?this.their_old_y:this.their_y;if(1===their_keyid&&!their_y)return void(ign||this.error("Do not have that key."));var sessKeys=this.sessKeys[our_keyid][their_keyid],ctr=HLP.unpackCtr(msg[4]);if(ctr<=sessKeys.rcv_counter)return void(ign||this.error("Counter in message is not larger."));sessKeys.rcv_counter=ctr,vt+=msg.slice(0,6).join("");var vmac=HLP.make1Mac(vt,sessKeys.rcvmac);if(!HLP.compare(msg[6],vmac))return void(ign||this.error("MACs do not match."));sessKeys.rcvmacused=!0;var out=HLP.decryptAes(msg[5].substring(4),sessKeys.rcvenc,HLP.padCtr(msg[4]));out=out.toString(CryptoJS.enc.Latin1),our_keyid||this.rotateOurKeys(),their_keyid||this.rotateTheirKeys(HLP.readMPI(msg[3]));var ind=out.indexOf("\x00");return~ind&&(this.handleTLVs(out.substring(ind+1),sessKeys),out=out.substring(0,ind)),out=CryptoJS.enc.Latin1.parse(out),out.toString(CryptoJS.enc.Utf8)},OTR.prototype.handleTLVs=function(tlvs,sessKeys){for(var type,len,msg;tlvs.length&&(type=HLP.unpackSHORT(tlvs.substr(0,2)),len=HLP.unpackSHORT(tlvs.substr(2,2)),msg=tlvs.substr(4,len),!(msg.length<len));){switch(type){case 1:this.msgstate=CONST.MSGSTATE_FINISHED,this.trigger("status",[CONST.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return void(this.sm&&this.sm.abort());this.sm||this._smInit(),this.sm.handleSM({msg:msg,type:type});break;case 8:msg=msg.substring(4),msg=CryptoJS.enc.Latin1.parse(msg),msg=msg.toString(CryptoJS.enc.Utf8),this.trigger("file",["receive",sessKeys.extra_symkey,msg])}tlvs=tlvs.substring(4+len)}},OTR.prototype.smpSecret=function(secret,question){return this.msgstate!==CONST.MSGSTATE_ENCRYPTED?this.notify("Must be encrypted for SMP."):"string"!=typeof secret||secret.length<1?this.notify("Secret is required."):(this.sm||this._smInit(),secret=CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1),question&&(question=CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)),void this.sm.rcvSecret(secret,question))},OTR.prototype.sendQueryMsg=function(){var versions={},msg=CONST.OTR_TAG;this.ALLOW_V2&&(versions[2]=!0),this.ALLOW_V3&&(versions[3]=!0);var vs=Object.keys(versions);vs.length&&(msg+="v",vs.forEach(function(v){"1"!==v&&(msg+=v)}),msg+="?"),this.io(msg),this.trigger("status",[CONST.STATUS_SEND_QUERY])},OTR.prototype.sendMsg=function(msg,meta){switch((this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&(msg=CryptoJS.enc.Utf8.parse(msg),msg=msg.toString(CryptoJS.enc.Latin1)),this.msgstate){case CONST.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION)return this.storedMgs.push({msg:msg,meta:meta}),void this.sendQueryMsg();this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(msg+=CONST.WHITESPACE_TAG,this.ALLOW_V3&&(msg+=CONST.WHITESPACE_TAG_V3),this.ALLOW_V2&&(msg+=CONST.WHITESPACE_TAG_V2));break;case CONST.MSGSTATE_FINISHED:return this.storedMgs.push({msg:msg,meta:meta}),void this.notify("Message cannot be sent at this time.","warn");case CONST.MSGSTATE_ENCRYPTED:msg=this.prepareMsg(msg);break;default:throw new Error("Unknown message state.")}msg&&this.io(msg,meta)},OTR.prototype.receiveMsg=function(msg,meta){if(msg=Parse.parseMsg(this,msg)){switch(msg.cls){case"error":return void this.notify(msg.msg);case"ake":return msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags)?void this.notify("Received a message intended for a different session.","warn"):void this.ake.handleAKE(msg);case"data":if(msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags))return void this.notify("Received a message intended for a different session.","warn");msg.msg=this.handleDataMsg(msg),msg.encrypted=!0;break;case"query":this.msgstate===CONST.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(msg);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&this.notify("Received an unencrypted message.","warn"),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&msg.ver.length>0&&this.doAKE(msg)}msg.msg&&this.trigger("ui",[msg.msg,!!msg.encrypted,meta])}},OTR.prototype.checkInstanceTags=function(it){var their_it=HLP.readLen(it.substr(0,4)),our_it=HLP.readLen(it.substr(4,4));if(our_it&&our_it!==HLP.readLen(this.our_instance_tag))return!0;if(HLP.readLen(this.their_instance_tag)){if(HLP.readLen(this.their_instance_tag)!==their_it)return!0}else{if(100>their_it)return!0;this.their_instance_tag=HLP.packINT(their_it)}},OTR.prototype.doAKE=function(msg){this.ALLOW_V3&&~msg.ver.indexOf(CONST.OTR_VERSION_3)?this.ake.initiateAKE(CONST.OTR_VERSION_3):this.ALLOW_V2&&~msg.ver.indexOf(CONST.OTR_VERSION_2)?this.ake.initiateAKE(CONST.OTR_VERSION_2):this.notify("OTR conversation requested, but no compatible protocol version found.","warn")},OTR.prototype.error=function(err){this.debug||(err="An OTR error has occurred."),this.io("?OTR Error:"+err),this.notify(err)},OTR.prototype.notify=function(err,severity){this.trigger("error",[err,severity||"error"])},OTR.prototype.sendStored=function(){var self=this;this.storedMgs.splice(0).forEach(function(elem){var msg=self.prepareMsg(elem.msg);self.io(msg,elem.meta)})},OTR.prototype.sendFile=function(filename){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return this.notify("Not ready to encrypt.");if(this.ake.otr_version!==CONST.OTR_VERSION_3)return this.notify("Protocol v3 required.");if(!filename)return this.notify("Please specify a filename.");var l1name=CryptoJS.enc.Utf8.parse(filename);if(l1name=l1name.toString(CryptoJS.enc.Latin1),l1name.length>=65532)return this.notify("Filename is too long.");var msg="\x00";msg+="\x00\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\x00\x00\x00",msg+=l1name,msg=this.prepareMsg(msg,filename),this.io(msg)},OTR.prototype.endOtr=function(cb){this.msgstate===CONST.MSGSTATE_ENCRYPTED?("function"==typeof cb&&(cb=new OTRCB(cb)),this.sendMsg("\x00\x00\x00\x00",cb),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)):"function"==typeof cb&&setTimeout(cb,0),this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[CONST.STATUS_END_OTR])},OTR.makeInstanceTag=function(){var num=BigInt.randBigInt(32);return BigInt.greater(BigInt.str2bigInt("100",16),num)?OTR.makeInstanceTag():HLP.packINT(parseInt(BigInt.bigInt2str(num,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),/*!
* Source: lib/i18next/release/i18next-latest.min.js, license: MIT, url: http://i18next.com/
*/
-!function(){function a(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function b(a,c){for(var d in c)d in a?b(a[d],c[d]):a[d]=c[d];return a}function c(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function d(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function e(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(192|d>>6),b+=String.fromCharCode(128|63&d)):(b+=String.fromCharCode(224|d>>12),b+=String.fromCharCode(128|63&d>>6),b+=String.fromCharCode(128|63&d))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l<a.length);return k},f=function(){for(var a=arguments[0],b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}return a},g=function(a,d,e,h){"function"==typeof e&&(h=e,e={}),e.cache=e.cache||!1,e.data=e.data||{},e.headers=e.headers||{},e.jsonp=e.jsonp||!1,e.async=void 0===e.async?!0:e.async;var i,j=f({accept:"*/*","content-type":"application/x-www-form-urlencoded;charset=UTF-8"},g.headers,e.headers);if(i="application/json"===j["content-type"]?JSON.stringify(e.data):c(e.data),"GET"===a){var k=[];if(i&&(k.push(i),i=null),e.cache||k.push("_="+(new Date).getTime()),e.jsonp&&(k.push("callback="+e.jsonp),k.push("jsonp="+e.jsonp)),k=k.join("&"),k.length>1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,void l.appendChild(m)}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function f(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),L=T.toLanguages(P.lng),F=L[0],T.log("currentLng set to: "+F),P.useCookie&&T.cookie.read(P.cookieName)!==F&&T.cookie.create(P.cookieName,F,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",F);var c=z;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,z(a,b)},c.lng=F),W.setCurrentLng(F),H&&P.setJqueryExt&&s();var d;if(H&&H.Deferred&&(d=H.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return I.sync.load(e,P,function(a,e){J=e,M=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return J=P.resStore,M=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function g(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return f(b)}function h(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{},d?T.deepExtend(J[a][b],c):T.extend(J[a][b],c)}function i(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{};var c=J[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{},J[a][b]={}}function k(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=J[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++}function l(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&k(a,b,d,c[d])}function m(a){P.ns.defaultNs=a}function n(a,b){o([a],b)}function o(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=J[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?I.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){J[f]=J[f]||{},J[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&I.sync._storeLocal(J),b())})})}):b&&b()}function p(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,f(b,c)}function q(){return F}function r(a){J={},p(F,a)}function s(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.html(H.t(b,f));else if("text"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.text()},c):c,a.text(H.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.prepend(H.t(b,f));else if("append"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.append(H.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?H.extend({defaultValue:a.data(g)},c):c;var h=H.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?H.extend({defaultValue:a.attr(d)},c):c,a.attr(d,H.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");H.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}H.t=H.t||z,H.fn.i18n=function(a){return this.each(function(){b(H(this),a);var c=H(this).find("["+P.selectorAttr+"]");c.each(function(){b(H(this),a)})})}}function t(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=t(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function u(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(K++,!(K>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=C(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function v(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function w(a){return void 0!==a.count&&"string"!=typeof a.count}function x(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function y(a,b){b=b||{};var c=A(a,b),d=D(a,b);return void 0!==d||d===c}function z(a,b){return b=b||{},M?(K=0,C.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function A(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function B(){for(var a=[],b=1;b<arguments.length;b++)a.push(arguments[b]);return{postProcess:"sprintf",sprintf:a}}function C(a,b){if(b&&"object"!=typeof b?"sprintf"===P.shortcutFunction?b=B.apply(null,arguments):"defaultValue"===P.shortcutFunction&&(b={defaultValue:b}):b=b||{},"object"==typeof P.defaultVariables&&(b=T.extend({},P.defaultVariables,b)),void 0===a||null===a||""===a)return"";"string"==typeof a&&(a=[a]);var c=a[0];if(a.length>1)for(var d=0;d<a.length&&(c=a[d],!y(c,b));d++);var e,f=A(c,b),g=D(c,b),h=b.lng?T.toLanguages(b.lng,b.fallbackLng):L,i=b.ns||P.ns.defaultNs;c.indexOf(P.nsseparator)>-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j=b.postProcess||P.postProcess;void 0!==g&&j&&X[j]&&(g=X[j](g,c,b));var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=t(f,b),f=u(f,b),j&&X[j])){var l=A(c,b);g=X[j](l,c,b)}return void 0!==g?g:f}function D(a,b){b=b||{};var c,d,e=A(a,b),f=L;if(!J)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!J[f[0]])){var g=P.getAsync;P.getAsync=!1,I.sync.load(f,P,function(a,b){T.extend(J,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(v(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=z(j,c),d!=P.contextNotFound)return t(d,{context:b.context})}if(w(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=z(k,c),d!=P.pluralNotFound)return t(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return d;var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),delete b.lng,d=z(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(x(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!w(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=z(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var y=f[r],B=0,E=J[y]&&J[y][h];q[B];)E=E&&E[q[B]],B++;if(void 0!==E){var F=Object.prototype.toString.apply(E);if("string"==typeof E)E=t(E,b),E=u(E,b);else if("[object Array]"!==F||P.returnObjectTrees||b.returnObjectTrees){if(null===E&&P.fallbackOnNull===!0)E=void 0;else if(null!==E)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==F&&"[object Function]"!==F&&"[object RegExp]"!==F){var G="[object Array]"===F?[]:{};T.each(E,function(c){G[c]=C(h+P.nsseparator+a+P.keyseparator+c,b)}),E=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?E=P.objectTreeKeyHandler(a,E,y,h,b):(E="key '"+h+":"+a+" ("+y+")' returned an object instead of string.",T.log(E))}else E=E.join("\n"),E=t(E,b),E=u(E,b);"string"==typeof E&&""===E.trim()&&P.fallbackOnEmpty===!0&&(E=void 0),p=E}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,K=P.fallbackNS.length;K>H;H++)if(p=D(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var M=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(M!==N)break}}else p=D(a,b);b.isFallbackLookup=!1}return p}function E(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d<b.length;d++){var e=b[d].indexOf("=");if(e>0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(window.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e<navigator.languages.length;e++)c.push(navigator.languages[e]);navigator.userLanguage&&c.push(navigator.userLanguage),navigator.language&&c.push(navigator.language)}return function(){for(var d=0;d<c.length;d++){var e=c[d];if(e.indexOf("-")>-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var F,G=this,H=G.jQuery||G.Zepto,I={},J={},K=0,L=[],M=!1,N={};if("undefined"!=typeof module&&module.exports){if(!H)try{H=require("jquery")}catch(O){}H&&(H.i18n=H.i18n||I),module.exports=I}else H&&(H.i18n=H.i18n||I),G.i18n=G.i18n||I;N={load:function(a,b,c){b.useLocalStorage?N._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?N._fetch(f,b,function(a,b){T.extend(e,b),N._storeLocal(b),c(null,e)}):c(null,e)}):N._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=window.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=t(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):N._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=t(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;h<P.fallbackLng.length;h++)g.push({lng:P.fallbackLng[h],url:t(P.resPostPath,{lng:P.fallbackLng[h],ns:b})});else if("current"===P.sendMissingTo||"fallback"===P.sendMissingTo&&P.fallbackLng[0]===!1)g.push({lng:a,url:t(P.resPostPath,{lng:a,ns:b})});else if("all"===P.sendMissingTo)for(var h=0,i=e.length;i>h;h++)g.push({lng:e[h],url:t(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=J[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:r};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:N.postMissing,shortcutFunction:"sprintf"},Q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+6e4*c),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return null},remove:function(a){this.create(a,"",-1)}},S={create:function(){},read:function(){return null},remove:function(){}},T={extend:H?H.extend:a,deepExtend:b,each:H?H.each:c,ajax:H?H.ajax:"undefined"!=typeof document?e:function(){},cookie:"undefined"!=typeof document?R:S,detectLanguage:E,escape:d,log:function(a){P.debug&&"undefined"!=typeof console&&console.log(a)},error:function(a){"undefined"!=typeof console&&console.error(a)},getCountyIndexOfLng:function(a){var b=0;return("nb-NO"===a||"nn-NO"===a||"nb-no"===a||"nn-no"===a)&&(b=1),b},toLanguages:function(a){function b(a){var b=a;if("string"==typeof a&&a.indexOf("-")>-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h<P.fallbackLng.length;h++)-1===d.indexOf(P.fallbackLng[h])&&P.fallbackLng[h]&&d.push(b(P.fallbackLng[h]));return d},regexEscape:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},regexReplacementEscape:function(a){return"string"==typeof a?a.replace(/\$/g,"$$$$"):a},localStorage:{setItem:function(a,b){if(window.localStorage)try{window.localStorage.setItem(a,b)}catch(c){T.log('failed to set value for key "'+a+'" to localStorage.')}}}};T.applyReplacement=t;var U=[["ach","Acholi",[1,2],1],["af","Afrikaans",[1,2],2],["ak","Akan",[1,2],1],["am","Amharic",[1,2],1],["an","Aragonese",[1,2],2],["ar","Arabic",[0,1,2,3,11,100],5],["arn","Mapudungun",[1,2],1],["ast","Asturian",[1,2],2],["ay","Aymará",[1],3],["az","Azerbaijani",[1,2],2],["be","Belarusian",[1,2,5],4],["bg","Bulgarian",[1,2],2],["bn","Bengali",[1,2],2],["bo","Tibetan",[1],3],["br","Breton",[1,2],1],["bs","Bosnian",[1,2,5],4],["ca","Catalan",[1,2],2],["cgg","Chiga",[1],3],["cs","Czech",[1,2,5],6],["csb","Kashubian",[1,2,5],7],["cy","Welsh",[1,2,3,8],8],["da","Danish",[1,2],2],["de","German",[1,2],2],["dev","Development Fallback",[1,2],2],["dz","Dzongkha",[1],3],["el","Greek",[1,2],2],["en","English",[1,2],2],["eo","Esperanto",[1,2],2],["es","Spanish",[1,2],2],["es_ar","Argentinean Spanish",[1,2],2],["et","Estonian",[1,2],2],["eu","Basque",[1,2],2],["fa","Persian",[1],3],["fi","Finnish",[1,2],2],["fil","Filipino",[1,2],1],["fo","Faroese",[1,2],2],["fr","French",[1,2],9],["fur","Friulian",[1,2],2],["fy","Frisian",[1,2],2],["ga","Irish",[1,2,3,7,11],10],["gd","Scottish Gaelic",[1,2,3,20],11],["gl","Galician",[1,2],2],["gu","Gujarati",[1,2],2],["gun","Gun",[1,2],1],["ha","Hausa",[1,2],2],["he","Hebrew",[1,2],2],["hi","Hindi",[1,2],2],["hr","Croatian",[1,2,5],4],["hu","Hungarian",[1,2],2],["hy","Armenian",[1,2],2],["ia","Interlingua",[1,2],2],["id","Indonesian",[1],3],["is","Icelandic",[1,2],12],["it","Italian",[1,2],2],["ja","Japanese",[1],3],["jbo","Lojban",[1],3],["jv","Javanese",[0,1],13],["ka","Georgian",[1],3],["kk","Kazakh",[1],3],["km","Khmer",[1],3],["kn","Kannada",[1,2],2],["ko","Korean",[1],3],["ku","Kurdish",[1,2],2],["kw","Cornish",[1,2,3,4],14],["ky","Kyrgyz",[1],3],["lb","Letzeburgesch",[1,2],2],["ln","Lingala",[1,2],1],["lo","Lao",[1],3],["lt","Lithuanian",[1,2,10],15],["lv","Latvian",[1,2,0],16],["mai","Maithili",[1,2],2],["mfe","Mauritian Creole",[1,2],1],["mg","Malagasy",[1,2],1],["mi","Maori",[1,2],1],["mk","Macedonian",[1,2],17],["ml","Malayalam",[1,2],2],["mn","Mongolian",[1,2],2],["mnk","Mandinka",[0,1,2],18],["mr","Marathi",[1,2],2],["ms","Malay",[1],3],["mt","Maltese",[1,2,11,20],19],["nah","Nahuatl",[1,2],2],["nap","Neapolitan",[1,2],2],["nb","Norwegian Bokmal",[1,2],2],["ne","Nepali",[1,2],2],["nl","Dutch",[1,2],2],["nn","Norwegian Nynorsk",[1,2],2],["no","Norwegian",[1,2],2],["nso","Northern Sotho",[1,2],2],["oc","Occitan",[1,2],1],["or","Oriya",[2,1],2],["pa","Punjabi",[1,2],2],["pap","Papiamento",[1,2],2],["pl","Polish",[1,2,5],7],["pms","Piemontese",[1,2],2],["ps","Pashto",[1,2],2],["pt","Portuguese",[1,2],2],["pt_br","Brazilian Portuguese",[1,2],2],["rm","Romansh",[1,2],2],["ro","Romanian",[1,2,20],20],["ru","Russian",[1,2,5],4],["sah","Yakut",[1],3],["sco","Scots",[1,2],2],["se","Northern Sami",[1,2],2],["si","Sinhala",[1,2],2],["sk","Slovak",[1,2,5],6],["sl","Slovenian",[5,1,2,3],21],["so","Somali",[1,2],2],["son","Songhay",[1,2],2],["sq","Albanian",[1,2],2],["sr","Serbian",[1,2,5],4],["su","Sundanese",[1],3],["sv","Swedish",[1,2],2],["sw","Swahili",[1,2],2],["ta","Tamil",[1,2],2],["te","Telugu",[1,2],2],["tg","Tajik",[1,2],1],["th","Thai",[1],3],["ti","Tigrinya",[1,2],1],["tk","Turkmen",[1,2],2],["tr","Turkish",[1,2],1],["tt","Tatar",[1],3],["ug","Uyghur",[1],3],["uk","Ukrainian",[1,2,5],4],["ur","Urdu",[1,2],2],["uz","Uzbek",[1,2],1],["vi","Vietnamese",[1],3],["wa","Walloon",[1,2],1],["wo","Wolof",[1],3],["yo","Yoruba",[1,2],2],["zh","Chinese",[1],3]],V={1:function(a){return Number(a>1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(1!=a%10||11==a%100)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(1==a%10&&11!=a%100?0:0!==a?1:2)},17:function(a){return Number(1==a||1==a%10?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(1==a%100?1:2==a%100?2:3==a%100||4==a%100?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],c&&c.numbers.length<=1?!1:1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.plurals(d.noAbs?c:Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g<h[2].length;g++){if(!e.hasOwnProperty(h[2][g]))throw Z('[sprintf] property "%s" does not exist',h[2][g]);e=e[h[2][g]]}else e=h[1]?d[h[1]]:d[l++];if(/[^s]/.test(h[8])&&"number"!=a(e))throw Z("[sprintf] expecting number but found %s",a(e));switch(h[8]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e,10);break;case"e":e=h[7]?e.toExponential(h[7]):e.toExponential();break;case"f":e=h[7]?parseFloat(e).toFixed(h[7]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&h[7]?e.substring(0,h[7]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(h[8])&&h[3]&&e>=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),I.init=f,I.setLng=p,I.preload=g,I.addResourceBundle=h,I.hasResourceBundle=i,I.addResource=k,I.addResources=l,I.removeResourceBundle=j,I.loadNamespace=n,I.loadNamespaces=o,I.setDefaultNamespace=m,I.t=z,I.translate=z,I.exists=y,I.detectLanguage=T.detectLanguage,I.pluralExtensions=W,I.sync=N,I.functions=T,I.lng=q,I.addPostProcessor=Y,I.options=P}(),/*!
+!function(){function a(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function b(a,c){for(var d in c)d in a?b(a[d],c[d]):a[d]=c[d];return a}function c(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function d(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function e(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(192|d>>6),b+=String.fromCharCode(128|63&d)):(b+=String.fromCharCode(224|d>>12),b+=String.fromCharCode(128|63&d>>6),b+=String.fromCharCode(128|63&d))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l<a.length);return k},f=function(){for(var a=arguments[0],b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}return a},g=function(a,d,e,h){"function"==typeof e&&(h=e,e={}),e.cache=e.cache||!1,e.data=e.data||{},e.headers=e.headers||{},e.jsonp=e.jsonp||!1,e.async=void 0===e.async?!0:e.async;var i,j=f({accept:"*/*","content-type":"application/x-www-form-urlencoded;charset=UTF-8"},g.headers,e.headers);if(i="application/json"===j["content-type"]?JSON.stringify(e.data):c(e.data),"GET"===a){var k=[];if(i&&(k.push(i),i=null),e.cache||k.push("_="+(new Date).getTime()),e.jsonp&&(k.push("callback="+e.jsonp),k.push("jsonp="+e.jsonp)),k=k.join("&"),k.length>1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,void l.appendChild(m)}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function f(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),L=T.toLanguages(P.lng),F=L[0],T.log("currentLng set to: "+F),P.useCookie&&T.cookie.read(P.cookieName)!==F&&T.cookie.create(P.cookieName,F,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",F);var c=z;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,z(a,b)},c.lng=F),W.setCurrentLng(F),H&&P.setJqueryExt&&s();var d;if(H&&H.Deferred&&(d=H.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return I.sync.load(e,P,function(a,e){J=e,M=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return J=P.resStore,M=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function g(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return f(b)}function h(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{},d?T.deepExtend(J[a][b],c):T.extend(J[a][b],c)}function i(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{};var c=J[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{},J[a][b]={}}function k(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=J[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++}function l(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&k(a,b,d,c[d])}function m(a){P.ns.defaultNs=a}function n(a,b){o([a],b)}function o(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=J[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?I.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){J[f]=J[f]||{},J[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&I.sync._storeLocal(J),b())})})}):b&&b()}function p(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,f(b,c)}function q(){return F}function r(a){J={},p(F,a)}function s(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.html(H.t(b,f));else if("text"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.text()},c):c,a.text(H.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.prepend(H.t(b,f));else if("append"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.append(H.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?H.extend({defaultValue:a.data(g)},c):c;var h=H.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?H.extend({defaultValue:a.attr(d)},c):c,a.attr(d,H.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");H.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}H.t=H.t||z,H.fn.i18n=function(a){return this.each(function(){b(H(this),a);var c=H(this).find("["+P.selectorAttr+"]");c.each(function(){b(H(this),a)})})}}function t(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=t(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function u(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(K++,!(K>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=C(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function v(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function w(a){return void 0!==a.count&&"string"!=typeof a.count}function x(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function y(a,b){b=b||{};var c=A(a,b),d=D(a,b);return void 0!==d||d===c}function z(a,b){return b=b||{},M?(K=0,C.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function A(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function B(){for(var a=[],b=1;b<arguments.length;b++)a.push(arguments[b]);return{postProcess:"sprintf",sprintf:a}}function C(a,b){if(b&&"object"!=typeof b?"sprintf"===P.shortcutFunction?b=B.apply(null,arguments):"defaultValue"===P.shortcutFunction&&(b={defaultValue:b}):b=b||{},"object"==typeof P.defaultVariables&&(b=T.extend({},P.defaultVariables,b)),void 0===a||null===a||""===a)return"";"string"==typeof a&&(a=[a]);var c=a[0];if(a.length>1)for(var d=0;d<a.length&&(c=a[d],!y(c,b));d++);var e,f=A(c,b),g=D(c,b),h=b.lng?T.toLanguages(b.lng,b.fallbackLng):L,i=b.ns||P.ns.defaultNs;c.indexOf(P.nsseparator)>-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j=b.postProcess||P.postProcess;void 0!==g&&j&&X[j]&&(g=X[j](g,c,b));var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=t(f,b),f=u(f,b),j&&X[j])){var l=A(c,b);g=X[j](l,c,b)}return void 0!==g?g:f}function D(a,b){b=b||{};var c,d,e=A(a,b),f=L;if(!J)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!J[f[0]])){var g=P.getAsync;P.getAsync=!1,I.sync.load(f,P,function(a,b){T.extend(J,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(v(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=z(j,c),d!=P.contextNotFound)return t(d,{context:b.context})}if(w(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=z(k,c),d!=P.pluralNotFound)return t(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return d;var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),delete b.lng,d=z(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(x(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!w(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=z(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var y=f[r],B=0,E=J[y]&&J[y][h];q[B];)E=E&&E[q[B]],B++;if(void 0!==E){var F=Object.prototype.toString.apply(E);if("string"==typeof E)E=t(E,b),E=u(E,b);else if("[object Array]"!==F||P.returnObjectTrees||b.returnObjectTrees){if(null===E&&P.fallbackOnNull===!0)E=void 0;else if(null!==E)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==F&&"[object Function]"!==F&&"[object RegExp]"!==F){var G="[object Array]"===F?[]:{};T.each(E,function(c){G[c]=C(h+P.nsseparator+a+P.keyseparator+c,b)}),E=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?E=P.objectTreeKeyHandler(a,E,y,h,b):(E="key '"+h+":"+a+" ("+y+")' returned an object instead of string.",T.log(E))}else E=E.join("\n"),E=t(E,b),E=u(E,b);"string"==typeof E&&""===E.trim()&&P.fallbackOnEmpty===!0&&(E=void 0),p=E}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,K=P.fallbackNS.length;K>H;H++)if(p=D(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var M=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(M!==N)break}}else p=D(a,b);b.isFallbackLookup=!1}return p}function E(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d<b.length;d++){var e=b[d].indexOf("=");if(e>0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(window.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e<navigator.languages.length;e++)c.push(navigator.languages[e]);navigator.userLanguage&&c.push(navigator.userLanguage),navigator.language&&c.push(navigator.language)}return function(){for(var d=0;d<c.length;d++){var e=c[d];if(e.indexOf("-")>-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var F,G=this,H=G.jQuery||G.Zepto,I={},J={},K=0,L=[],M=!1,N={};if("undefined"!=typeof module&&module.exports){if(!H)try{H=require("jquery")}catch(O){}H&&(H.i18n=H.i18n||I),module.exports=I}else H&&(H.i18n=H.i18n||I),G.i18n=G.i18n||I;N={load:function(a,b,c){b.useLocalStorage?N._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?N._fetch(f,b,function(a,b){T.extend(e,b),N._storeLocal(b),c(null,e)}):c(null,e)}):N._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=window.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=t(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):N._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=t(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;h<P.fallbackLng.length;h++)g.push({lng:P.fallbackLng[h],url:t(P.resPostPath,{lng:P.fallbackLng[h],ns:b})});else if("current"===P.sendMissingTo||"fallback"===P.sendMissingTo&&P.fallbackLng[0]===!1)g.push({lng:a,url:t(P.resPostPath,{lng:a,ns:b})});else if("all"===P.sendMissingTo)for(var h=0,i=e.length;i>h;h++)g.push({lng:e[h],url:t(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=J[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:r};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:N.postMissing,shortcutFunction:"sprintf"},Q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+6e4*c),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return null},remove:function(a){this.create(a,"",-1)}},S={create:function(){},read:function(){return null},remove:function(){}},T={extend:H?H.extend:a,deepExtend:b,each:H?H.each:c,ajax:H?H.ajax:"undefined"!=typeof document?e:function(){},cookie:"undefined"!=typeof document?R:S,detectLanguage:E,escape:d,log:function(a){P.debug&&"undefined"!=typeof console&&console.log(a)},error:function(a){"undefined"!=typeof console&&console.error(a)},getCountyIndexOfLng:function(a){var b=0;return("nb-NO"===a||"nn-NO"===a||"nb-no"===a||"nn-no"===a)&&(b=1),b},toLanguages:function(a){function b(a){var b=a;if("string"==typeof a&&a.indexOf("-")>-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h<P.fallbackLng.length;h++)-1===d.indexOf(P.fallbackLng[h])&&P.fallbackLng[h]&&d.push(b(P.fallbackLng[h]));return d},regexEscape:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},regexReplacementEscape:function(a){return"string"==typeof a?a.replace(/\$/g,"$$$$"):a},localStorage:{setItem:function(a,b){if(window.localStorage)try{window.localStorage.setItem(a,b)}catch(c){T.log('failed to set value for key "'+a+'" to localStorage.')}}}};T.applyReplacement=t;var U=[["ach","Acholi",[1,2],1],["af","Afrikaans",[1,2],2],["ak","Akan",[1,2],1],["am","Amharic",[1,2],1],["an","Aragonese",[1,2],2],["ar","Arabic",[0,1,2,3,11,100],5],["arn","Mapudungun",[1,2],1],["ast","Asturian",[1,2],2],["ay","Aymará",[1],3],["az","Azerbaijani",[1,2],2],["be","Belarusian",[1,2,5],4],["bg","Bulgarian",[1,2],2],["bn","Bengali",[1,2],2],["bo","Tibetan",[1],3],["br","Breton",[1,2],1],["bs","Bosnian",[1,2,5],4],["ca","Catalan",[1,2],2],["cgg","Chiga",[1],3],["cs","Czech",[1,2,5],6],["csb","Kashubian",[1,2,5],7],["cy","Welsh",[1,2,3,8],8],["da","Danish",[1,2],2],["de","German",[1,2],2],["dev","Development Fallback",[1,2],2],["dz","Dzongkha",[1],3],["el","Greek",[1,2],2],["en","English",[1,2],2],["eo","Esperanto",[1,2],2],["es","Spanish",[1,2],2],["es_ar","Argentinean Spanish",[1,2],2],["et","Estonian",[1,2],2],["eu","Basque",[1,2],2],["fa","Persian",[1],3],["fi","Finnish",[1,2],2],["fil","Filipino",[1,2],1],["fo","Faroese",[1,2],2],["fr","French",[1,2],9],["fur","Friulian",[1,2],2],["fy","Frisian",[1,2],2],["ga","Irish",[1,2,3,7,11],10],["gd","Scottish Gaelic",[1,2,3,20],11],["gl","Galician",[1,2],2],["gu","Gujarati",[1,2],2],["gun","Gun",[1,2],1],["ha","Hausa",[1,2],2],["he","Hebrew",[1,2],2],["hi","Hindi",[1,2],2],["hr","Croatian",[1,2,5],4],["hu","Hungarian",[1,2],2],["hy","Armenian",[1,2],2],["ia","Interlingua",[1,2],2],["id","Indonesian",[1],3],["is","Icelandic",[1,2],12],["it","Italian",[1,2],2],["ja","Japanese",[1],3],["jbo","Lojban",[1],3],["jv","Javanese",[0,1],13],["ka","Georgian",[1],3],["kk","Kazakh",[1],3],["km","Khmer",[1],3],["kn","Kannada",[1,2],2],["ko","Korean",[1],3],["ku","Kurdish",[1,2],2],["kw","Cornish",[1,2,3,4],14],["ky","Kyrgyz",[1],3],["lb","Letzeburgesch",[1,2],2],["ln","Lingala",[1,2],1],["lo","Lao",[1],3],["lt","Lithuanian",[1,2,10],15],["lv","Latvian",[1,2,0],16],["mai","Maithili",[1,2],2],["mfe","Mauritian Creole",[1,2],1],["mg","Malagasy",[1,2],1],["mi","Maori",[1,2],1],["mk","Macedonian",[1,2],17],["ml","Malayalam",[1,2],2],["mn","Mongolian",[1,2],2],["mnk","Mandinka",[0,1,2],18],["mr","Marathi",[1,2],2],["ms","Malay",[1],3],["mt","Maltese",[1,2,11,20],19],["nah","Nahuatl",[1,2],2],["nap","Neapolitan",[1,2],2],["nb","Norwegian Bokmal",[1,2],2],["ne","Nepali",[1,2],2],["nl","Dutch",[1,2],2],["nn","Norwegian Nynorsk",[1,2],2],["no","Norwegian",[1,2],2],["nso","Northern Sotho",[1,2],2],["oc","Occitan",[1,2],1],["or","Oriya",[2,1],2],["pa","Punjabi",[1,2],2],["pap","Papiamento",[1,2],2],["pl","Polish",[1,2,5],7],["pms","Piemontese",[1,2],2],["ps","Pashto",[1,2],2],["pt","Portuguese",[1,2],2],["pt_br","Brazilian Portuguese",[1,2],2],["rm","Romansh",[1,2],2],["ro","Romanian",[1,2,20],20],["ru","Russian",[1,2,5],4],["sah","Yakut",[1],3],["sco","Scots",[1,2],2],["se","Northern Sami",[1,2],2],["si","Sinhala",[1,2],2],["sk","Slovak",[1,2,5],6],["sl","Slovenian",[5,1,2,3],21],["so","Somali",[1,2],2],["son","Songhay",[1,2],2],["sq","Albanian",[1,2],2],["sr","Serbian",[1,2,5],4],["su","Sundanese",[1],3],["sv","Swedish",[1,2],2],["sw","Swahili",[1,2],2],["ta","Tamil",[1,2],2],["te","Telugu",[1,2],2],["tg","Tajik",[1,2],1],["th","Thai",[1],3],["ti","Tigrinya",[1,2],1],["tk","Turkmen",[1,2],2],["tr","Turkish",[1,2],1],["tt","Tatar",[1],3],["ug","Uyghur",[1],3],["uk","Ukrainian",[1,2,5],4],["ur","Urdu",[1,2],2],["uz","Uzbek",[1,2],1],["vi","Vietnamese",[1],3],["wa","Walloon",[1,2],1],["wo","Wolof",[1],3],["yo","Yoruba",[1,2],2],["zh","Chinese",[1],3]],V={1:function(a){return Number(a>1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(1!=a%10||11==a%100)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(1==a%10&&11!=a%100?0:0!==a?1:2)},17:function(a){return Number(1==a||1==a%10?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(1==a%100?1:2==a%100?2:3==a%100||4==a%100?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],c&&c.numbers.length<=1?!1:1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.noAbs?d.plurals(c):d.plurals(Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g<h[2].length;g++){if(!e.hasOwnProperty(h[2][g]))throw Z('[sprintf] property "%s" does not exist',h[2][g]);e=e[h[2][g]]}else e=h[1]?d[h[1]]:d[l++];if(/[^s]/.test(h[8])&&"number"!=a(e))throw Z("[sprintf] expecting number but found %s",a(e));switch(h[8]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e,10);break;case"e":e=h[7]?e.toExponential(h[7]):e.toExponential();break;case"f":e=h[7]?parseFloat(e).toFixed(h[7]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&h[7]?e.substring(0,h[7]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(h[8])&&h[3]&&e>=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),I.init=f,I.setLng=p,I.preload=g,I.addResourceBundle=h,I.hasResourceBundle=i,I.addResource=k,I.addResources=l,I.removeResourceBundle=j,I.loadNamespace=n,I.loadNamespaces=o,I.setDefaultNamespace=m,I.t=z,I.translate=z,I.exists=y,I.detectLanguage=T.detectLanguage,I.pluralExtensions=W,I.sync=N,I.functions=T,I.lng=q,I.addPostProcessor=Y,I.options=P}(),/*!
* Source: lib/magnific-popup/dist/jquery.magnific-popup.min.js, license: MIT, url: http://dimsemenov.com/plugins/magnific-popup/
*/
/*! Magnific Popup - v1.0.0 - 2015-01-03
@@ -124,8 +124,9 @@ case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(m
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",b.ev=c.mainEl&&c.mainEl.length?c.mainEl.eq(0):d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.wrap.css(b.fixedContentPos?{overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}:{top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),b.currTemplate[d]=f?a(f):!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||2!==c.which&&!c.ctrlKey&&!c.metaKey){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});/*!
* Source: lib/translation.js, license: MIT, url: https://webtranslateit.com/en/projects/10365-JSXC
*/
-var I18next={de:{translation:{Logging_in:"Login läuft…",your_connection_is_unencrypted:"Deine Verbindung ist unverschlüsselt.",your_connection_is_encrypted:"Deine Verbindung ist verschlüsselt.",your_buddy_closed_the_private_connection:"Dein Kontakt hat die private Verbindung getrennt.",start_private:"Privat starten",close_private:"Privat abbrechen",your_buddy_is_verificated:"Dein Kontakt ist verifiziert.",you_have_only_a_subscription_in_one_way:"Der Kontaktstatus ist einseitig.",authentication_query_sent:"Authentifizierungsanfrage gesendet.",your_message_wasnt_send_please_end_your_private_conversation:"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.",unencrypted_message_received:"Unverschlüsselte Nachricht erhalten.",not_available:"Nicht verfügbar.",no_connection:"Keine Verbindung.",relogin:"Neu anmelden.",trying_to_start_private_conversation:"Versuche private Konversation zu starten.",Verified:"Verifiziert",Unverified:"Unverifiziert",private_conversation_aborted:"Private Konversation abgebrochen.",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!",conversation_is_now_verified:"Konversation ist jetzt verifiziert",authentication_failed:"Authentifizierung fehlgeschlagen.",Creating_your_private_key_:"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.",Authenticating_a_buddy_helps_:"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.",How_do_you_want_to_authenticate_your_buddy:"Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?",Select_method:"Wähle...",Manual:"Manual",Question:"Frage",Secret:"Geheimnis",To_verify_the_fingerprint_:"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.",Your_fingerprint:"Dein Fingerprint",Buddy_fingerprint:"Sein/Ihr Fingerprint",Close:"Schließen",Compared:"Verglichen",To_authenticate_using_a_question_:"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.",Ask:"Frage",To_authenticate_pick_a_secret_:"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.",Compare:"Vergleiche",Fingerprints:"Fingerprints",Authentication:"Authentifizierung",Message:"Nachricht",Add_buddy:"Kontakt hinzufügen",rename_buddy:"Kontakt umbenennen",delete_buddy:"Kontakt löschen",Login:"Anmeldung",Username:"Benutzername",Password:"Passwort",Cancel:"Abbrechen",Connect:"Verbinden",Type_in_the_full_username_:"Gib bitte den vollen Benutzernamen und optional ein Alias an.",Alias:"Alias",Add:"Hinzufügen",Subscription_request:"Kontaktanfrage",You_have_a_request_from:"Du hast eine Anfrage von",Deny:"Ablehnen",Approve:"Bestätigen",Remove_buddy:"Kontakt entfernen",You_are_about_to_remove_:"Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",Continue_without_chat:"Weiter ohne Chat",Please_wait:"Bitte warten",Login_failed:"Chat-Anmeldung fehlgeschlagen",Sorry_we_cant_authentikate_:"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?",Retry:"Zurück",clear_history:"Lösche Verlauf",New_message_from:"Neue Nachricht von __name__",Should_we_notify_you_:"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?",Please_accept_:'Bitte klick auf den "Zulassen" Button oben.',Hide_offline:"Offline ausblenden",Show_offline:"Offline einblenden",About:"Über",dnd:"Beschäftigt",Mute:"Ton aus",Unmute:"Ton an",Subscription:"Bezug",both:"beidseitig",Status:"Status",online:"online",chat:"chat",away:"abwesend",xa:"länger abwesend",offline:"offline",none:"keine",Unknown_instance_tag:"Unbekannter instance tag.",Not_one_of_our_latest_keys:"Nicht einer unserer letzten Schlüssel.",Received_an_unreadable_encrypted_message:"Eine unlesbare verschlüsselte Nachricht erhalten.",Online:"Online",Chatty:"Gesprächig",Away:"Abwesend",Extended_away:"Länger abwesend",Offline:"Offline",Friendship_request:"Kontaktanfrage",Confirm:"Bestätigen",Dismiss:"Ablehnen",Remove:"Löschen",Online_help:"Online Hilfe",FN:"Name",N:" ",FAMILY:"Familienname",GIVEN:"Vorname",NICKNAME:"Spitzname",URL:"URL",ADR:"Adresse",STREET:"Straße",EXTADD:"Zusätzliche Adresse",LOCALITY:"Ortschaft",REGION:"Region",PCODE:"Postleitzahl",CTRY:"Land",TEL:"Telefon",NUMBER:"Nummer",EMAIL:"E-Mail",USERID:" ",ORG:"Organisation",ORGNAME:"Name",ORGUNIT:"Abteilung",TITLE:"Titel",ROLE:"Rolle",BDAY:"Geburtstag",DESC:"Beschreibung",PHOTO:" ",send_message:"Sende Nachricht",get_info:"Benutzerinformationen",Settings:"Einstellungen",Priority:"Priorität",Save:"Speichern",User_settings:"Benutzereinstellungen",A_fingerprint_:"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.",is:"ist",Login_options:"Anmeldeoptionen",BOSH_url:"BOSH url",Domain:"Domain",Resource:"Ressource",On_login:"Beim Anmelden",Received_an_unencrypted_message:"Unverschlüsselte Nachricht empfangen",Sorry_your_buddy_doesnt_provide_any_information:"Dein Kontakt stellt leider keine Informationen bereit.",Info_about:"Info über",Authentication_aborted:"Authentifizierung abgebrochen.",Authentication_request_received:"Authentifizierungsanfrage empfangen.",Log_in_without_chat:"Anmelden ohne Chat",has_come_online:"ist online gekommen",Unknown_sender:"Unbekannter Sender",Please_allow_access_to_microphone_and_camera:'Bitte klick auf den "Zulassen" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.',Incoming_call:"Eingehender Anruf",from:"von",Do_you_want_to_accept_the_call_from:"Möchtest Du den Anruf annehmen von",Reject:"Ablehnen",Accept:"Annehmen",hang_up:"Auflegen",snapshot:"Schnappschuss",mute_my_audio:"Mein Ton aus",pause_my_video:"Mein Video pausieren",fullscreen:"Vollbild",Info:"Info",Local_IP:"Lokale IP",Remote_IP:"Remote IP",Local_Fingerprint:"Lokaler Fingerprint",Remote_Fingerprint:"Remote Fingerprint",Video_call_not_possible:"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.",Start_video_call:"Starte Videoanruf",Join_chat:"Gruppe beitreten",Join:"Betreten",Room:"Gruppe",Nickname:"Nickname",left_the_building:"__nickname__ hat die Gruppe verlassen",entered_the_room:"__nickname__ ist der Gruppe beigetreten",is_now_known_as:"__oldNickname__ ist nun unter __newNickname__ bekannt",This_room_is:"Diese Gruppe ist",muc_hidden:{keyword:"versteckt",description:"kann durch die Suche nicht gefunden werden"},muc_membersonly:{keyword:"nur für Mitglieder",description:"du musst auf der Mitgliederliste stehen"},muc_moderated:{keyword:"moderiert",description:'Nur Personen die "Mitspracherecht" haben dürfen Nachrichten senden'},muc_nonanonymous:{keyword:"nicht anonym",description:"deine Jabber ID wird für alle Mitglieder sichtbar sein"},muc_open:{keyword:"offen",description:"jeder darf dieser Gruppe beitreten"},muc_passwordprotected:{keyword:"passwortgeschützt",description:"du benötigst das korrekte Passwort"},muc_persistent:{keyword:"permanent",description:"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_public:{keyword:"öffentlich",description:"kann durch die Suche gefunden werden"},muc_semianonymous:{keyword:"teilweise anonym",description:"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},muc_temporary:{keyword:"temporär",description:"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_unmoderated:{keyword:"nicht moderiert",description:"jeder darf Nachrichten senden"},muc_unsecured:{keyword:"ungesichert",description:"es wird kein Passwort benötigt"},Continue:"Weiter",Server:"Server",Rooms_are_loaded:"Gruppen werden geladen",Could_load_only:"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden",muc_explanation:"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten",You_already_joined_this_room:"Du bist dieser Gruppe bereits beigetreten",This_room_will_be_closed:"Diese Gruppe wird geschlossen",Room_not_found_:"Es wird eine neue Gruppe erstellt",Loading_room_information:"Informationen über Gruppe werden geladen",Destroy:"Auflösen",Leave:"Verlassen",changed_subject_to:"__nickname__ hat das Thema auf __subject__ geändert",muc_removed_kicked:"Du wurdest aus der Gruppe entfernt",muc_removed_info_kicked:"__nickname__ wurde aus der Gruppe entfernt",muc_removed_banned:"Du wurdest aus der Gruppe ausgeschlossen",muc_removed_info_banned:"__nickname__ wurde aus der Gruppe ausgeschlossen",muc_removed_affiliation:"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus",muc_removed_info_affiliation:"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus",muc_removed_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt",muc_removed_info_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt",muc_removed_shutdown:"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird",Reason:"Grund",message_not_send:"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",message_not_send_forbidden:'Deine Nachricht wurde nicht versandt, da du kein "Mitspracherecht" hast',"message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",This_room_has_been_closed:"Diese Gruppe wurde geschlossen",Room_logging_is_enabled:"Gesprächsverlauf kann öffentlich einsehbar sein",A_password_is_required:"Es wird ein Passwort benötigt",You_are_not_on_the_member_list:"Du bist kein eingetragenes Mitglied",You_are_banned_from_this_room:"Du wurdest von dieser Gruppe ausgeschlossen",Your_desired_nickname_:"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.",The_maximum_number_:"Die maximale Anzahl der Mitglieder wurde erreicht.",This_room_is_locked_:"Diese Gruppe ist gesperrt",You_are_not_allowed_to_create_:"Du darfst keine neue Gruppe erstellen",Alert:"Alarm",Call_started:"Anruf gestarted",Call_terminated:"Anruf beendet",Carbon_copy:null,Enable:"Aktivieren",jingle_reason_busy:"beschäftigt",jingle_reason_decline:"abgelehnt",jingle_reason_success:"aufgelegt",Media_failure:"Gerätefehler",No_local_audio_device:"Kein eigenes Audio Gerät",No_local_video_device:"Keine eigene Webcam",Ok:"Ok",PermissionDeniedError:"Du oder dein Browser haben die Audio/Video Berechtigung verweigert",Use_local_audio_device:"Nutze eigenes Audio Gerät",Use_local_video_device:"Benutze eigene Webcam",is_:"ist __status__",You_received_a_message_from_an_unknown_sender_:"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?",Your_roster_is_empty_add_:"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>",onsmp_explanation_question:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",onsmp_explanation_secret:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",from_sender:"von __sender__",Verified_private_conversation_started:"Verifiziert Private Konversation gestartet.",Unverified_private_conversation_started:"Unverifiziert Private Konversation gestartet."}},el:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},en:{translation:{Logging_in:"Logging in…",your_connection_is_unencrypted:"Your connection is unencrypted.",your_connection_is_encrypted:"Your connection is encrypted.",your_buddy_closed_the_private_connection:"Your contact closed the private connection.",start_private:"Start private",close_private:"Close private",your_buddy_is_verificated:"Your contact is verified.",you_have_only_a_subscription_in_one_way:"You only have a one-way subscription.",authentication_query_sent:"Authentication query sent.",your_message_wasnt_send_please_end_your_private_conversation:"Your message was not sent. Please end your private conversation.",unencrypted_message_received:"Unencrypted message received",not_available:"Not available",no_connection:"No connection!",relogin:"relogin",trying_to_start_private_conversation:"Trying to start private conversation!",Verified:"Verified",Unverified:"Unverified",private_conversation_aborted:"Private conversation aborted!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Your contact closed the private conversation! You should do the same.",conversation_is_now_verified:"Conversation is now verified.",authentication_failed:"Authentication failed.",Creating_your_private_key_:"Creating your private key; this may take a while.",Authenticating_a_buddy_helps_:"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.",How_do_you_want_to_authenticate_your_buddy:"How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Select method...",Manual:"Manual",Question:"Question",Secret:"Secret",To_verify_the_fingerprint_:"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.",Your_fingerprint:"Your fingerprint",Buddy_fingerprint:"Contact fingerprint",Close:"Close",Compared:"Compared",To_authenticate_using_a_question_:"To authenticate using a question, pick a question whose answer is known only you and your contact.",Ask:"Ask",To_authenticate_pick_a_secret_:"To authenticate, pick a secret known only to you and your contact.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Authentication",Message:"Message",Add_buddy:"Add contact",rename_buddy:"rename contact",delete_buddy:"delete contact",Login:"Login",Username:"Username",Password:"Password",Cancel:"Cancel",Connect:"Connect",Type_in_the_full_username_:"Type in the full username and an optional alias.",Alias:"Alias",Add:"Add",Subscription_request:"Subscription request",You_have_a_request_from:"You have a request from",Deny:"Deny",Approve:"Approve",Remove_buddy:"Remove contact",You_are_about_to_remove_:"You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.",Continue_without_chat:"Continue without chat",Please_wait:"Please wait",Login_failed:"Chat login failed",Sorry_we_cant_authentikate_:"Authentication failed with the chat server. Maybe the password is wrong?",Retry:"Back",clear_history:"Clear history",New_message_from:"New message from __name__",Should_we_notify_you_:"Should we notify you about new messages in the future?",Please_accept_:'Please click the "Allow" button at the top.',Hide_offline:"Hide offline contacts",Show_offline:"Show offline contacts",About:"About",dnd:"Do Not Disturb",Mute:"Mute",Unmute:"Unmute",Subscription:"Subscription",both:"both",Status:"Status",online:"online",chat:"chat",away:"away",xa:"extended away",offline:"offline",none:"none",Unknown_instance_tag:"Unknown instance tag.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Received an unreadable encrypted message.",Online:"Online",Chatty:"Chatty",Away:"Away",Extended_away:"Extended away",Offline:"Offline",Friendship_request:"Contact request",Confirm:"Confirm",Dismiss:"Dismiss",Remove:"Remove",Online_help:"Online help",FN:"Full name",N:" ",FAMILY:"Family name",GIVEN:"Given name",NICKNAME:"Nickname",URL:"URL",ADR:"Address",STREET:"Street Address",EXTADD:"Extended Address",LOCALITY:"Locality",REGION:"Region",PCODE:"Postal Code",CTRY:"Country",TEL:"Telephone",NUMBER:"Number",EMAIL:"Email",USERID:" ",ORG:"Organization",ORGNAME:"Name",ORGUNIT:"Unit",TITLE:"Job title",ROLE:"Role",BDAY:"Birthday",DESC:"Description",PHOTO:" ",send_message:"Send message",get_info:"Show information",Settings:"Settings",Priority:"Priority",Save:"Save",User_settings:"User settings",A_fingerprint_:"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.",is:"is",Login_options:"Login options",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Resource",On_login:"On login",Received_an_unencrypted_message:"Received an unencrypted message",Sorry_your_buddy_doesnt_provide_any_information:"Sorry, your contact does not provide any information.",Info_about:"Info about",Authentication_aborted:"Authentication aborted.",Authentication_request_received:"Authentication request received.",Log_in_without_chat:"Log in without chat",has_come_online:"has come online",Unknown_sender:"Unknown sender",Please_allow_access_to_microphone_and_camera:'Please click the "Allow" button at the top, to allow access to microphone and camera.',Incoming_call:"Incoming call",from:"from",Do_you_want_to_accept_the_call_from:"Do you want to accept the call from",Reject:"Reject",Accept:"Accept",hang_up:"hang up",snapshot:"snapshot",mute_my_audio:"mute my audio",pause_my_video:"pause my video",fullscreen:"fullscreen",Info:"Info",Local_IP:"Local IP",Remote_IP:"Remote IP",Local_Fingerprint:"Local fingerprint",Remote_Fingerprint:"Remote fingerprint",Video_call_not_possible:"Video call not possible. Your contact does not support video calls.",Start_video_call:"Start video call",Join_chat:"Join chat",Join:"Join",Room:"Room",Nickname:"Nickname",left_the_building:"__nickname__ left the building",entered_the_room:"__nickname__ entered the room",is_now_known_as:"__oldNickname__ is now known as __newNickname__",This_room_is:"This room is",muc_hidden:{keyword:"hidden",description:"can not be found through search"},muc_membersonly:{keyword:"members-only",description:"you need to be on the member list"},muc_moderated:{keyword:"moderated",description:'only persons with "voice" are allowed to send messages'},muc_nonanonymous:{keyword:"non-anonymous",description:"your jabber id is exposed to all other occupants"},muc_open:{keyword:"open",description:"everyone is allowed to join"},muc_passwordprotected:{keyword:"password-protected",description:"you need to provide the correct password"},muc_persistent:{keyword:"persistent",description:"will not be destroyed if the last occupant left"},muc_public:{keyword:"public",description:"can be found through search"},muc_semianonymous:{keyword:"semi-anonymous",description:"your jabber id is only exposed to room admins"},muc_temporary:{keyword:"temporary",description:"will be destroyed if the last occupant left"},muc_unmoderated:{keyword:"unmoderated",description:"everyone is allowed to send messages"},muc_unsecured:{keyword:"unsecured",description:"you need no password to enter"},Continue:"Continue",Server:"Server",Rooms_are_loaded:"Rooms are loaded",Could_load_only:"Could load only __count__ rooms for autocomplete",muc_explanation:"Please enter room name and optional a nickname and password to join a chat",You_already_joined_this_room:"You already joined this room",This_room_will_be_closed:"This room will be closed",Room_not_found_:"A new room will be created",Loading_room_information:"Loading room information",Destroy:"Destroy",Leave:"Leave",changed_subject_to:'__nickname__ changed the room subject to "__subject__"',muc_removed_kicked:"You have been kicked from the room",muc_removed_info_kicked:"__nickname__ has been kicked from the room",muc_removed_banned:"You have been banned from the room",muc_removed_info_banned:"__nickname__ has been banned from the room",muc_removed_affiliation:"You have been removed from the room, because of an affiliation change",muc_removed_info_affiliation:"__nickname__ has been removed from the room, because of an affiliation change",muc_removed_membersonly:"You have been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_info_membersonly:"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_shutdown:"You have been removed from the room, because the MUC service is being shut down",Reason:"Reason",message_not_send:"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist",message_not_send_forbidden:"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room",This_room_has_been_closed:"This room has been closed",Room_logging_is_enabled:"Room logging is enabled",A_password_is_required:"A password is required",You_are_not_on_the_member_list:"You are not on the member list",You_are_banned_from_this_room:"You are banned from this room",Your_desired_nickname_:"Your desired nickname is already in use. Please choose another",The_maximum_number_:"The maximum number of user is reached in this room",This_room_is_locked_:"This room is locked",You_are_not_allowed_to_create_:"You are not allowed to create a room",Alert:"Alert",Call_started:"Call started",Call_terminated:"Call terminated",Carbon_copy:"Carbon copy",Enable:"Enable",jingle_reason_busy:"busy",jingle_reason_decline:"decline",jingle_reason_success:"hung up",Media_failure:"Media failure",No_local_audio_device:"No local audio device.",No_local_video_device:"No local video device.",Ok:"Ok",PermissionDeniedError:"You or your browser denied audio/video permission",Use_local_audio_device:"Use local audio device.",Use_local_video_device:"Use local video device.",is_:"is __status__",You_received_a_message_from_an_unknown_sender_:"You received a message from an unknown sender (__sender__) Do you want to display them?",Your_roster_is_empty_add_:"Your roster is empty, add a <a>new contact</a>",onsmp_explanation_question:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",onsmp_explanation_secret:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",from_sender:"from __sender__",Verified_private_conversation_started:"Verified Private conversation started.",Unverified_private_conversation_started:"Unverified Private conversation started.",Bookmark:"Bookmark","Auto-join":"Auto-join",Edit_bookmark:"Edit bookmark",Room_logging_is_disabled:"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous",Do_you_want_to_change_the_default_room_configuration:"Do you want to change the default room configuration?",Default:"Default",Change:"Change"}},es:{translation:{Logging_in:"Por favor, espere...",your_connection_is_unencrypted:"Su conexión no está cifrada.",your_connection_is_encrypted:"Su conexión está cifrada.",your_buddy_closed_the_private_connection:"Su amigo ha cerrado la conexión privada.",start_private:"Iniciar privado",close_private:"Cerrar privado",your_buddy_is_verificated:"Tu amigo está verificado.",you_have_only_a_subscription_in_one_way:"Sólo tienes una suscripción de un modo.",authentication_query_sent:"Consulta de verificación enviada.",your_message_wasnt_send_please_end_your_private_conversation:"Su mensaje no fue enviado. Por favor, termine su conversación privada.",unencrypted_message_received:"Mensaje no cifrado recibido:",not_available:"No disponible",no_connection:"Sin conexión!",relogin:"iniciar sesión nuevamente",trying_to_start_private_conversation:"Intentando iniciar una conversación privada!",Verified:"Verificado",Unverified:"No verificado",private_conversation_aborted:"Conversación privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Su amigo cerró la conversación privada! Usted debería hacer lo mismo.",conversation_is_now_verified:"La conversación es ahora verificada.",authentication_failed:"Fallo la verificación.",Creating_your_private_key_:"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.",Authenticating_a_buddy_helps_:"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.",How_do_you_want_to_authenticate_your_buddy:"¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Escoja un método...",Manual:"Manual",Question:"Pregunta",Secret:"Secreto",To_verify_the_fingerprint_:"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.",Your_fingerprint:"Tu firma digital",Buddy_fingerprint:"firma digital de tu amigo",Close:"Cerrar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar mediante una pregunta, elegir una pregunta cuya respuesta se conoce sólo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido sólo por usted y su amigo.",Compare:"Comparar",Fingerprints:"Firmas digitales",Authentication:"Autenticación",Message:"Mensaje",Add_buddy:"Añadir amigo",rename_buddy:"renombrar amigo",delete_buddy:"eliminar amigo",Login:"Iniciar Sesión",Username:"Usuario",Password:"Contraseña",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Escriba el usuario completo y un alias opcional.",Alias:"Alias",Add:"Añadir",Subscription_request:"Solicitud de suscripción",You_have_a_request_from:"Tienes una petición de",Deny:"Rechazar",Approve:"Aprobar",Remove_buddy:"Eliminar amigo",You_are_about_to_remove_:"Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.",Continue_without_chat:"Continuar",Please_wait:"Espere por favor",Login_failed:"Fallo el inicio de sesión",Sorry_we_cant_authentikate_:"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?",Retry:"Reintentar",clear_history:"Borrar el historial",New_message_from:"Nuevo mensaje de __name__",Should_we_notify_you_:"¿Debemos notificarle sobre nuevos mensajes en el futuro?",Please_accept_:'Por favor, haga clic en el botón "Permitir" en la parte superior.',Hide_offline:"Ocultar contactos desconectados",Show_offline:"Mostrar contactos desconectados",About:"Acerca de",dnd:"No Molestar",Mute:"Desactivar sonido",Unmute:"Activar sonido",Subscription:"Suscripción",both:"ambos",Status:"Estado",online:"en línea",chat:"chat",away:"ausente",xa:"mas ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No de nuestra ultima tecla.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Mas ausente",Offline:"Desconectado",Friendship_request:"Solicitud de amistad",Confirm:"Confirmar",Dismiss:"Rechazar",Remove:"Eliminar",Online_help:"Ayuda en línea",FN:"Nombre completo ",N:" ",FAMILY:"Apellido",GIVEN:"Nombre",NICKNAME:"Apodar",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Extendido dirección",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Emilio",USERID:" ",ORG:"Organización",ORGNAME:"Nombre",ORGUNIT:"Departamento",TITLE:"Título",ROLE:"Rol",BDAY:"Cumpleaños",DESC:"Descripción",PHOTO:" ",send_message:"mandar un texto",get_info:"obtener información",Settings:"Ajustes",Priority:"Prioridad",Save:"Guardar",User_settings:"Configuración de usuario",A_fingerprint_:"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser",is:"es",Login_options:"Opciones de login",BOSH_url:"BOSH url",Domain:"Dominio",Resource:"Recurso",On_login:"Iniciar sesión",Received_an_unencrypted_message:"Recibe un mensaje no cifrado",Sorry_your_buddy_doesnt_provide_any_information:"Lo sentimos, su amigo no provee ninguna información.",Info_about:"Info acerca de",Authentication_aborted:"Autenticación abortada",Authentication_request_received:"Pedido de autenticación recibido.",Log_in_without_chat:"Ingresar sin chat",has_come_online:"se ha conectado",Unknown_sender:"Remitente desconocido",Please_allow_access_to_microphone_and_camera:"Por favor, permitir el acceso al micrófono y la cámara.",Incoming_call:"Llamada entrante",from:"de",Do_you_want_to_accept_the_call_from:"Desea aceptar la llamada de",Reject:"Rechazar",Accept:"Aceptar",hang_up:"colgar",snapshot:"instantánea",mute_my_audio:"silenciar mi audio",pause_my_video:"pausar mi vídeo",fullscreen:"pantalla completa",Info:"Info",Local_IP:"IP local",Remote_IP:"IP remota",Local_Fingerprint:"Firma digital local",Remote_Fingerprint:"Firma digital remota",Video_call_not_possible:"Llamada de vídeo no es posible",Start_video_call:"Iniciar llamada de vídeo",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:"Activar",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"es __status__",You_received_a_message_from_an_unknown_sender_:"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?",Your_roster_is_empty_add_:"Tu lista de amigos esta vacia <a>Nuevo amigo</a>",onsmp_explanation_question:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.",onsmp_explanation_secret:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado se inició una conversación privada.",Unverified_private_conversation_started:"No verificado se inició una conversación privada."}},fr:{translation:{Logging_in:"Connexion...",your_connection_is_unencrypted:"Connexion non chiffrée.",your_connection_is_encrypted:"Connexion chiffrée.",your_buddy_closed_the_private_connection:"Votre ami a fermé la connexion privée.",start_private:"Démarrer une conversation privé",close_private:"Clôturer une conversation privée",your_buddy_is_verificated:"Votre contact est vérifié.",you_have_only_a_subscription_in_one_way:"Vous ne pouvez souscrire qu'une fois.",authentication_query_sent:"Requête d’authentification envoyée.",your_message_wasnt_send_please_end_your_private_conversation:"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.",unencrypted_message_received:"Message non chiffré reçu",not_available:"Pas disponible",no_connection:"Pas de connexion !",relogin:"Re-connexion",trying_to_start_private_conversation:"Essai de démarrage d'une conversation privée !",Verified:"Vérifié",Unverified:"Non vérifié",private_conversation_aborted:"Conversation privée interrompue !",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Votre ami a fermé la conversation privée ! Vous devriez faire de même.",conversation_is_now_verified:"La conversation est maintenant vérifiée.",authentication_failed:"L'authentification a échoué.",Creating_your_private_key_:"Création de votre clé privée; cela peut prendre un moment.",Authenticating_a_buddy_helps_:"L'authentification d'un ami permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.",How_do_you_want_to_authenticate_your_buddy:"Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Sélection de la méthode...",Manual:"Manuel",Question:"Question",Secret:"Sécurité",To_verify_the_fingerprint_:"Pour vérifier l'empreinte, contactez votre ami via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte de l'ami",Close:"Fermer",Compared:"Comparé",To_authenticate_using_a_question_:"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre ami.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre ami.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter comme ami",rename_buddy:"Renommer l'ami",delete_buddy:"Supprimer l'ami",Login:"Connexion",Username:"Nom d'utilisateur",Password:"Mot de passe",Cancel:"Annuler",Connect:"Connecter",Type_in_the_full_username_:"Tapez un nom d'utilisateur complet et un alias(optionnel).",Alias:"Alias",Add:"Ajouter",Subscription_request:"Demande d'abonnement",You_have_a_request_from:"Vous avez une requête de ",Deny:"Refuser",Approve:"Approuver",Remove_buddy:"Supprimer l'ami",You_are_about_to_remove_:"Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste d'amis. Toutes les fenêtres de chat en lien avec celui-ci seront fermées.",Continue_without_chat:"Continuer sans tchat",Please_wait:"Merci de patienter",Login_failed:"Authentification échouée",Sorry_we_cant_authentikate_:"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.",Retry:"Retour",clear_history:"Effacer l’historique",New_message_from:"Nouveau message de __name__",Should_we_notify_you_:"Dans le futur, devrons-nous vous notifier les nouveaux messages ?",Please_accept_:'Merci de cliquer sur le bouton "autoriser" en haut de page',Hide_offline:"Masquer les contacts non connectés",Show_offline:"Afficher les contacts non connectés",About:"À propos",dnd:"Ne pas déranger",Mute:"Muet",Unmute:"Son actif",Subscription:"Abonnement",both:"Les deux",Status:"Status",online:"En ligne",chat:"tchat",away:"Absent",xa:"Options étendues",offline:"Hors ligne",none:"Aucun",Unknown_instance_tag:"Tag inconnu",Not_one_of_our_latest_keys:"Ce n'est pas l'une des dernières touches",Received_an_unreadable_encrypted_message:"Message chiffré non lisible",Online:"En ligne",Chatty:"tchatty",Away:"Absent",Extended_away:"Options étendues",Offline:"Hors ligne",Friendship_request:"Demande d'amitié",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Surnom",URL:"URL",ADR:"Adresse",STREET:"Rue",EXTADD:"Adresse (suite)",LOCALITY:"Localité",REGION:"Région",PCODE:"Code Postal",CTRY:"Pays",TEL:"Téléphone",NUMBER:"Numéro",EMAIL:"Courriel",USERID:" USERID ",ORG:"Organisation",ORGNAME:"Nom",ORGUNIT:"Unité",TITLE:"Qualité:",ROLE:"Rôle",BDAY:"Date de naissance",DESC:"Description",PHOTO:"Photo",send_message:"Envoyer le message",get_info:"Montrer les informations",Settings:"Réglages",Priority:"Priorité",Save:"Enregistrer",User_settings:"Paramètres utilisateur",A_fingerprint_:"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez",is:"est",Login_options:"Options d'identification",BOSH_url:"URL BOSH",Domain:"Domaine",Resource:"Ressource",On_login:"Après authentification",Received_an_unencrypted_message:"Reçu un message non chiffré",Sorry_your_buddy_doesnt_provide_any_information:"Désolé, votre ami n'a pas fourni d'informations",Info_about:"A propos de",Authentication_aborted:"Authentification interrompue.",Authentication_request_received:"Requête d'authentification reçue.",Log_in_without_chat:"S'identifier sans tchat",has_come_online:"vient d'arriver",Unknown_sender:"Expéditeur inconnu",Please_allow_access_to_microphone_and_camera:'Veuillez cliquez sur le bouton "Autoriser" en haut, pour permettre l\'accès au micro et à la caméra.',Incoming_call:"Appel entrant",from:"de",Do_you_want_to_accept_the_call_from:"Voulez-vous accepter l'appel de",Reject:"Rejeté",Accept:"Accepté",hang_up:"Décrochez",snapshot:"Capture d’écran",mute_my_audio:"Couper l'audio",pause_my_video:"Mettre ma vidéo en pause",fullscreen:"Plein écran",Info:"Info",Local_IP:"IP locale",Remote_IP:"IP distante",Local_Fingerprint:"Empreinte locale",Remote_Fingerprint:"Empreinte distante",Video_call_not_possible:"L'appel vidéo n'est possible. Votre ami ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discution",Join:"Joindre",Room:"Salon",Nickname:"Surnom",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:null,This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:null},muc_membersonly:{keyword:"pour les membres seulement",description:"Vous devez être sur la liste des membres"},muc_moderated:{keyword:"modéré",description:'Seulement les personnes avec la "voix" sont autorisés à envoyer des messages'},muc_nonanonymous:{keyword:"non anonyme",description:"Votre identifiant Jabber est visible de tous les autres occupants"},muc_open:{keyword:"ouvert",description:"Tout le monde est autorisé à se connecter"},muc_passwordprotected:{keyword:"protégé par un mot de passe",description:"Vous devez fournir un mot de passe correct"},muc_persistent:{keyword:"persistent",description:null},muc_public:{keyword:"public",description:null},muc_semianonymous:{keyword:"semi-anonyme",description:"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},muc_temporary:{keyword:"temporaire",description:"sera détruit au départ de son dernier occupant"},muc_unmoderated:{keyword:"non modéré",description:"Tout le monde est autorisé à envoyer des messages"},muc_unsecured:{keyword:"non sécurisé",description:"un mot de passe n'est pas nécessaire pour entrer"},Continue:"Continuer",Server:"Serveur",Rooms_are_loaded:"Les salons sont chargés",Could_load_only:null,muc_explanation:"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation",You_already_joined_this_room:"Vous avez déjà rejoins ce salon",This_room_will_be_closed:"Ce salon va être fermé",Room_not_found_:"Un nouveau salon va être créé",Loading_room_information:"Chargement des informations du salon",Destroy:"Détruire",Leave:"Quitter",changed_subject_to:'__nickname__ a changé le sujet du salon à "__subject__"',muc_removed_kicked:"Vous avez été éjecté de ce salon",muc_removed_info_kicked:"__nickname__ a été éjecté de ce salon",muc_removed_banned:"Vous avez été banni de ce salon",muc_removed_info_banned:"__nickname__ a été banni de ce salon",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:"Raison",message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon",This_room_has_been_closed:"Ce salon a été fermé",Room_logging_is_enabled:null,A_password_is_required:"Un mot de passe est requis",You_are_not_on_the_member_list:"Vous n'êtes pas sur la liste des membres",You_are_banned_from_this_room:"Vous avez été banni de ce salon",Your_desired_nickname_:"Votre Surnom souhaité est déjà utilisé.Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateur est atteint dans ce salon",This_room_is_locked_:"Ce salon est vérouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"est __status__",You_received_a_message_from_an_unknown_sender_:"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?",Your_roster_is_empty_add_:"Votre liste est vide, ajouter <a>Nouvel ami</a>",onsmp_explanation_question:"Votre ami tente de déterminer si il ou elle parle vraiment à vous. Vous authentifier à votre ami, Saisissez une réponse et cliquer sur Répondre.",onsmp_explanation_secret:"Votre ami tente de déterminer si il ou elle parle vraiment à vous. Vous authentifier à votre ami, Entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"Vérifié Conversation privé démarrée.",Unverified_private_conversation_started:"Non vérifié Conversation privé démarrée."}},it:{translation:{Logging_in:"login…",your_connection_is_unencrypted:"La sua connessione è non cifrata.",your_connection_is_encrypted:"La sua connessione è cifrata.",your_buddy_closed_the_private_connection:"La sua connessione privata è stato chiuso dal suo compagno.",start_private:"Inizia privata",close_private:"Chiude privata",your_buddy_is_verificated:"Il tuo compagno è stato verificato",you_have_only_a_subscription_in_one_way:"Hai solo una one-way inscrizione.",authentication_query_sent:"Domanda d'autenticità inviata.",your_message_wasnt_send_please_end_your_private_conversation:"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.",unencrypted_message_received:"Messaggio non cifrato ricevuto",not_available:"non disponibile",no_connection:"nessun collegamento!",relogin:"nuovo login",trying_to_start_private_conversation:"Cercando di avviare una conversazione privata!",Verified:"verificato",Unverified:"non verificato",private_conversation_aborted:"Conversazione privata abortito!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.",conversation_is_now_verified:"Conversazione è ora verificato.",authentication_failed:"autenticazione fallita.",Creating_your_private_key_:"Creare la propria chiave privata; questo potrebbe richiedere un po'.",Authenticating_a_buddy_helps_:"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.",How_do_you_want_to_authenticate_your_buddy:"Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Seleziona metodo ..",Manual:"manuale",Question:"domanda",Secret:"segreto",To_verify_the_fingerprint_:"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.",Your_fingerprint:"il tuo impronta digitale",Buddy_fingerprint:"impronta digitale da compagno",Close:"chiude",Compared:"comparato",To_authenticate_using_a_question_:"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno",Ask:"chiedi",To_authenticate_pick_a_secret_:"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.",Compare:"Comparare",Fingerprints:"Impronta digitale",Authentication:"Autenticazione",Message:"Messagio",Add_buddy:"Aggiungi un compagno",rename_buddy:"rinomina compagno",delete_buddy:"elimina compagno",Login:"Login",Username:"Identificazione dell'utente",Password:"Password",Cancel:"Cancella",Connect:"Collega",Type_in_the_full_username_:"Digita l'identificazione utente completo e un alias opzionale.",Alias:"Alias",Add:"Aggiungi",Subscription_request:"Rrichiesta di sottoscrizione",You_have_a_request_from:"Hai una richiesta da",Deny:"Refiuta",Approve:"Approva",Remove_buddy:"Rimuova il compagno",You_are_about_to_remove_:"Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.",Continue_without_chat:"Continua senza chat",Please_wait:"Si prega d'attendere",Login_failed:"Chat login è fallito",Sorry_we_cant_authentikate_:"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?",Retry:"Indietro",clear_history:"Cancella la cronologia",New_message_from:"Nuovo messaggio da __name__",Should_we_notify_you_:"Vuoi ricevere una notifica di nuovi messaggi in futuro?",Please_accept_:'Si prega di fare clic sul bottone "Autorizzazione" sopra.',Hide_offline:"Nascondere i contatti non in linea",Show_offline:"Mostra i contatti non in linea",About:"Informazione legale",dnd:"Non disturbare",Mute:"Muto attivo",Unmute:"Muto inattivo",Subscription:"Sottoscrizione",both:"etrambi",Status:"Status",online:"In linea",chat:"chat",away:"via",xa:"via estensivo",offline:"non in linea",none:"nessuno",Unknown_instance_tag:"Instance tag sconosciuta.",Not_one_of_our_latest_keys:"Non è una delle nostre ultime chiavi.",Received_an_unreadable_encrypted_message:"Ricevuto un messaggio crittografato illeggibile.",Online:"In linea",Chatty:"Chiacchierino",Away:"Via",Extended_away:"Via estensivo",Offline:"Non in linea",Friendship_request:"Amicizia richiesto",Confirm:"Conferma",Dismiss:"Rifiuta",Remove:"Rimuovi",Online_help:"Guida in linea",FN:"Nome e cognome",N:null,FAMILY:"Cognome",GIVEN:"Nome",NICKNAME:"Soprannome",URL:"URL",ADR:"Indirizzo",STREET:"Via",EXTADD:"Esteso Indirizzo",LOCALITY:"Località",REGION:"Regione",PCODE:"Codice Postale",CTRY:"Paese",TEL:"Telefono",NUMBER:"Numero",EMAIL:"E-mail",USERID:null,ORG:"Organizzazione",ORGNAME:"Nome",ORGUNIT:"Unità",TITLE:"Titolo di lavoro",ROLE:"Funzione",BDAY:"Compleanno",DESC:"Descrizione",PHOTO:null,send_message:"Messagio inviato",get_info:"Mostra informazioni",Settings:"Impostazione",Priority:"Priorità",Save:"Salva",User_settings:"Impostazione dell'utente",A_fingerprint_:"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.",is:"è",Login_options:"Opzioni di login",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Risorsa",On_login:"Login on",Received_an_unencrypted_message:"Ricevuto un messaggio non crittografato",Sorry_your_buddy_doesnt_provide_any_information:"Spiace, il tuo compagno non fornisce alcuna informazione.",Info_about:"Informazioni",Authentication_aborted:"Autenticazione interrotta",Authentication_request_received:"Richiesta di autenticazione ricevuto.",Log_in_without_chat:"Log in senza chat",has_come_online:"È venuto in linea",Unknown_sender:"Mittente sconosciuto",Please_allow_access_to_microphone_and_camera:'Si prega di fare clic sul bottone "Autorizzazione" sopra per autorizzazione del l\'accesso al microfono e fotocamera.',Incoming_call:"Chiamata in arrivo",from:"di",Do_you_want_to_accept_the_call_from:"Vuoi accettare la chiamata di",Reject:"Rifiuta",Accept:"Accetta",hang_up:"Riattacca",snapshot:"istantanea",mute_my_audio:"disattiva il mio audio",pause_my_video:"pausa il mio audio",fullscreen:"schermo intero",Info:"Informazione",Local_IP:"IP locale",Remote_IP:"IP remoto",Local_Fingerprint:"Impronta digitale locale",Remote_Fingerprint:"Impronta digitale remoto",Video_call_not_possible:"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.",Start_video_call:"Inizia videochiamata",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"è __status__",You_received_a_message_from_an_unknown_sender_:"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?",Your_roster_is_empty_add_:"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>",onsmp_explanation_question:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.",onsmp_explanation_secret:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.",from_sender:"di __sender__",Verified_private_conversation_started:"verificato Conversazione privata iniziato.",Unverified_private_conversation_started:"non verificato Conversazione privata iniziato."}},nds:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},pl:{translation:{Logging_in:"Logowanie...",your_connection_is_unencrypted:"Twoje połączenie nie jest szyfrowane.",your_connection_is_encrypted:"Twoje połączenie jest szyfrowane.",your_buddy_closed_the_private_connection:"Twój rozmówca zamknął połączenie.",start_private:"Rozpocznij rozmowę.",close_private:"Zakończ rozmowę.",your_buddy_is_verificated:"Twój rozmówca został zweryfikowany.",you_have_only_a_subscription_in_one_way:"Masz jednostronną subskrypcję.",authentication_query_sent:"Wysłano proźbę o autentykację.",your_message_wasnt_send_please_end_your_private_conversation:"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.",unencrypted_message_received:"Zwrotna niezaszyfrowana wiadomość.",not_available:"Niedostępny.",no_connection:"Brak połączenia!",relogin:"Połącz ponownie",trying_to_start_private_conversation:"Rozpocznij rozmowę!",Verified:"Zweryfikowano",Unverified:"Niezweryfikowano",private_conversation_aborted:"Anulowano rozmowę!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Rozmówca przerwał połączenie!",conversation_is_now_verified:"Zweryfikowano połączenie.",authentication_failed:"Weryfikacja się nie powiodła.",Creating_your_private_key_:"Tworzenie klucza prywatnego; może to chwilę potrwać",Authenticating_a_buddy_helps_:"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).",How_do_you_want_to_authenticate_your_buddy:"Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Wybierz sposób...",Manual:"Ręcznie",Question:"Pytanie",Secret:"Hasło",To_verify_the_fingerprint_:"Aby zweryfikować kod najpierw skontaktuj się z rozmówcą np. za pomocą telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod rozmówcy",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko Twój rozmówca zna odpowiedź.",Ask:"Zadaj pytanie",To_authenticate_pick_a_secret_:"Aby autoryzować za pomocą hasła, wybierz hasło na które zna tylko Twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę",delete_buddy:"Usuń kontakt",Login:"Login",Username:"Nazwa Użytkownika",Password:"Hasło",Cancel:"Anuluj",Connect:"Połączenie",Type_in_the_full_username_:"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).",Alias:"Alias",Add:"Dodaj",Subscription_request:"Potwierdzenie subskrypcji",You_have_a_request_from:"Masz potwierdzenie od",Deny:"Odmów",Approve:"Zatwierdź",Remove_buddy:"Usuń rozmówcę",You_are_about_to_remove_:"Twój rozmówca {{bid_name}} (<b>{{bid_jid}}</b>) usunął Cię ze swojej listy kontaktów.",Continue_without_chat:"Kontynuuj bez komunikatora",Please_wait:"Proszę czekać",Login_failed:"Błędne logowanie",Sorry_we_cant_authentikate_:"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?",Retry:"Powrót",clear_history:"Wyczyść historię",New_message_from:"Nowa wiadomość od __name__",Should_we_notify_you_:"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?",Please_accept_:'Kliknij "Zezwól" na górze.',Hide_offline:"Schowaj niedostępne kontakty",Show_offline:"Pokaż niedostępne kontakty",About:"Info",dnd:"Nie przeszkadzać",Mute:"Wycisz",Unmute:"Włącz dźwięk",Subscription:"Subskrybcja",both:"obustronna",Status:"Status",online:"Dostępny",chat:"czat",away:"z dala od kompa",xa:"hen hen...",offline:"niedostępny",none:"brak",Unknown_instance_tag:"Nieznany przypadek.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Otrzymano nieczytelną, zaszyfrowaną wiadomość.",Online:"Połączony",Chatty:"Pogawędzimy?",Away:"Daleko",Extended_away:"Hen Hen...",Offline:"Niedostępny",Friendship_request:"Zapytanie od znajomego?",Confirm:"Potwierdzenie",Dismiss:"Odwołaj",Remove:"Usuń",Online_help:"Pomoc Online",FN:"Pełna nazwa",N:" ",FAMILY:"Nazwisko",GIVEN:"Imię",NICKNAME:"Pseudonim",URL:"Strona WWW",ADR:"Adres",STREET:"Ulica",EXTADD:"Pełny adres",LOCALITY:"Lokalizacja",REGION:"Region",PCODE:"Kod pocztowy",CTRY:"Kraj",TEL:"Telefon",NUMBER:"Numer",EMAIL:"Email",USERID:" ",ORG:"Organizacja",ORGNAME:"Nazwa",ORGUNIT:"Jednostka",TITLE:"Stanowisko",ROLE:"Rola",BDAY:"Data urodzin",DESC:"Opis",PHOTO:" ",send_message:"Wyślij wiadomość",get_info:"Pokaż informację",Settings:"Ustawienia",Priority:"Priorytet",Save:"Zapisz",User_settings:"Ustawienia Użytkownika",A_fingerprint_:"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.",is:"jest",Login_options:"opcje logowania",BOSH_url:"Adres BOSH",Domain:"Domena",Resource:"Źródło",On_login:"Na login",Received_an_unencrypted_message:"Zatwierdzono nieszyfrowaną wiadomość.",Sorry_your_buddy_doesnt_provide_any_information:"Twój rozmówca nie posiada żadnych informacji.",Info_about:"Informacja o...",Authentication_aborted:"Autoryzacja anulowana.",Authentication_request_received:"Prośba o autoryzację została przyjęta.",Log_in_without_chat:"Zaloguj bez komunikatora",has_come_online:"jest teraz dostępny",Unknown_sender:"Nieznany nadawca",Please_allow_access_to_microphone_and_camera:'Kliknij "Potwierdź" na górze, aby móc korzystać z mikrofonu oraz kamery.',Incoming_call:"Przychodzące połączenie",from:"z",Do_you_want_to_accept_the_call_from:"Akceptujesz połączenie od",Reject:"Odrzuć",Accept:"Zaakceptuj",hang_up:"odbierz",snapshot:"zrób zdjęcie",mute_my_audio:"wycisz dźwięk",pause_my_video:"zatrzymaj moje wideo",fullscreen:"Pełny ekran",Info:"Informacja",Local_IP:"Adres IP",Remote_IP:"Zdalny adres IP",Local_Fingerprint:"Kod lokalny",Remote_Fingerprint:"Zdalny kod",Video_call_not_possible:"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.",Start_video_call:"Rozpocznij rozmowę wideo",Join_chat:"Dołącz do czata",Join:"Dołącz",Room:"Pokój",Nickname:"Nazwa użytkownika",left_the_building:"__nickname__ wyszedł",entered_the_room:"__nickname__ wszedł do pokoju",is_now_known_as:"__oldNickname__ zmienił nazwę na __newNickname__",This_room_is:"Ten pokój jest",muc_hidden:{keyword:"ukryty",description:"nie można odnaleźć elementów wyszukiwania"},muc_membersonly:{keyword:"tylko zalogowani",description:"musisz być członkiem listy"},muc_moderated:{keyword:"moderowano",description:'tylko osoby z opcją "głos" mogą wysyłać wiadomość'},muc_nonanonymous:{keyword:"nie-anonimowy",description:"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},muc_open:{keyword:"otwarty",description:"wszyscy mają pozwolenie aby dołączyć"},muc_passwordprotected:{keyword:"ograniczone hasłem",description:"musisz wpisać prawidłowe hasło"},muc_persistent:{keyword:"trwale",description:"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},muc_public:{keyword:"publiczny",description:"wyszukawno"},muc_semianonymous:{keyword:"pół-anonimowy",description:"Twój identyfikator jabber jest widoczny w pokoju adminów"},muc_temporary:{keyword:"tymczasowy",description:"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},muc_unmoderated:{keyword:"niemoderowany",description:"wszyscy są uprawnieni do pisania wiadomości"},muc_unsecured:{keyword:"niezabezpieczone",description:"nie musisz wpisywać hasła"},Continue:"Kontynuuj",Server:"Serwer",Rooms_are_loaded:"Pokoje zostały załadowane",Could_load_only:"Nie załadowano __count__ pokoi",muc_explanation:"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło",You_already_joined_this_room:"Już dołączyłeś do tego pokoju",This_room_will_be_closed:"Ten pokój będzie zamknięty",Room_not_found_:"Nowy pokój będzie stworzony",Loading_room_information:"Ładowani informacji o pokoju",Destroy:"Zniszczony",Leave:"Opuść",changed_subject_to:'__nickname__ zmienił temat pokoju na "__subject__"',muc_removed_kicked:"Zostałeś wyrzucony z pokoju",muc_removed_info_kicked:"__nickname__ został wyrzucony z pokoju",muc_removed_banned:"Zostałeś zbanowany",muc_removed_info_banned:"__nickname__ został zbanowany",muc_removed_affiliation:"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_info_affiliation:"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_membersonly:"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...",muc_removed_info_membersonly:"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków",muc_removed_shutdown:"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi",Reason:"Powód",message_not_send:"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",message_not_send_forbidden:"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",This_room_has_been_closed:"Ten pokój został zamknięty",Room_logging_is_enabled:"Logowanie do pokoju jest włączone",A_password_is_required:"Hasło jest wymagane",You_are_not_on_the_member_list:"Nie jesteś na liście członków",You_are_banned_from_this_room:"Zostałeś zbanowany w tym pokoju",Your_desired_nickname_:"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną",The_maximum_number_:"Została osiągnięta maksymalna liczba użytkowników w tym pokoju",This_room_is_locked_:"Ten pokój jest zablokowany",You_are_not_allowed_to_create_:"Nie masz uprawnień do tworzenia pokoju",Alert:"Alarm",Call_started:null,Call_terminated:null,Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:"Ok",PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"jest __status__",You_received_a_message_from_an_unknown_sender_:"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?",Your_roster_is_empty_add_:"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>",onsmp_explanation_question:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.",onsmp_explanation_secret:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.",from_sender:"z __sender__",Verified_private_conversation_started:"Zweryfikowano Rozmowa prywatna rozpoczęta.",Unverified_private_conversation_started:"Niezweryfikowano Rozmowa prywatna rozpoczęta."}},"pt-BR":{translation:{Logging_in:"Entrando...",your_connection_is_unencrypted:"Sua conexão não é encriptada",your_connection_is_encrypted:"Sua conexão é encriptada",your_buddy_closed_the_private_connection:"Seu contato fechou a conexão privada",start_private:"Iniciar conversa privada",close_private:"Fechar conversa privada",your_buddy_is_verificated:"Seu contato está verificado",you_have_only_a_subscription_in_one_way:"Você só tem a inscrição one-way",authentication_query_sent:"Pergunta de autenticação enviada",your_message_wasnt_send_please_end_your_private_conversation:"Sua mensagem não foi enviada. Por favor finalize sua conversa privada",unencrypted_message_received:"Mensagem não encriptada recebida",not_available:"Indisponível",no_connection:"Sem conexão!",relogin:"reentrar",trying_to_start_private_conversation:"Tentando iniciar conversa privada",Verified:"Verificado",Unverified:"Não verificado",private_conversation_aborted:"Conversa privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.",conversation_is_now_verified:"Conversa verificada.",authentication_failed:"Autenticação falhou.",Creating_your_private_key_:"Criando sua chave privada: isso pode demorar um pouco.",Authenticating_a_buddy_helps_:"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.",How_do_you_want_to_authenticate_your_buddy:"Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Selecione o método...",Manual:"Manual",Question:"Pergunta",Secret:"Senha",To_verify_the_fingerprint_:"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.",Your_fingerprint:"Seu fingerprint",Buddy_fingerprint:"Fingerprint do contato",Close:"Fechar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.",Ask:"Pergunta",To_authenticate_pick_a_secret_:"Para autenticar, escolha um segredo que somente você e seu contato saibam.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Autenticação",Message:"Mensagem",Add_buddy:"Adicionar contato",rename_buddy:"renomear contato",delete_buddy:"remover contato",Login:"Entrar",Username:"Usuário",Password:"Senha",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Digite seu nome completo e um apelido opcional.",Alias:"Apelido",Add:"Adicionar",Subscription_request:"Pedido de inscrição",You_have_a_request_from:"Você tem um pedido de",Deny:"Negar",Approve:"Aprovar",Remove_buddy:"Remover contato",You_are_about_to_remove_:"Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.",Continue_without_chat:"Continue sem converar",Please_wait:"Por favor aguarde",Login_failed:"Autenticação da conversa falhou",Sorry_we_cant_authentikate_:"A autenticação com o servidor falhou. Talvez seja a senha errada?",Retry:"Voltar",clear_history:"Limpar histórico",New_message_from:"Nova mensagem de __name__",Should_we_notify_you_:"Devemos continuar notificando sobre novas mensagens no futuro?",Please_accept_:'Por favor clique no botão "Permitir" na parte superior.',Hide_offline:"Esconder contatos desconectados",Show_offline:"Mostrar contatos desconectados",About:"Sobre",dnd:"Não perturbe",Mute:"Mudo",Unmute:"Ligar",Subscription:"Inscrição",both:"ambos",Status:"Status",online:"online",chat:"conversa",away:"ausente",xa:"ausente por mais tempo",offline:"desativado",none:"nenhum",Unknown_instance_tag:"Marcação desconhecida da instância",Not_one_of_our_latest_keys:"Nenhuma de nossas ultimas chaves.",Received_an_unreadable_encrypted_message:"Mensagem encriptada ilegível foi recebida.",Online:"Online",Chatty:"Tagarela",Away:"Ausente",Extended_away:"Ausente por mais tempo",Offline:"Desativado",Friendship_request:"Pedido de amizade",Confirm:"Confirmar",Dismiss:"Ignorar",Remove:"Remover",Online_help:"Ajuda online",FN:"Nome completo",N:" ",FAMILY:"Sobrenome",GIVEN:"Nome",NICKNAME:"Apelido",URL:"URL",ADR:"Endereço",STREET:"Rua, Av, etc",EXTADD:"Complemento",LOCALITY:"Localidade",REGION:"Região",PCODE:"CEP",CTRY:"País",TEL:"Telefone",NUMBER:"Número",EMAIL:"Email",USERID:" ",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Rol",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:" ",send_message:"Enviar mensagem",get_info:"Exibir informações",Settings:"Configurações",Priority:"Prioridade",Save:"Salvar",User_settings:"Configurações do usuário",A_fingerprint_:"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.",is:"é",Login_options:"Opções de login",BOSH_url:"BOSH URL",Domain:"Domínio",Resource:"Recurso",On_login:"Ao autenticar",Received_an_unencrypted_message:"Mensagem não encriptada recebida",Sorry_your_buddy_doesnt_provide_any_information:"Desculpe, seu contato não forneceu nenhuma informação",Info_about:"Informações sobre",Authentication_aborted:"Autenticação encerrada.",Authentication_request_received:"Pedido de autenticação recebido",Log_in_without_chat:"Entrar sem conversar",has_come_online:"ficou online",Unknown_sender:"Emissor desconhecido",Please_allow_access_to_microphone_and_camera:'Por favor clique no botão "Permitir" no topo, para conceder acesso ao seu microfone e câmera.',Incoming_call:"Recebendo chamada",from:"de",Do_you_want_to_accept_the_call_from:"Você aceita a chamada de",Reject:"Negar",Accept:"Aceitar",hang_up:"desligar",snapshot:"registrar imagem",mute_my_audio:"mudo",pause_my_video:"pausar vídeo",fullscreen:"tela cheia",Info:"Informações",Local_IP:"IP local",Remote_IP:"IP remoto",Local_Fingerprint:"Fingerprint local",Remote_Fingerprint:"Fingerprint remoto",Video_call_not_possible:"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.",Start_video_call:"Iniciar chamada de vídeo",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"é __status__",You_received_a_message_from_an_unknown_sender_:"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?",Your_roster_is_empty_add_:"Sua lista está vazia, adicione um <a>novo contato</a>",onsmp_explanation_question:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.",onsmp_explanation_secret:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado Conversa privada iniciada.",Unverified_private_conversation_started:"Não verificado Conversa privada iniciada."}},ro:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},ru:{translation:{Logging_in:"Вход в систему...",your_connection_is_unencrypted:"Ваше соединение не зашифровано.",your_connection_is_encrypted:"Ваше соединение зашифровано.",your_buddy_closed_the_private_connection:"Ваш собеседник закончил зашифрованное соединение.",start_private:"Начать зашифрованный чат",close_private:"Закончить зашифрованный чат",your_buddy_is_verificated:"Собеседник подтвержден.",you_have_only_a_subscription_in_one_way:"У вас только односторонняя подписка.",authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.",unencrypted_message_received:"Получено незашифрованное сообщение",not_available:"Не доступен",no_connection:"Нет соединения!",relogin:"переподключиться",trying_to_start_private_conversation:"Попытка начать зашифрованный чат!",Verified:"Подтверждено",Unverified:"Не подтверждено",private_conversation_aborted:"Зашифрованный чат отклонен!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.",conversation_is_now_verified:"Чат теперь утвержден.",authentication_failed:"Ошибка авторизации.",Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:"Выберите метод...",Manual:"Вручную",Question:"Вопрос",Secret:"Пароль",To_verify_the_fingerprint_:null,Your_fingerprint:"Ваш отпечаток",Buddy_fingerprint:"Отпечаток собеседника",Close:"Закрыть",Compared:"Сравнение завершено",To_authenticate_using_a_question_:"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.",Ask:null,To_authenticate_pick_a_secret_:"Для авторизации выберите пароль, который знаете только Вы и собеседник.",Compare:"Сравнить",Fingerprints:"Отпечатки",Authentication:"Авторизация",Message:"Сообщение",Add_buddy:"Добавить контакт",rename_buddy:"переименовать контакт",delete_buddy:"удалить контакт",Login:"Вход",Username:"Логин",Password:"Пароль",Cancel:"Отмена",Connect:"Подключить",Type_in_the_full_username_:null,Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:null,Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:null,Retry:null,clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:null,Hide_offline:"Спрятать отключенных",Show_offline:"Показать отключенных",About:"О проекте",dnd:"Не беспокоить",Mute:"Выкл. уведомления",Unmute:"Вкл. уведомления",Subscription:"Подписка",both:"оба",Status:"Статус",online:"в сети",chat:"готов общаться",away:"отошел",xa:"отсутствую",offline:"не в сети",none:"нет",Unknown_instance_tag:"Неизвестный тег.",Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:null,Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:null,NICKNAME:"Ник",URL:null,ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:null,REGION:null,PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:null,send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:null,Login_options:"Параметры входа",BOSH_url:null,Domain:"Домен",Resource:"Ресурс",On_login:"Автоматически подключаться",Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:"Информация о",Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:"Вход без чата",has_come_online:"появился в сети",Unknown_sender:"Неизвестный отправитель",Please_allow_access_to_microphone_and_camera:null,Incoming_call:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:"Включить",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:"Вы получили сообщение от неизвестного отправителя (__sender__)",Your_roster_is_empty_add_:"Ваш список контактов пуст, добавить <a>новый контакт</a>",onsmp_explanation_question:"Собеседник пытается определить, что общается действительно с Вами.",onsmp_explanation_secret:"Собеседник пытается определить, что общается действительно с Вами. введите пароль.",from_sender:"от __sender__",Verified_private_conversation_started:"Подтверждено Зашифрованный чат начат.",Unverified_private_conversation_started:"Не подтверждено Зашифрованный чат начат."}}};
-/*!
+var I18next={de:{translation:{Logging_in:"Login läuft…",your_connection_is_unencrypted:"Deine Verbindung ist unverschlüsselt.",your_connection_is_encrypted:"Deine Verbindung ist verschlüsselt.",your_buddy_closed_the_private_connection:"Dein Kontakt hat die private Verbindung getrennt.",start_private:"Privat starten",close_private:"Privat abbrechen",your_buddy_is_verificated:"Dein Kontakt ist verifiziert.",you_have_only_a_subscription_in_one_way:"Der Kontaktstatus ist einseitig.",authentication_query_sent:"Authentifizierungsanfrage gesendet.",your_message_wasnt_send_please_end_your_private_conversation:"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.",unencrypted_message_received:"Unverschlüsselte Nachricht erhalten.",not_available:"Nicht verfügbar.",no_connection:"Keine Verbindung.",relogin:"Neu anmelden.",trying_to_start_private_conversation:"Versuche private Konversation zu starten.",Verified:"Verifiziert",Unverified:"Unverifiziert",private_conversation_aborted:"Private Konversation abgebrochen.",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!",conversation_is_now_verified:"Konversation ist jetzt verifiziert",authentication_failed:"Authentifizierung fehlgeschlagen.",Creating_your_private_key_:"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.",Authenticating_a_buddy_helps_:"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.",How_do_you_want_to_authenticate_your_buddy:"Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?",Select_method:"Wähle...",Manual:"Manual",Question:"Frage",Secret:"Geheimnis",To_verify_the_fingerprint_:"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.",Your_fingerprint:"Dein Fingerprint",Buddy_fingerprint:"Sein/Ihr Fingerprint",Close:"Schließen",Compared:"Verglichen",To_authenticate_using_a_question_:"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.",Ask:"Frage",To_authenticate_pick_a_secret_:"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.",Compare:"Vergleiche",Fingerprints:"Fingerprints",Authentication:"Authentifizierung",Message:"Nachricht",Add_buddy:"Kontakt hinzufügen",rename_buddy:"Kontakt umbenennen",delete_buddy:"Kontakt löschen",Login:"Anmeldung",Username:"Benutzername",Password:"Passwort",Cancel:"Abbrechen",Connect:"Verbinden",Type_in_the_full_username_:"Gib bitte den vollen Benutzernamen und optional ein Alias an.",Alias:"Alias",Add:"Hinzufügen",Subscription_request:"Kontaktanfrage",You_have_a_request_from:"Du hast eine Anfrage von",Deny:"Ablehnen",Approve:"Bestätigen",Remove_buddy:"Kontakt entfernen",You_are_about_to_remove_:"Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",Continue_without_chat:"Weiter ohne Chat",Please_wait:"Bitte warten",Login_failed:"Chat-Anmeldung fehlgeschlagen",Sorry_we_cant_authentikate_:"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?",Retry:"Zurück",clear_history:"Lösche Verlauf",New_message_from:"Neue Nachricht von __name__",Should_we_notify_you_:"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?",Please_accept_:'Bitte klick auf den "Zulassen" Button oben.',Hide_offline:"Offline ausblenden",Show_offline:"Offline einblenden",About:"Über",dnd:"Beschäftigt",Mute:"Ton aus",Unmute:"Ton an",Subscription:"Bezug",both:"beidseitig",Status:"Status",online:"online",chat:"chat",away:"abwesend",xa:"länger abwesend",offline:"offline",none:"keine",Unknown_instance_tag:"Unbekannter instance tag.",Not_one_of_our_latest_keys:"Nicht einer unserer letzten Schlüssel.",Received_an_unreadable_encrypted_message:"Eine unlesbare verschlüsselte Nachricht erhalten.",Online:"Online",Chatty:"Gesprächig",Away:"Abwesend",Extended_away:"Länger abwesend",Offline:"Offline",Friendship_request:"Kontaktanfrage",Confirm:"Bestätigen",Dismiss:"Ablehnen",Remove:"Löschen",Online_help:"Online Hilfe",FN:"Name",N:" ",FAMILY:"Familienname",GIVEN:"Vorname",NICKNAME:"Spitzname",URL:"URL",ADR:"Adresse",STREET:"Straße",EXTADD:"Zusätzliche Adresse",LOCALITY:"Ortschaft",REGION:"Region",PCODE:"Postleitzahl",CTRY:"Land",TEL:"Telefon",NUMBER:"Nummer",EMAIL:"E-Mail",USERID:" ",ORG:"Organisation",ORGNAME:"Name",ORGUNIT:"Abteilung",TITLE:"Titel",ROLE:"Rolle",BDAY:"Geburtstag",DESC:"Beschreibung",PHOTO:" ",send_message:"Sende Nachricht",get_info:"Benutzerinformationen",Settings:"Einstellungen",Priority:"Priorität",Save:"Speichern",User_settings:"Benutzereinstellungen",A_fingerprint_:"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.",is:"ist",Login_options:"Anmeldeoptionen",BOSH_url:"BOSH url",Domain:"Domain",Resource:"Ressource",On_login:"Beim Anmelden",Received_an_unencrypted_message:"Unverschlüsselte Nachricht empfangen",Sorry_your_buddy_doesnt_provide_any_information:"Dein Kontakt stellt leider keine Informationen bereit.",Info_about:"Info über",Authentication_aborted:"Authentifizierung abgebrochen.",Authentication_request_received:"Authentifizierungsanfrage empfangen.",Log_in_without_chat:"Anmelden ohne Chat",has_come_online:"ist online gekommen",Unknown_sender:"Unbekannter Sender",Please_allow_access_to_microphone_and_camera:'Bitte klick auf den "Zulassen" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.',Incoming_call:"Eingehender Anruf",from:"von",Do_you_want_to_accept_the_call_from:"Möchtest Du den Anruf annehmen von",Reject:"Ablehnen",Accept:"Annehmen",hang_up:"Auflegen",snapshot:"Schnappschuss",mute_my_audio:"Mein Ton aus",pause_my_video:"Mein Video pausieren",fullscreen:"Vollbild",Info:"Info",Local_IP:"Lokale IP",Remote_IP:"Remote IP",Local_Fingerprint:"Lokaler Fingerprint",Remote_Fingerprint:"Remote Fingerprint",Video_call_not_possible:"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.",Start_video_call:"Starte Videoanruf",Join_chat:"Gruppe beitreten",Join:"Betreten",Room:"Gruppe",Nickname:"Nickname",left_the_building:"__nickname__ hat die Gruppe verlassen",entered_the_room:"__nickname__ ist der Gruppe beigetreten",is_now_known_as:"__oldNickname__ ist nun unter __newNickname__ bekannt",This_room_is:"Diese Gruppe ist",muc_hidden:{keyword:"versteckt",description:"kann durch die Suche nicht gefunden werden"},muc_membersonly:{keyword:"nur für Mitglieder",description:"du musst auf der Mitgliederliste stehen"},muc_moderated:{keyword:"moderiert",description:'Nur Personen die "Mitspracherecht" haben dürfen Nachrichten senden'},muc_nonanonymous:{keyword:"nicht anonym",description:"deine Jabber ID wird für alle Mitglieder sichtbar sein"},muc_open:{keyword:"offen",description:"jeder darf dieser Gruppe beitreten"},muc_passwordprotected:{keyword:"passwortgeschützt",description:"du benötigst das korrekte Passwort"},muc_persistent:{keyword:"permanent",description:"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_public:{keyword:"öffentlich",description:"kann durch die Suche gefunden werden"},muc_semianonymous:{keyword:"teilweise anonym",description:"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},muc_temporary:{keyword:"temporär",description:"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_unmoderated:{keyword:"nicht moderiert",description:"jeder darf Nachrichten senden"},muc_unsecured:{keyword:"ungesichert",description:"es wird kein Passwort benötigt"},Continue:"Weiter",Server:"Server",Rooms_are_loaded:"Gruppen werden geladen",Could_load_only:"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden",muc_explanation:"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten",You_already_joined_this_room:"Du bist dieser Gruppe bereits beigetreten",This_room_will_be_closed:"Diese Gruppe wird geschlossen",Room_not_found_:"Es wird eine neue Gruppe erstellt",Loading_room_information:"Informationen über Gruppe werden geladen",Destroy:"Auflösen",Leave:"Verlassen",changed_subject_to:"__nickname__ hat das Thema auf __subject__ geändert",muc_removed_kicked:"Du wurdest aus der Gruppe entfernt",muc_removed_info_kicked:"__nickname__ wurde aus der Gruppe entfernt",muc_removed_banned:"Du wurdest aus der Gruppe ausgeschlossen",muc_removed_info_banned:"__nickname__ wurde aus der Gruppe ausgeschlossen",muc_removed_affiliation:"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus",muc_removed_info_affiliation:"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus",muc_removed_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt",muc_removed_info_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt",muc_removed_shutdown:"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird",Reason:"Grund",message_not_send:"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",message_not_send_forbidden:'Deine Nachricht wurde nicht versandt, da du kein "Mitspracherecht" hast',"message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",This_room_has_been_closed:"Diese Gruppe wurde geschlossen",Room_logging_is_enabled:"Gesprächsverlauf kann öffentlich einsehbar sein",A_password_is_required:"Es wird ein Passwort benötigt",You_are_not_on_the_member_list:"Du bist kein eingetragenes Mitglied",You_are_banned_from_this_room:"Du wurdest von dieser Gruppe ausgeschlossen",Your_desired_nickname_:"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.",The_maximum_number_:"Die maximale Anzahl der Mitglieder wurde erreicht.",This_room_is_locked_:"Diese Gruppe ist gesperrt",You_are_not_allowed_to_create_:"Du darfst keine neue Gruppe erstellen",Alert:"Alarm",Call_started:"Anruf gestarted",Call_terminated:"Anruf beendet",Carbon_copy:null,Enable:"Aktivieren",jingle_reason_busy:"beschäftigt",jingle_reason_decline:"abgelehnt",jingle_reason_success:"aufgelegt",Media_failure:"Gerätefehler",No_local_audio_device:"Kein eigenes Audio Gerät",No_local_video_device:"Keine eigene Webcam",Ok:"Ok",PermissionDeniedError:"Du oder dein Browser haben die Audio/Video Berechtigung verweigert",Use_local_audio_device:"Nutze eigenes Audio Gerät",Use_local_video_device:"Benutze eigene Webcam",is_:"ist __status__",You_received_a_message_from_an_unknown_sender_:"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?",Your_roster_is_empty_add_:"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>",onsmp_explanation_question:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",onsmp_explanation_secret:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",from_sender:"von __sender__",Verified_private_conversation_started:"Verifiziert Private Konversation gestartet.",Unverified_private_conversation_started:"Unverifiziert Private Konversation gestartet."}},el:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},en:{translation:{Logging_in:"Logging in…",your_connection_is_unencrypted:"Your connection is unencrypted.",your_connection_is_encrypted:"Your connection is encrypted.",your_buddy_closed_the_private_connection:"Your contact closed the private connection.",start_private:"Start private",close_private:"Close private",your_buddy_is_verificated:"Your contact is verified.",you_have_only_a_subscription_in_one_way:"You only have a one-way subscription.",authentication_query_sent:"Authentication query sent.",your_message_wasnt_send_please_end_your_private_conversation:"Your message was not sent. Please end your private conversation.",unencrypted_message_received:"Unencrypted message received",not_available:"Not available",no_connection:"No connection!",relogin:"relogin",trying_to_start_private_conversation:"Trying to start private conversation!",Verified:"Verified",Unverified:"Unverified",private_conversation_aborted:"Private conversation aborted!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Your contact closed the private conversation! You should do the same.",conversation_is_now_verified:"Conversation is now verified.",authentication_failed:"Authentication failed.",Creating_your_private_key_:"Creating your private key; this may take a while.",Authenticating_a_buddy_helps_:"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.",How_do_you_want_to_authenticate_your_buddy:"How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Select method...",Manual:"Manual",Question:"Question",Secret:"Secret",To_verify_the_fingerprint_:"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.",Your_fingerprint:"Your fingerprint",Buddy_fingerprint:"Contact fingerprint",Close:"Close",Compared:"Compared",To_authenticate_using_a_question_:"To authenticate using a question, pick a question whose answer is known only you and your contact.",Ask:"Ask",To_authenticate_pick_a_secret_:"To authenticate, pick a secret known only to you and your contact.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Authentication",Message:"Message",Add_buddy:"Add contact",rename_buddy:"rename contact",delete_buddy:"delete contact",Login:"Login",Username:"Username",Password:"Password",Cancel:"Cancel",Connect:"Connect",Type_in_the_full_username_:"Type in the full username and an optional alias.",Alias:"Alias",Add:"Add",Subscription_request:"Subscription request",You_have_a_request_from:"You have a request from",Deny:"Deny",Approve:"Approve",Remove_buddy:"Remove contact",You_are_about_to_remove_:"You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.",Continue_without_chat:"Continue without chat",Please_wait:"Please wait",Login_failed:"Chat login failed",Sorry_we_cant_authentikate_:"Authentication failed with the chat server. Maybe the password is wrong?",Retry:"Back",clear_history:"Clear history",New_message_from:"New message from __name__",Should_we_notify_you_:"Should we notify you about new messages in the future?",Please_accept_:'Please click the "Allow" button at the top.',Hide_offline:"Hide offline contacts",Show_offline:"Show offline contacts",About:"About",dnd:"Do Not Disturb",Mute:"Mute",Unmute:"Unmute",Subscription:"Subscription",both:"both",Status:"Status",online:"online",chat:"chat",away:"away",xa:"extended away",offline:"offline",none:"none",Unknown_instance_tag:"Unknown instance tag.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Received an unreadable encrypted message.",Online:"Online",Chatty:"Chatty",Away:"Away",Extended_away:"Extended away",Offline:"Offline",Friendship_request:"Contact request",Confirm:"Confirm",Dismiss:"Dismiss",Remove:"Remove",Online_help:"Online help",FN:"Full name",N:" ",FAMILY:"Family name",GIVEN:"Given name",NICKNAME:"Nickname",URL:"URL",ADR:"Address",STREET:"Street Address",EXTADD:"Extended Address",LOCALITY:"Locality",REGION:"Region",PCODE:"Postal Code",CTRY:"Country",TEL:"Telephone",NUMBER:"Number",EMAIL:"Email",USERID:" ",ORG:"Organization",ORGNAME:"Name",ORGUNIT:"Unit",TITLE:"Job title",ROLE:"Role",BDAY:"Birthday",DESC:"Description",PHOTO:" ",send_message:"Send message",get_info:"Show information",Settings:"Settings",Priority:"Priority",Save:"Save",User_settings:"User settings",A_fingerprint_:"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.",is:"is",Login_options:"Login options",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Resource",On_login:"On login",Received_an_unencrypted_message:"Received an unencrypted message",Sorry_your_buddy_doesnt_provide_any_information:"Sorry, your contact does not provide any information.",Info_about:"Info about",Authentication_aborted:"Authentication aborted.",Authentication_request_received:"Authentication request received.",Log_in_without_chat:"Log in without chat",has_come_online:"has come online",Unknown_sender:"Unknown sender",Please_allow_access_to_microphone_and_camera:'Please click the "Allow" button at the top, to allow access to microphone and camera.',Incoming_call:"Incoming call",from:"from",Do_you_want_to_accept_the_call_from:"Do you want to accept the call from",Reject:"Reject",Accept:"Accept",hang_up:"hang up",snapshot:"snapshot",mute_my_audio:"mute my audio",pause_my_video:"pause my video",fullscreen:"fullscreen",Info:"Info",Local_IP:"Local IP",Remote_IP:"Remote IP",Local_Fingerprint:"Local fingerprint",Remote_Fingerprint:"Remote fingerprint",Video_call_not_possible:"Video call not possible. Your contact does not support video calls.",Start_video_call:"Start video call",Join_chat:"Join chat",Join:"Join",Room:"Room",Nickname:"Nickname",left_the_building:"__nickname__ left the building",entered_the_room:"__nickname__ entered the room",is_now_known_as:"__oldNickname__ is now known as __newNickname__",This_room_is:"This room is",muc_hidden:{keyword:"hidden",description:"can not be found through search"},muc_membersonly:{keyword:"members-only",description:"you need to be on the member list"},muc_moderated:{keyword:"moderated",description:'only persons with "voice" are allowed to send messages'},muc_nonanonymous:{keyword:"non-anonymous",description:"your jabber id is exposed to all other occupants"},muc_open:{keyword:"open",description:"everyone is allowed to join"},muc_passwordprotected:{keyword:"password-protected",description:"you need to provide the correct password"},muc_persistent:{keyword:"persistent",description:"will not be destroyed if the last occupant left"},muc_public:{keyword:"public",description:"can be found through search"},muc_semianonymous:{keyword:"semi-anonymous",description:"your jabber id is only exposed to room admins"},muc_temporary:{keyword:"temporary",description:"will be destroyed if the last occupant left"},muc_unmoderated:{keyword:"unmoderated",description:"everyone is allowed to send messages"},muc_unsecured:{keyword:"unsecured",description:"you need no password to enter"},Continue:"Continue",Server:"Server",Rooms_are_loaded:"Rooms are loaded",Could_load_only:"Could load only __count__ rooms for autocomplete",muc_explanation:"Please enter room name and optional a nickname and password to join a chat",You_already_joined_this_room:"You already joined this room",This_room_will_be_closed:"This room will be closed",Room_not_found_:"A new room will be created",Loading_room_information:"Loading room information",Destroy:"Destroy",Leave:"Leave",changed_subject_to:'__nickname__ changed the room subject to "__subject__"',muc_removed_kicked:"You have been kicked from the room",muc_removed_info_kicked:"__nickname__ has been kicked from the room",muc_removed_banned:"You have been banned from the room",muc_removed_info_banned:"__nickname__ has been banned from the room",muc_removed_affiliation:"You have been removed from the room, because of an affiliation change",muc_removed_info_affiliation:"__nickname__ has been removed from the room, because of an affiliation change",muc_removed_membersonly:"You have been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_info_membersonly:"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_shutdown:"You have been removed from the room, because the MUC service is being shut down",Reason:"Reason",message_not_send:"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist",message_not_send_forbidden:"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room",This_room_has_been_closed:"This room has been closed",Room_logging_is_enabled:"Room logging is enabled",A_password_is_required:"A password is required",You_are_not_on_the_member_list:"You are not on the member list",You_are_banned_from_this_room:"You are banned from this room",Your_desired_nickname_:"Your desired nickname is already in use. Please choose another",The_maximum_number_:"The maximum number of user is reached in this room",This_room_is_locked_:"This room is locked",You_are_not_allowed_to_create_:"You are not allowed to create a room",Alert:"Alert",Call_started:"Call started",Call_terminated:"Call terminated",Carbon_copy:"Carbon copy",Enable:"Enable",jingle_reason_busy:"busy",jingle_reason_decline:"decline",jingle_reason_success:"hung up",Media_failure:"Media failure",No_local_audio_device:"No local audio device.",No_local_video_device:"No local video device.",Ok:"Ok",PermissionDeniedError:"You or your browser denied audio/video permission",Use_local_audio_device:"Use local audio device.",Use_local_video_device:"Use local video device.",is_:"is __status__",You_received_a_message_from_an_unknown_sender_:"You received a message from an unknown sender (__sender__) Do you want to display them?",Your_roster_is_empty_add_:"Your roster is empty, add a <a>new contact</a>",onsmp_explanation_question:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",onsmp_explanation_secret:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",from_sender:"from __sender__",Verified_private_conversation_started:"Verified Private conversation started.",Unverified_private_conversation_started:"Unverified Private conversation started.",Bookmark:"Bookmark","Auto-join":"Auto-join",Edit_bookmark:"Edit bookmark",Room_logging_is_disabled:"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous",Do_you_want_to_change_the_default_room_configuration:"Do you want to change the default room configuration?",Default:"Default",Change:"Change"}},es:{translation:{Logging_in:"Por favor, espere...",your_connection_is_unencrypted:"Su conexión no está cifrada.",your_connection_is_encrypted:"Su conexión está cifrada.",your_buddy_closed_the_private_connection:"Su amigo ha cerrado la conexión privada.",start_private:"Iniciar privado",close_private:"Cerrar privado",your_buddy_is_verificated:"Tu amigo está verificado.",you_have_only_a_subscription_in_one_way:"Sólo tienes una suscripción de un modo.",authentication_query_sent:"Consulta de verificación enviada.",your_message_wasnt_send_please_end_your_private_conversation:"Su mensaje no fue enviado. Por favor, termine su conversación privada.",unencrypted_message_received:"Mensaje no cifrado recibido:",not_available:"No disponible",no_connection:"Sin conexión!",relogin:"iniciar sesión nuevamente",trying_to_start_private_conversation:"Intentando iniciar una conversación privada!",Verified:"Verificado",Unverified:"No verificado",private_conversation_aborted:"Conversación privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Su amigo cerró la conversación privada! Usted debería hacer lo mismo.",conversation_is_now_verified:"La conversación es ahora verificada.",authentication_failed:"Fallo la verificación.",Creating_your_private_key_:"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.",Authenticating_a_buddy_helps_:"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.",How_do_you_want_to_authenticate_your_buddy:"¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Escoja un método...",Manual:"Manual",Question:"Pregunta",Secret:"Secreto",To_verify_the_fingerprint_:"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.",Your_fingerprint:"Tu firma digital",Buddy_fingerprint:"firma digital de tu amigo",Close:"Cerrar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar mediante una pregunta, elegir una pregunta cuya respuesta se conoce sólo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido sólo por usted y su amigo.",Compare:"Comparar",Fingerprints:"Firmas digitales",Authentication:"Autenticación",Message:"Mensaje",Add_buddy:"Añadir amigo",rename_buddy:"renombrar amigo",delete_buddy:"eliminar amigo",Login:"Iniciar Sesión",Username:"Usuario",Password:"Contraseña",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Escriba el usuario completo y un alias opcional.",Alias:"Alias",Add:"Añadir",Subscription_request:"Solicitud de suscripción",You_have_a_request_from:"Tienes una petición de",Deny:"Rechazar",Approve:"Aprobar",Remove_buddy:"Eliminar amigo",You_are_about_to_remove_:"Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.",Continue_without_chat:"Continuar",Please_wait:"Espere por favor",Login_failed:"Fallo el inicio de sesión",Sorry_we_cant_authentikate_:"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?",Retry:"Reintentar",clear_history:"Borrar el historial",New_message_from:"Nuevo mensaje de __name__",Should_we_notify_you_:"¿Debemos notificarle sobre nuevos mensajes en el futuro?",Please_accept_:'Por favor, haga clic en el botón "Permitir" en la parte superior.',Hide_offline:"Ocultar contactos desconectados",Show_offline:"Mostrar contactos desconectados",About:"Acerca de",dnd:"No Molestar",Mute:"Desactivar sonido",Unmute:"Activar sonido",Subscription:"Suscripción",both:"ambos",Status:"Estado",online:"en línea",chat:"chat",away:"ausente",xa:"mas ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No de nuestra ultima tecla.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",
+Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Mas ausente",Offline:"Desconectado",Friendship_request:"Solicitud de amistad",Confirm:"Confirmar",Dismiss:"Rechazar",Remove:"Eliminar",Online_help:"Ayuda en línea",FN:"Nombre completo ",N:" ",FAMILY:"Apellido",GIVEN:"Nombre",NICKNAME:"Apodar",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Extendido dirección",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Emilio",USERID:" ",ORG:"Organización",ORGNAME:"Nombre",ORGUNIT:"Departamento",TITLE:"Título",ROLE:"Rol",BDAY:"Cumpleaños",DESC:"Descripción",PHOTO:" ",send_message:"mandar un texto",get_info:"obtener información",Settings:"Ajustes",Priority:"Prioridad",Save:"Guardar",User_settings:"Configuración de usuario",A_fingerprint_:"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser",is:"es",Login_options:"Opciones de login",BOSH_url:"BOSH url",Domain:"Dominio",Resource:"Recurso",On_login:"Iniciar sesión",Received_an_unencrypted_message:"Recibe un mensaje no cifrado",Sorry_your_buddy_doesnt_provide_any_information:"Lo sentimos, su amigo no provee ninguna información.",Info_about:"Info acerca de",Authentication_aborted:"Autenticación abortada",Authentication_request_received:"Pedido de autenticación recibido.",Log_in_without_chat:"Ingresar sin chat",has_come_online:"se ha conectado",Unknown_sender:"Remitente desconocido",Please_allow_access_to_microphone_and_camera:"Por favor, permitir el acceso al micrófono y la cámara.",Incoming_call:"Llamada entrante",from:"de",Do_you_want_to_accept_the_call_from:"Desea aceptar la llamada de",Reject:"Rechazar",Accept:"Aceptar",hang_up:"colgar",snapshot:"instantánea",mute_my_audio:"silenciar mi audio",pause_my_video:"pausar mi vídeo",fullscreen:"pantalla completa",Info:"Info",Local_IP:"IP local",Remote_IP:"IP remota",Local_Fingerprint:"Firma digital local",Remote_Fingerprint:"Firma digital remota",Video_call_not_possible:"Llamada de vídeo no es posible",Start_video_call:"Iniciar llamada de vídeo",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:"Activar",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"es __status__",You_received_a_message_from_an_unknown_sender_:"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?",Your_roster_is_empty_add_:"Tu lista de amigos esta vacia <a>Nuevo amigo</a>",onsmp_explanation_question:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.",onsmp_explanation_secret:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado se inició una conversación privada.",Unverified_private_conversation_started:"No verificado se inició una conversación privada."}},fr:{translation:{Logging_in:"Connexion...",your_connection_is_unencrypted:"Connexion non chiffrée.",your_connection_is_encrypted:"Connexion chiffrée.",your_buddy_closed_the_private_connection:"Votre ami a fermé la connexion privée.",start_private:"Démarrer une conversation privé",close_private:"Clôturer une conversation privée",your_buddy_is_verificated:"Votre contact est vérifié.",you_have_only_a_subscription_in_one_way:"Vous ne pouvez souscrire qu'une fois.",authentication_query_sent:"Requête d’authentification envoyée.",your_message_wasnt_send_please_end_your_private_conversation:"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.",unencrypted_message_received:"Message non chiffré reçu",not_available:"Pas disponible",no_connection:"Pas de connexion !",relogin:"Re-connexion",trying_to_start_private_conversation:"Essai de démarrage d'une conversation privée !",Verified:"Vérifié",Unverified:"Non vérifié",private_conversation_aborted:"Conversation privée interrompue !",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Votre ami a fermé la conversation privée ! Vous devriez faire de même.",conversation_is_now_verified:"La conversation est maintenant vérifiée.",authentication_failed:"L'authentification a échoué.",Creating_your_private_key_:"Création de votre clé privée; cela peut prendre un moment.",Authenticating_a_buddy_helps_:"L'authentification d'un ami permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.",How_do_you_want_to_authenticate_your_buddy:"Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Sélection de la méthode...",Manual:"Manuel",Question:"Question",Secret:"Sécurité",To_verify_the_fingerprint_:"Pour vérifier l'empreinte, contactez votre ami via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte de l'ami",Close:"Fermer",Compared:"Comparé",To_authenticate_using_a_question_:"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre ami.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre ami.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter comme ami",rename_buddy:"Renommer l'ami",delete_buddy:"Supprimer l'ami",Login:"Connexion",Username:"Nom d'utilisateur",Password:"Mot de passe",Cancel:"Annuler",Connect:"Connecter",Type_in_the_full_username_:"Tapez un nom d'utilisateur complet et un alias(optionnel).",Alias:"Alias",Add:"Ajouter",Subscription_request:"Demande d'abonnement",You_have_a_request_from:"Vous avez une requête de ",Deny:"Refuser",Approve:"Approuver",Remove_buddy:"Supprimer l'ami",You_are_about_to_remove_:"Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste d'amis. Toutes les fenêtres de chat en lien avec celui-ci seront fermées.",Continue_without_chat:"Continuer sans tchat",Please_wait:"Merci de patienter",Login_failed:"Authentification échouée",Sorry_we_cant_authentikate_:"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.",Retry:"Retour",clear_history:"Effacer l’historique",New_message_from:"Nouveau message de __name__",Should_we_notify_you_:"Dans le futur, devrons-nous vous notifier les nouveaux messages ?",Please_accept_:'Merci de cliquer sur le bouton "autoriser" en haut de page',Hide_offline:"Masquer les contacts non connectés",Show_offline:"Afficher les contacts non connectés",About:"À propos",dnd:"Ne pas déranger",Mute:"Muet",Unmute:"Son actif",Subscription:"Abonnement",both:"Les deux",Status:"Status",online:"En ligne",chat:"tchat",away:"Absent",xa:"Options étendues",offline:"Hors ligne",none:"Aucun",Unknown_instance_tag:"Tag inconnu",Not_one_of_our_latest_keys:"Ce n'est pas l'une des dernières touches",Received_an_unreadable_encrypted_message:"Message chiffré non lisible",Online:"En ligne",Chatty:"tchatty",Away:"Absent",Extended_away:"Options étendues",Offline:"Hors ligne",Friendship_request:"Demande d'amitié",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Surnom",URL:"URL",ADR:"Adresse",STREET:"Rue",EXTADD:"Adresse (suite)",LOCALITY:"Localité",REGION:"Région",PCODE:"Code Postal",CTRY:"Pays",TEL:"Téléphone",NUMBER:"Numéro",EMAIL:"Courriel",USERID:" USERID ",ORG:"Organisation",ORGNAME:"Nom",ORGUNIT:"Unité",TITLE:"Qualité:",ROLE:"Rôle",BDAY:"Date de naissance",DESC:"Description",PHOTO:"Photo",send_message:"Envoyer le message",get_info:"Montrer les informations",Settings:"Réglages",Priority:"Priorité",Save:"Enregistrer",User_settings:"Paramètres utilisateur",A_fingerprint_:"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez",is:"est",Login_options:"Options d'identification",BOSH_url:"URL BOSH",Domain:"Domaine",Resource:"Ressource",On_login:"Après authentification",Received_an_unencrypted_message:"Reçu un message non chiffré",Sorry_your_buddy_doesnt_provide_any_information:"Désolé, votre ami n'a pas fourni d'informations",Info_about:"A propos de",Authentication_aborted:"Authentification interrompue.",Authentication_request_received:"Requête d'authentification reçue.",Log_in_without_chat:"S'identifier sans tchat",has_come_online:"vient d'arriver",Unknown_sender:"Expéditeur inconnu",Please_allow_access_to_microphone_and_camera:'Veuillez cliquez sur le bouton "Autoriser" en haut, pour permettre l\'accès au micro et à la caméra.',Incoming_call:"Appel entrant",from:"de",Do_you_want_to_accept_the_call_from:"Voulez-vous accepter l'appel de",Reject:"Rejeté",Accept:"Accepté",hang_up:"Décrochez",snapshot:"Capture d’écran",mute_my_audio:"Couper l'audio",pause_my_video:"Mettre ma vidéo en pause",fullscreen:"Plein écran",Info:"Info",Local_IP:"IP locale",Remote_IP:"IP distante",Local_Fingerprint:"Empreinte locale",Remote_Fingerprint:"Empreinte distante",Video_call_not_possible:"L'appel vidéo n'est possible. Votre ami ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discution",Join:"Joindre",Room:"Salon",Nickname:"Surnom",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:null,This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:null},muc_membersonly:{keyword:"pour les membres seulement",description:"Vous devez être sur la liste des membres"},muc_moderated:{keyword:"modéré",description:'Seulement les personnes avec la "voix" sont autorisés à envoyer des messages'},muc_nonanonymous:{keyword:"non anonyme",description:"Votre identifiant Jabber est visible de tous les autres occupants"},muc_open:{keyword:"ouvert",description:"Tout le monde est autorisé à se connecter"},muc_passwordprotected:{keyword:"protégé par un mot de passe",description:"Vous devez fournir un mot de passe correct"},muc_persistent:{keyword:"persistent",description:null},muc_public:{keyword:"public",description:null},muc_semianonymous:{keyword:"semi-anonyme",description:"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},muc_temporary:{keyword:"temporaire",description:"sera détruit au départ de son dernier occupant"},muc_unmoderated:{keyword:"non modéré",description:"Tout le monde est autorisé à envoyer des messages"},muc_unsecured:{keyword:"non sécurisé",description:"un mot de passe n'est pas nécessaire pour entrer"},Continue:"Continuer",Server:"Serveur",Rooms_are_loaded:"Les salons sont chargés",Could_load_only:null,muc_explanation:"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation",You_already_joined_this_room:"Vous avez déjà rejoins ce salon",This_room_will_be_closed:"Ce salon va être fermé",Room_not_found_:"Un nouveau salon va être créé",Loading_room_information:"Chargement des informations du salon",Destroy:"Détruire",Leave:"Quitter",changed_subject_to:'__nickname__ a changé le sujet du salon à "__subject__"',muc_removed_kicked:"Vous avez été éjecté de ce salon",muc_removed_info_kicked:"__nickname__ a été éjecté de ce salon",muc_removed_banned:"Vous avez été banni de ce salon",muc_removed_info_banned:"__nickname__ a été banni de ce salon",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:"Raison",message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon",This_room_has_been_closed:"Ce salon a été fermé",Room_logging_is_enabled:null,A_password_is_required:"Un mot de passe est requis",You_are_not_on_the_member_list:"Vous n'êtes pas sur la liste des membres",You_are_banned_from_this_room:"Vous avez été banni de ce salon",Your_desired_nickname_:"Votre Surnom souhaité est déjà utilisé.Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateur est atteint dans ce salon",This_room_is_locked_:"Ce salon est vérouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"est __status__",You_received_a_message_from_an_unknown_sender_:"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?",Your_roster_is_empty_add_:"Votre liste est vide, ajouter <a>Nouvel ami</a>",onsmp_explanation_question:"Votre ami tente de déterminer si il ou elle parle vraiment à vous. Vous authentifier à votre ami, Saisissez une réponse et cliquer sur Répondre.",onsmp_explanation_secret:"Votre ami tente de déterminer si il ou elle parle vraiment à vous. Vous authentifier à votre ami, Entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"Vérifié Conversation privé démarrée.",Unverified_private_conversation_started:"Non vérifié Conversation privé démarrée."}},it:{translation:{Logging_in:"login…",your_connection_is_unencrypted:"La sua connessione è non cifrata.",your_connection_is_encrypted:"La sua connessione è cifrata.",your_buddy_closed_the_private_connection:"La sua connessione privata è stato chiuso dal suo compagno.",start_private:"Inizia privata",close_private:"Chiude privata",your_buddy_is_verificated:"Il tuo compagno è stato verificato",you_have_only_a_subscription_in_one_way:"Hai solo una one-way inscrizione.",authentication_query_sent:"Domanda d'autenticità inviata.",your_message_wasnt_send_please_end_your_private_conversation:"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.",unencrypted_message_received:"Messaggio non cifrato ricevuto",not_available:"non disponibile",no_connection:"nessun collegamento!",relogin:"nuovo login",trying_to_start_private_conversation:"Cercando di avviare una conversazione privata!",Verified:"verificato",Unverified:"non verificato",private_conversation_aborted:"Conversazione privata abortito!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.",conversation_is_now_verified:"Conversazione è ora verificato.",authentication_failed:"autenticazione fallita.",Creating_your_private_key_:"Creare la propria chiave privata; questo potrebbe richiedere un po'.",Authenticating_a_buddy_helps_:"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.",How_do_you_want_to_authenticate_your_buddy:"Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Seleziona metodo ..",Manual:"manuale",Question:"domanda",Secret:"segreto",To_verify_the_fingerprint_:"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.",Your_fingerprint:"il tuo impronta digitale",Buddy_fingerprint:"impronta digitale da compagno",Close:"chiude",Compared:"comparato",To_authenticate_using_a_question_:"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno",Ask:"chiedi",To_authenticate_pick_a_secret_:"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.",Compare:"Comparare",Fingerprints:"Impronta digitale",Authentication:"Autenticazione",Message:"Messagio",Add_buddy:"Aggiungi un compagno",rename_buddy:"rinomina compagno",delete_buddy:"elimina compagno",Login:"Login",Username:"Identificazione dell'utente",Password:"Password",Cancel:"Cancella",Connect:"Collega",Type_in_the_full_username_:"Digita l'identificazione utente completo e un alias opzionale.",Alias:"Alias",Add:"Aggiungi",Subscription_request:"Rrichiesta di sottoscrizione",You_have_a_request_from:"Hai una richiesta da",Deny:"Refiuta",Approve:"Approva",Remove_buddy:"Rimuova il compagno",You_are_about_to_remove_:"Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.",Continue_without_chat:"Continua senza chat",Please_wait:"Si prega d'attendere",Login_failed:"Chat login è fallito",Sorry_we_cant_authentikate_:"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?",Retry:"Indietro",clear_history:"Cancella la cronologia",New_message_from:"Nuovo messaggio da __name__",Should_we_notify_you_:"Vuoi ricevere una notifica di nuovi messaggi in futuro?",Please_accept_:'Si prega di fare clic sul bottone "Autorizzazione" sopra.',Hide_offline:"Nascondere i contatti non in linea",Show_offline:"Mostra i contatti non in linea",About:"Informazione legale",dnd:"Non disturbare",Mute:"Muto attivo",Unmute:"Muto inattivo",Subscription:"Sottoscrizione",both:"etrambi",Status:"Status",online:"In linea",chat:"chat",away:"via",xa:"via estensivo",offline:"non in linea",none:"nessuno",Unknown_instance_tag:"Instance tag sconosciuta.",Not_one_of_our_latest_keys:"Non è una delle nostre ultime chiavi.",Received_an_unreadable_encrypted_message:"Ricevuto un messaggio crittografato illeggibile.",Online:"In linea",Chatty:"Chiacchierino",Away:"Via",Extended_away:"Via estensivo",Offline:"Non in linea",Friendship_request:"Amicizia richiesto",Confirm:"Conferma",Dismiss:"Rifiuta",Remove:"Rimuovi",Online_help:"Guida in linea",FN:"Nome e cognome",N:null,FAMILY:"Cognome",GIVEN:"Nome",NICKNAME:"Soprannome",URL:"URL",ADR:"Indirizzo",STREET:"Via",EXTADD:"Esteso Indirizzo",LOCALITY:"Località",REGION:"Regione",PCODE:"Codice Postale",CTRY:"Paese",TEL:"Telefono",NUMBER:"Numero",EMAIL:"E-mail",USERID:null,ORG:"Organizzazione",ORGNAME:"Nome",ORGUNIT:"Unità",TITLE:"Titolo di lavoro",ROLE:"Funzione",BDAY:"Compleanno",DESC:"Descrizione",PHOTO:null,send_message:"Messagio inviato",get_info:"Mostra informazioni",Settings:"Impostazione",Priority:"Priorità",Save:"Salva",User_settings:"Impostazione dell'utente",A_fingerprint_:"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.",is:"è",Login_options:"Opzioni di login",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Risorsa",On_login:"Login on",Received_an_unencrypted_message:"Ricevuto un messaggio non crittografato",Sorry_your_buddy_doesnt_provide_any_information:"Spiace, il tuo compagno non fornisce alcuna informazione.",Info_about:"Informazioni",Authentication_aborted:"Autenticazione interrotta",Authentication_request_received:"Richiesta di autenticazione ricevuto.",Log_in_without_chat:"Log in senza chat",has_come_online:"È venuto in linea",Unknown_sender:"Mittente sconosciuto",Please_allow_access_to_microphone_and_camera:'Si prega di fare clic sul bottone "Autorizzazione" sopra per autorizzazione del l\'accesso al microfono e fotocamera.',Incoming_call:"Chiamata in arrivo",from:"di",Do_you_want_to_accept_the_call_from:"Vuoi accettare la chiamata di",Reject:"Rifiuta",Accept:"Accetta",hang_up:"Riattacca",snapshot:"istantanea",mute_my_audio:"disattiva il mio audio",pause_my_video:"pausa il mio audio",fullscreen:"schermo intero",Info:"Informazione",Local_IP:"IP locale",Remote_IP:"IP remoto",Local_Fingerprint:"Impronta digitale locale",Remote_Fingerprint:"Impronta digitale remoto",Video_call_not_possible:"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.",Start_video_call:"Inizia videochiamata",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"è __status__",You_received_a_message_from_an_unknown_sender_:"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?",Your_roster_is_empty_add_:"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>",onsmp_explanation_question:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.",onsmp_explanation_secret:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.",from_sender:"di __sender__",Verified_private_conversation_started:"verificato Conversazione privata iniziato.",Unverified_private_conversation_started:"non verificato Conversazione privata iniziato."}},nds:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},pl:{translation:{Logging_in:"Logowanie...",your_connection_is_unencrypted:"Twoje połączenie nie jest szyfrowane.",your_connection_is_encrypted:"Twoje połączenie jest szyfrowane.",your_buddy_closed_the_private_connection:"Twój rozmówca zamknął połączenie.",start_private:"Rozpocznij rozmowę.",close_private:"Zakończ rozmowę.",your_buddy_is_verificated:"Twój rozmówca został zweryfikowany.",you_have_only_a_subscription_in_one_way:"Masz jednostronną subskrypcję.",authentication_query_sent:"Wysłano proźbę o autentykację.",your_message_wasnt_send_please_end_your_private_conversation:"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.",unencrypted_message_received:"Zwrotna niezaszyfrowana wiadomość.",not_available:"Niedostępny.",no_connection:"Brak połączenia!",relogin:"Połącz ponownie",trying_to_start_private_conversation:"Rozpocznij rozmowę!",Verified:"Zweryfikowano",Unverified:"Niezweryfikowano",private_conversation_aborted:"Anulowano rozmowę!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Rozmówca przerwał połączenie!",conversation_is_now_verified:"Zweryfikowano połączenie.",authentication_failed:"Weryfikacja się nie powiodła.",Creating_your_private_key_:"Tworzenie klucza prywatnego; może to chwilę potrwać",Authenticating_a_buddy_helps_:"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).",How_do_you_want_to_authenticate_your_buddy:"Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Wybierz sposób...",Manual:"Ręcznie",Question:"Pytanie",Secret:"Hasło",To_verify_the_fingerprint_:"Aby zweryfikować kod najpierw skontaktuj się z rozmówcą np. za pomocą telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod rozmówcy",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko Twój rozmówca zna odpowiedź.",Ask:"Zadaj pytanie",To_authenticate_pick_a_secret_:"Aby autoryzować za pomocą hasła, wybierz hasło na które zna tylko Twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę",delete_buddy:"Usuń kontakt",Login:"Login",Username:"Nazwa Użytkownika",Password:"Hasło",Cancel:"Anuluj",Connect:"Połączenie",Type_in_the_full_username_:"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).",
+Alias:"Alias",Add:"Dodaj",Subscription_request:"Potwierdzenie subskrypcji",You_have_a_request_from:"Masz potwierdzenie od",Deny:"Odmów",Approve:"Zatwierdź",Remove_buddy:"Usuń rozmówcę",You_are_about_to_remove_:"Twój rozmówca {{bid_name}} (<b>{{bid_jid}}</b>) usunął Cię ze swojej listy kontaktów.",Continue_without_chat:"Kontynuuj bez komunikatora",Please_wait:"Proszę czekać",Login_failed:"Błędne logowanie",Sorry_we_cant_authentikate_:"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?",Retry:"Powrót",clear_history:"Wyczyść historię",New_message_from:"Nowa wiadomość od __name__",Should_we_notify_you_:"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?",Please_accept_:'Kliknij "Zezwól" na górze.',Hide_offline:"Schowaj niedostępne kontakty",Show_offline:"Pokaż niedostępne kontakty",About:"Info",dnd:"Nie przeszkadzać",Mute:"Wycisz",Unmute:"Włącz dźwięk",Subscription:"Subskrybcja",both:"obustronna",Status:"Status",online:"Dostępny",chat:"czat",away:"z dala od kompa",xa:"hen hen...",offline:"niedostępny",none:"brak",Unknown_instance_tag:"Nieznany przypadek.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Otrzymano nieczytelną, zaszyfrowaną wiadomość.",Online:"Połączony",Chatty:"Pogawędzimy?",Away:"Daleko",Extended_away:"Hen Hen...",Offline:"Niedostępny",Friendship_request:"Zapytanie od znajomego?",Confirm:"Potwierdzenie",Dismiss:"Odwołaj",Remove:"Usuń",Online_help:"Pomoc Online",FN:"Pełna nazwa",N:" ",FAMILY:"Nazwisko",GIVEN:"Imię",NICKNAME:"Pseudonim",URL:"Strona WWW",ADR:"Adres",STREET:"Ulica",EXTADD:"Pełny adres",LOCALITY:"Lokalizacja",REGION:"Region",PCODE:"Kod pocztowy",CTRY:"Kraj",TEL:"Telefon",NUMBER:"Numer",EMAIL:"Email",USERID:" ",ORG:"Organizacja",ORGNAME:"Nazwa",ORGUNIT:"Jednostka",TITLE:"Stanowisko",ROLE:"Rola",BDAY:"Data urodzin",DESC:"Opis",PHOTO:" ",send_message:"Wyślij wiadomość",get_info:"Pokaż informację",Settings:"Ustawienia",Priority:"Priorytet",Save:"Zapisz",User_settings:"Ustawienia Użytkownika",A_fingerprint_:"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.",is:"jest",Login_options:"opcje logowania",BOSH_url:"Adres BOSH",Domain:"Domena",Resource:"Źródło",On_login:"Na login",Received_an_unencrypted_message:"Zatwierdzono nieszyfrowaną wiadomość.",Sorry_your_buddy_doesnt_provide_any_information:"Twój rozmówca nie posiada żadnych informacji.",Info_about:"Informacja o...",Authentication_aborted:"Autoryzacja anulowana.",Authentication_request_received:"Prośba o autoryzację została przyjęta.",Log_in_without_chat:"Zaloguj bez komunikatora",has_come_online:"jest teraz dostępny",Unknown_sender:"Nieznany nadawca",Please_allow_access_to_microphone_and_camera:'Kliknij "Potwierdź" na górze, aby móc korzystać z mikrofonu oraz kamery.',Incoming_call:"Przychodzące połączenie",from:"z",Do_you_want_to_accept_the_call_from:"Akceptujesz połączenie od",Reject:"Odrzuć",Accept:"Zaakceptuj",hang_up:"odbierz",snapshot:"zrób zdjęcie",mute_my_audio:"wycisz dźwięk",pause_my_video:"zatrzymaj moje wideo",fullscreen:"Pełny ekran",Info:"Informacja",Local_IP:"Adres IP",Remote_IP:"Zdalny adres IP",Local_Fingerprint:"Kod lokalny",Remote_Fingerprint:"Zdalny kod",Video_call_not_possible:"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.",Start_video_call:"Rozpocznij rozmowę wideo",Join_chat:"Dołącz do czata",Join:"Dołącz",Room:"Pokój",Nickname:"Nazwa użytkownika",left_the_building:"__nickname__ wyszedł",entered_the_room:"__nickname__ wszedł do pokoju",is_now_known_as:"__oldNickname__ zmienił nazwę na __newNickname__",This_room_is:"Ten pokój jest",muc_hidden:{keyword:"ukryty",description:"nie można odnaleźć elementów wyszukiwania"},muc_membersonly:{keyword:"tylko zalogowani",description:"musisz być członkiem listy"},muc_moderated:{keyword:"moderowano",description:'tylko osoby z opcją "głos" mogą wysyłać wiadomość'},muc_nonanonymous:{keyword:"nie-anonimowy",description:"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},muc_open:{keyword:"otwarty",description:"wszyscy mają pozwolenie aby dołączyć"},muc_passwordprotected:{keyword:"ograniczone hasłem",description:"musisz wpisać prawidłowe hasło"},muc_persistent:{keyword:"trwale",description:"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},muc_public:{keyword:"publiczny",description:"wyszukawno"},muc_semianonymous:{keyword:"pół-anonimowy",description:"Twój identyfikator jabber jest widoczny w pokoju adminów"},muc_temporary:{keyword:"tymczasowy",description:"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},muc_unmoderated:{keyword:"niemoderowany",description:"wszyscy są uprawnieni do pisania wiadomości"},muc_unsecured:{keyword:"niezabezpieczone",description:"nie musisz wpisywać hasła"},Continue:"Kontynuuj",Server:"Serwer",Rooms_are_loaded:"Pokoje zostały załadowane",Could_load_only:"Nie załadowano __count__ pokoi",muc_explanation:"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło",You_already_joined_this_room:"Już dołączyłeś do tego pokoju",This_room_will_be_closed:"Ten pokój będzie zamknięty",Room_not_found_:"Nowy pokój będzie stworzony",Loading_room_information:"Ładowani informacji o pokoju",Destroy:"Zniszczony",Leave:"Opuść",changed_subject_to:'__nickname__ zmienił temat pokoju na "__subject__"',muc_removed_kicked:"Zostałeś wyrzucony z pokoju",muc_removed_info_kicked:"__nickname__ został wyrzucony z pokoju",muc_removed_banned:"Zostałeś zbanowany",muc_removed_info_banned:"__nickname__ został zbanowany",muc_removed_affiliation:"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_info_affiliation:"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_membersonly:"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...",muc_removed_info_membersonly:"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków",muc_removed_shutdown:"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi",Reason:"Powód",message_not_send:"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",message_not_send_forbidden:"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",This_room_has_been_closed:"Ten pokój został zamknięty",Room_logging_is_enabled:"Logowanie do pokoju jest włączone",A_password_is_required:"Hasło jest wymagane",You_are_not_on_the_member_list:"Nie jesteś na liście członków",You_are_banned_from_this_room:"Zostałeś zbanowany w tym pokoju",Your_desired_nickname_:"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną",The_maximum_number_:"Została osiągnięta maksymalna liczba użytkowników w tym pokoju",This_room_is_locked_:"Ten pokój jest zablokowany",You_are_not_allowed_to_create_:"Nie masz uprawnień do tworzenia pokoju",Alert:"Alarm",Call_started:null,Call_terminated:null,Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:"Ok",PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"jest __status__",You_received_a_message_from_an_unknown_sender_:"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?",Your_roster_is_empty_add_:"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>",onsmp_explanation_question:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.",onsmp_explanation_secret:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.",from_sender:"z __sender__",Verified_private_conversation_started:"Zweryfikowano Rozmowa prywatna rozpoczęta.",Unverified_private_conversation_started:"Niezweryfikowano Rozmowa prywatna rozpoczęta."}},"pt-BR":{translation:{Logging_in:"Entrando...",your_connection_is_unencrypted:"Sua conexão não é encriptada",your_connection_is_encrypted:"Sua conexão é encriptada",your_buddy_closed_the_private_connection:"Seu contato fechou a conexão privada",start_private:"Iniciar conversa privada",close_private:"Fechar conversa privada",your_buddy_is_verificated:"Seu contato está verificado",you_have_only_a_subscription_in_one_way:"Você só tem a inscrição one-way",authentication_query_sent:"Pergunta de autenticação enviada",your_message_wasnt_send_please_end_your_private_conversation:"Sua mensagem não foi enviada. Por favor finalize sua conversa privada",unencrypted_message_received:"Mensagem não encriptada recebida",not_available:"Indisponível",no_connection:"Sem conexão!",relogin:"reentrar",trying_to_start_private_conversation:"Tentando iniciar conversa privada",Verified:"Verificado",Unverified:"Não verificado",private_conversation_aborted:"Conversa privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.",conversation_is_now_verified:"Conversa verificada.",authentication_failed:"Autenticação falhou.",Creating_your_private_key_:"Criando sua chave privada: isso pode demorar um pouco.",Authenticating_a_buddy_helps_:"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.",How_do_you_want_to_authenticate_your_buddy:"Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Selecione o método...",Manual:"Manual",Question:"Pergunta",Secret:"Senha",To_verify_the_fingerprint_:"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.",Your_fingerprint:"Seu fingerprint",Buddy_fingerprint:"Fingerprint do contato",Close:"Fechar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.",Ask:"Pergunta",To_authenticate_pick_a_secret_:"Para autenticar, escolha um segredo que somente você e seu contato saibam.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Autenticação",Message:"Mensagem",Add_buddy:"Adicionar contato",rename_buddy:"renomear contato",delete_buddy:"remover contato",Login:"Entrar",Username:"Usuário",Password:"Senha",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Digite seu nome completo e um apelido opcional.",Alias:"Apelido",Add:"Adicionar",Subscription_request:"Pedido de inscrição",You_have_a_request_from:"Você tem um pedido de",Deny:"Negar",Approve:"Aprovar",Remove_buddy:"Remover contato",You_are_about_to_remove_:"Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.",Continue_without_chat:"Continue sem converar",Please_wait:"Por favor aguarde",Login_failed:"Autenticação da conversa falhou",Sorry_we_cant_authentikate_:"A autenticação com o servidor falhou. Talvez seja a senha errada?",Retry:"Voltar",clear_history:"Limpar histórico",New_message_from:"Nova mensagem de __name__",Should_we_notify_you_:"Devemos continuar notificando sobre novas mensagens no futuro?",Please_accept_:'Por favor clique no botão "Permitir" na parte superior.',Hide_offline:"Esconder contatos desconectados",Show_offline:"Mostrar contatos desconectados",About:"Sobre",dnd:"Não perturbe",Mute:"Mudo",Unmute:"Ligar",Subscription:"Inscrição",both:"ambos",Status:"Status",online:"online",chat:"conversa",away:"ausente",xa:"ausente por mais tempo",offline:"desativado",none:"nenhum",Unknown_instance_tag:"Marcação desconhecida da instância",Not_one_of_our_latest_keys:"Nenhuma de nossas ultimas chaves.",Received_an_unreadable_encrypted_message:"Mensagem encriptada ilegível foi recebida.",Online:"Online",Chatty:"Tagarela",Away:"Ausente",Extended_away:"Ausente por mais tempo",Offline:"Desativado",Friendship_request:"Pedido de amizade",Confirm:"Confirmar",Dismiss:"Ignorar",Remove:"Remover",Online_help:"Ajuda online",FN:"Nome completo",N:" ",FAMILY:"Sobrenome",GIVEN:"Nome",NICKNAME:"Apelido",URL:"URL",ADR:"Endereço",STREET:"Rua, Av, etc",EXTADD:"Complemento",LOCALITY:"Localidade",REGION:"Região",PCODE:"CEP",CTRY:"País",TEL:"Telefone",NUMBER:"Número",EMAIL:"Email",USERID:" ",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Rol",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:" ",send_message:"Enviar mensagem",get_info:"Exibir informações",Settings:"Configurações",Priority:"Prioridade",Save:"Salvar",User_settings:"Configurações do usuário",A_fingerprint_:"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.",is:"é",Login_options:"Opções de login",BOSH_url:"BOSH URL",Domain:"Domínio",Resource:"Recurso",On_login:"Ao autenticar",Received_an_unencrypted_message:"Mensagem não encriptada recebida",Sorry_your_buddy_doesnt_provide_any_information:"Desculpe, seu contato não forneceu nenhuma informação",Info_about:"Informações sobre",Authentication_aborted:"Autenticação encerrada.",Authentication_request_received:"Pedido de autenticação recebido",Log_in_without_chat:"Entrar sem conversar",has_come_online:"ficou online",Unknown_sender:"Emissor desconhecido",Please_allow_access_to_microphone_and_camera:'Por favor clique no botão "Permitir" no topo, para conceder acesso ao seu microfone e câmera.',Incoming_call:"Recebendo chamada",from:"de",Do_you_want_to_accept_the_call_from:"Você aceita a chamada de",Reject:"Negar",Accept:"Aceitar",hang_up:"desligar",snapshot:"registrar imagem",mute_my_audio:"mudo",pause_my_video:"pausar vídeo",fullscreen:"tela cheia",Info:"Informações",Local_IP:"IP local",Remote_IP:"IP remoto",Local_Fingerprint:"Fingerprint local",Remote_Fingerprint:"Fingerprint remoto",Video_call_not_possible:"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.",Start_video_call:"Iniciar chamada de vídeo",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"é __status__",You_received_a_message_from_an_unknown_sender_:"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?",Your_roster_is_empty_add_:"Sua lista está vazia, adicione um <a>novo contato</a>",onsmp_explanation_question:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.",onsmp_explanation_secret:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado Conversa privada iniciada.",Unverified_private_conversation_started:"Não verificado Conversa privada iniciada."}},ro:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null}},ru:{translation:{Logging_in:"Вход в систему...",your_connection_is_unencrypted:"Ваше соединение не зашифровано.",your_connection_is_encrypted:"Ваше соединение зашифровано.",your_buddy_closed_the_private_connection:"Ваш собеседник закончил зашифрованное соединение.",start_private:"Начать зашифрованный чат",close_private:"Закончить зашифрованный чат",your_buddy_is_verificated:"Собеседник подтвержден.",you_have_only_a_subscription_in_one_way:"У вас только односторонняя подписка.",authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.",unencrypted_message_received:"Получено незашифрованное сообщение",not_available:"Не доступен",no_connection:"Нет соединения!",relogin:"переподключиться",trying_to_start_private_conversation:"Попытка начать зашифрованный чат!",Verified:"Подтверждено",Unverified:"Не подтверждено",private_conversation_aborted:"Зашифрованный чат отклонен!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.",conversation_is_now_verified:"Чат теперь утвержден.",authentication_failed:"Ошибка авторизации.",Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:"Выберите метод...",Manual:"Вручную",Question:"Вопрос",Secret:"Пароль",To_verify_the_fingerprint_:null,Your_fingerprint:"Ваш отпечаток",Buddy_fingerprint:"Отпечаток собеседника",Close:"Закрыть",Compared:"Сравнение завершено",To_authenticate_using_a_question_:"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.",Ask:null,To_authenticate_pick_a_secret_:"Для авторизации выберите пароль, который знаете только Вы и собеседник.",Compare:"Сравнить",Fingerprints:"Отпечатки",Authentication:"Авторизация",Message:"Сообщение",Add_buddy:"Добавить контакт",rename_buddy:"переименовать контакт",delete_buddy:"удалить контакт",Login:"Вход",Username:"Логин",Password:"Пароль",Cancel:"Отмена",Connect:"Подключить",Type_in_the_full_username_:null,Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:null,Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:null,Retry:null,clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:null,Hide_offline:"Спрятать отключенных",Show_offline:"Показать отключенных",About:"О проекте",dnd:"Не беспокоить",Mute:"Выкл. уведомления",Unmute:"Вкл. уведомления",Subscription:"Подписка",both:"оба",Status:"Статус",online:"в сети",chat:"готов общаться",away:"отошел",xa:"отсутствую",offline:"не в сети",none:"нет",Unknown_instance_tag:"Неизвестный тег.",Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:null,Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:null,NICKNAME:"Ник",URL:null,ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:null,REGION:null,PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:null,send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:null,Login_options:"Параметры входа",BOSH_url:null,Domain:"Домен",Resource:"Ресурс",On_login:"Автоматически подключаться",Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:"Информация о",Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:"Вход без чата",has_come_online:"появился в сети",Unknown_sender:"Неизвестный отправитель",Please_allow_access_to_microphone_and_camera:null,Incoming_call:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:"Включить",jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:"Вы получили сообщение от неизвестного отправителя (__sender__)",Your_roster_is_empty_add_:"Ваш список контактов пуст, добавить <a>новый контакт</a>",onsmp_explanation_question:"Собеседник пытается определить, что общается действительно с Вами.",onsmp_explanation_secret:"Собеседник пытается определить, что общается действительно с Вами. введите пароль.",from_sender:"от __sender__",Verified_private_conversation_started:"Подтверждено Зашифрованный чат начат.",Unverified_private_conversation_started:"Не подтверждено Зашифрованный чат начат."}}};/*!
* Source: lib/favico.js/favico.js, license: MIT, url: https://github.com/ejci/favico.js
*/
/**
@@ -134,5 +135,5 @@ var I18next={de:{translation:{Logging_in:"Login läuft…",your_connection_is_un
* @author Miroslav Magda, http://blog.ejci.net
* @version 0.3.9
*/
-!function(){var Favico=function(opt){"use strict";function drawVideo(video){if(video.paused||video.ended||_stop)return!1;try{_context.clearRect(0,0,_w,_h),_context.drawImage(video,0,0,_w,_h)}catch(e){}_drawTimeout=setTimeout(drawVideo,animation.duration,video),link.setIcon(_canvas)}function hexToRgb(hex){var shorthandRegex=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:!1}function merge(def,opt){var attrname,mergedOpt={};for(attrname in def)mergedOpt[attrname]=def[attrname];for(attrname in opt)mergedOpt[attrname]=opt[attrname];return mergedOpt}function isPageHidden(){return _doc.hidden||_doc.msHidden||_doc.webkitHidden||_doc.mozHidden}opt=opt?opt:{};var _opt,_orig,_h,_w,_canvas,_context,_img,_ready,_lastBadge,_running,_readyCb,_stop,_browser,_animTimeout,_drawTimeout,_doc,_def={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};_browser={},_browser.ff="undefined"!=typeof InstallTrigger,_browser.chrome=!!window.chrome,_browser.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,_browser.ie=/*@cc_on!@*/!1,_browser.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,_browser.supported=_browser.chrome||_browser.ff||_browser.opera;var _queue=[];_readyCb=function(){},_ready=_stop=!1;var init=function(){_opt=merge(_def,opt),_opt.bgColor=hexToRgb(_opt.bgColor),_opt.textColor=hexToRgb(_opt.textColor),_opt.position=_opt.position.toLowerCase(),_opt.animation=animation.types[""+_opt.animation]?_opt.animation:_def.animation,_doc=_opt.win.document;var isUp=_opt.position.indexOf("up")>-1,isLeft=_opt.position.indexOf("left")>-1;if(isUp||isLeft)for(var i=0;i<animation.types[""+_opt.animation].length;i++){var step=animation.types[""+_opt.animation][i];isUp&&(step.y=step.y<.6?step.y-.4:step.y-2*step.y+(1-step.w)),isLeft&&(step.x=step.x<.6?step.x-.4:step.x-2*step.x+(1-step.h)),animation.types[""+_opt.animation][i]=step}_opt.type=type[""+_opt.type]?_opt.type:_def.type,_orig=link.getIcon(),_canvas=document.createElement("canvas"),_img=document.createElement("img"),_orig.hasAttribute("href")?(_img.setAttribute("crossOrigin","anonymous"),_img.setAttribute("src",_orig.getAttribute("href")),_img.onload=function(){_h=_img.height>0?_img.height:32,_w=_img.width>0?_img.width:32,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()}):(_img.setAttribute("src",""),_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready())},icon={};icon.ready=function(){_ready=!0,icon.reset(),_readyCb()},icon.reset=function(){_ready&&(_queue=[],_lastBadge=!1,_running=!1,_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),link.setIcon(_canvas),window.clearTimeout(_animTimeout),window.clearTimeout(_drawTimeout))},icon.start=function(){if(_ready&&!_running){var finished=function(){_lastBadge=_queue[0],_running=!1,_queue.length>0&&(_queue.shift(),icon.start())};if(_queue.length>0){_running=!0;var run=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(a){a in _queue[0].options&&(_opt[a]=_queue[0].options[a])}),animation.run(_queue[0].options,function(){finished()},!1)};_lastBadge?animation.run(_lastBadge.options,function(){run()},!0):run()}}};var type={},options=function(opt){return opt.n="number"==typeof opt.n?Math.abs(0|opt.n):opt.n,opt.x=_w*opt.x,opt.y=_h*opt.y,opt.w=_w*opt.w,opt.h=_h*opt.h,opt.len=(""+opt.n).length,opt};type.circle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.85:1))+"px "+_opt.fontFamily,_context.textAlign="center",more?(_context.moveTo(opt.x+opt.w/2,opt.y),_context.lineTo(opt.x+opt.w-opt.h/2,opt.y),_context.quadraticCurveTo(opt.x+opt.w,opt.y,opt.x+opt.w,opt.y+opt.h/2),_context.lineTo(opt.x+opt.w,opt.y+opt.h-opt.h/2),_context.quadraticCurveTo(opt.x+opt.w,opt.y+opt.h,opt.x+opt.w-opt.h/2,opt.y+opt.h),_context.lineTo(opt.x+opt.h/2,opt.y+opt.h),_context.quadraticCurveTo(opt.x,opt.y+opt.h,opt.x,opt.y+opt.h-opt.h/2),_context.lineTo(opt.x,opt.y+opt.h/2),_context.quadraticCurveTo(opt.x,opt.y,opt.x+opt.h/2,opt.y)):_context.arc(opt.x+opt.w/2,opt.y+opt.h/2,opt.h/2,0,2*Math.PI),_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fill(),_context.closePath(),_context.beginPath(),_context.stroke(),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()},type.rectangle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.9:1))+"px "+_opt.fontFamily,_context.textAlign="center",_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fillRect(opt.x,opt.y,opt.w,opt.h),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()};var badge=function(number,opts){opts=("string"==typeof opts?{animation:opts}:opts)||{},_readyCb=function(){try{if("number"==typeof number?number>0:""!==number){var q={type:"badge",options:{n:number}};if("animation"in opts&&animation.types[""+opts.animation]&&(q.options.animation=""+opts.animation),"type"in opts&&type[""+opts.type]&&(q.options.type=""+opts.type),["bgColor","textColor"].forEach(function(o){o in opts&&(q.options[o]=hexToRgb(opts[o]))}),["fontStyle","fontFamily"].forEach(function(o){o in opts&&(q.options[o]=opts[o])}),_queue.push(q),_queue.length>100)throw new Error("Too many badges requests in queue.");icon.start()}else icon.reset()}catch(e){throw new Error("Error setting badge. Message: "+e.message)}},_ready&&_readyCb()},image=function(imageElement){_readyCb=function(){try{var w=imageElement.width,h=imageElement.height,newImg=document.createElement("img"),ratio=h/_h>w/_w?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio,_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)}catch(e){throw new Error("Error setting image. Message: "+e.message)}},_ready&&_readyCb()},video=function(videoElement){_readyCb=function(){try{if("stop"===videoElement)return _stop=!0,icon.reset(),void(_stop=!1);videoElement.addEventListener("play",function(){drawVideo(this)},!1)}catch(e){throw new Error("Error setting video. Message: "+e.message)}},_ready&&_readyCb()},webcam=function(action){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(obj){return obj}),_browser.supported){var newVideo=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,_readyCb=function(){try{if("stop"===action)return _stop=!0,icon.reset(),void(_stop=!1);newVideo=document.createElement("video"),newVideo.width=_w,newVideo.height=_h,navigator.getUserMedia({video:!0,audio:!1},function(stream){newVideo.src=URL.createObjectURL(stream),newVideo.play(),drawVideo(newVideo)},function(){})}catch(e){throw new Error("Error setting webcam. Message: "+e.message)}},_ready&&_readyCb()}},link={};link.getIcon=function(){var elm=!1,getLink=function(){for(var link=_doc.getElementsByTagName("head")[0].getElementsByTagName("link"),l=link.length,i=l-1;i>=0;i--)if(/(^|\s)icon(\s|$)/i.test(link[i].getAttribute("rel")))return link[i];return!1};return _opt.element?elm=_opt.element:_opt.elementId?(elm=_doc.getElementById(_opt.elementId),elm.setAttribute("href",elm.getAttribute("src"))):(elm=getLink(),elm===!1&&(elm=_doc.createElement("link"),elm.setAttribute("rel","icon"),_doc.getElementsByTagName("head")[0].appendChild(elm))),elm.setAttribute("type","image/png"),elm},link.setIcon=function(canvas){var url=canvas.toDataURL("image/png");if(_opt.dataUrl&&_opt.dataUrl(url),_opt.element)_opt.element.setAttribute("href",url),_opt.element.setAttribute("src",url);else if(_opt.elementId){var elm=_doc.getElementById(_opt.elementId);elm.setAttribute("href",url),elm.setAttribute("src",url)}else if(_browser.ff||_browser.opera){var old=_orig;_orig=_doc.createElement("link"),_browser.opera&&_orig.setAttribute("rel","icon"),_orig.setAttribute("rel","icon"),_orig.setAttribute("type","image/png"),_doc.getElementsByTagName("head")[0].appendChild(_orig),_orig.setAttribute("href",url),old.parentNode&&old.parentNode.removeChild(old)}else _orig.setAttribute("href",url)};var animation={};return animation.duration=40,animation.types={},animation.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.run=function(opt,cb,revert,step){var animationType=animation.types[isPageHidden()?"none":_opt.animation];return step=revert===!0?"undefined"!=typeof step?step:animationType.length-1:"undefined"!=typeof step?step:0,cb=cb?cb:function(){},step<animationType.length&&step>=0?(type[_opt.type](merge(opt,animationType[step])),_animTimeout=setTimeout(function(){revert?step-=1:step+=1,animation.run(opt,cb,revert,step)},animation.duration),link.setIcon(_canvas),void 0):void cb()},init(),{badge:badge,video:video,image:image,webcam:webcam,reset:icon.reset,browser:{supported:_browser.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return Favico}):"undefined"!=typeof module&&module.exports?module.exports=Favico:this.Favico=Favico}();
+!function(){var Favico=function(opt){"use strict";function drawVideo(video){if(video.paused||video.ended||_stop)return!1;try{_context.clearRect(0,0,_w,_h),_context.drawImage(video,0,0,_w,_h)}catch(e){}_drawTimeout=setTimeout(drawVideo,animation.duration,video),link.setIcon(_canvas)}function hexToRgb(hex){var shorthandRegex=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result?{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}:!1}function merge(def,opt){var attrname,mergedOpt={};for(attrname in def)mergedOpt[attrname]=def[attrname];for(attrname in opt)mergedOpt[attrname]=opt[attrname];return mergedOpt}function isPageHidden(){return _doc.hidden||_doc.msHidden||_doc.webkitHidden||_doc.mozHidden}opt=opt?opt:{};var _opt,_orig,_h,_w,_canvas,_context,_img,_ready,_lastBadge,_running,_readyCb,_stop,_browser,_animTimeout,_drawTimeout,_doc,_def={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};_browser={},_browser.ff="undefined"!=typeof InstallTrigger,_browser.chrome=!!window.chrome,_browser.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,_browser.ie=/*@cc_on!@*/!1,_browser.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,_browser.supported=_browser.chrome||_browser.ff||_browser.opera;var _queue=[];_readyCb=function(){},_ready=_stop=!1;var init=function(){_opt=merge(_def,opt),_opt.bgColor=hexToRgb(_opt.bgColor),_opt.textColor=hexToRgb(_opt.textColor),_opt.position=_opt.position.toLowerCase(),_opt.animation=animation.types[""+_opt.animation]?_opt.animation:_def.animation,_doc=_opt.win.document;var isUp=_opt.position.indexOf("up")>-1,isLeft=_opt.position.indexOf("left")>-1;if(isUp||isLeft)for(var i=0;i<animation.types[""+_opt.animation].length;i++){var step=animation.types[""+_opt.animation][i];isUp&&(step.y<.6?step.y=step.y-.4:step.y=step.y-2*step.y+(1-step.w)),isLeft&&(step.x<.6?step.x=step.x-.4:step.x=step.x-2*step.x+(1-step.h)),animation.types[""+_opt.animation][i]=step}_opt.type=type[""+_opt.type]?_opt.type:_def.type,_orig=link.getIcon(),_canvas=document.createElement("canvas"),_img=document.createElement("img"),_orig.hasAttribute("href")?(_img.setAttribute("crossOrigin","anonymous"),_img.setAttribute("src",_orig.getAttribute("href")),_img.onload=function(){_h=_img.height>0?_img.height:32,_w=_img.width>0?_img.width:32,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()}):(_img.setAttribute("src",""),_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready())},icon={};icon.ready=function(){_ready=!0,icon.reset(),_readyCb()},icon.reset=function(){_ready&&(_queue=[],_lastBadge=!1,_running=!1,_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),link.setIcon(_canvas),window.clearTimeout(_animTimeout),window.clearTimeout(_drawTimeout))},icon.start=function(){if(_ready&&!_running){var finished=function(){_lastBadge=_queue[0],_running=!1,_queue.length>0&&(_queue.shift(),icon.start())};if(_queue.length>0){_running=!0;var run=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(a){a in _queue[0].options&&(_opt[a]=_queue[0].options[a])}),animation.run(_queue[0].options,function(){finished()},!1)};_lastBadge?animation.run(_lastBadge.options,function(){run()},!0):run()}}};var type={},options=function(opt){return opt.n="number"==typeof opt.n?Math.abs(0|opt.n):opt.n,opt.x=_w*opt.x,opt.y=_h*opt.y,opt.w=_w*opt.w,opt.h=_h*opt.h,opt.len=(""+opt.n).length,opt};type.circle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.85:1))+"px "+_opt.fontFamily,_context.textAlign="center",more?(_context.moveTo(opt.x+opt.w/2,opt.y),_context.lineTo(opt.x+opt.w-opt.h/2,opt.y),_context.quadraticCurveTo(opt.x+opt.w,opt.y,opt.x+opt.w,opt.y+opt.h/2),_context.lineTo(opt.x+opt.w,opt.y+opt.h-opt.h/2),_context.quadraticCurveTo(opt.x+opt.w,opt.y+opt.h,opt.x+opt.w-opt.h/2,opt.y+opt.h),_context.lineTo(opt.x+opt.h/2,opt.y+opt.h),_context.quadraticCurveTo(opt.x,opt.y+opt.h,opt.x,opt.y+opt.h-opt.h/2),_context.lineTo(opt.x,opt.y+opt.h/2),_context.quadraticCurveTo(opt.x,opt.y,opt.x+opt.h/2,opt.y)):_context.arc(opt.x+opt.w/2,opt.y+opt.h/2,opt.h/2,0,2*Math.PI),_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fill(),_context.closePath(),_context.beginPath(),_context.stroke(),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()},type.rectangle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.9:1))+"px "+_opt.fontFamily,_context.textAlign="center",_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fillRect(opt.x,opt.y,opt.w,opt.h),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()};var badge=function(number,opts){opts=("string"==typeof opts?{animation:opts}:opts)||{},_readyCb=function(){try{if("number"==typeof number?number>0:""!==number){var q={type:"badge",options:{n:number}};if("animation"in opts&&animation.types[""+opts.animation]&&(q.options.animation=""+opts.animation),"type"in opts&&type[""+opts.type]&&(q.options.type=""+opts.type),["bgColor","textColor"].forEach(function(o){o in opts&&(q.options[o]=hexToRgb(opts[o]))}),["fontStyle","fontFamily"].forEach(function(o){o in opts&&(q.options[o]=opts[o])}),_queue.push(q),_queue.length>100)throw new Error("Too many badges requests in queue.");icon.start()}else icon.reset()}catch(e){throw new Error("Error setting badge. Message: "+e.message)}},_ready&&_readyCb()},image=function(imageElement){_readyCb=function(){try{var w=imageElement.width,h=imageElement.height,newImg=document.createElement("img"),ratio=h/_h>w/_w?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio,_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)}catch(e){throw new Error("Error setting image. Message: "+e.message)}},_ready&&_readyCb()},video=function(videoElement){_readyCb=function(){try{if("stop"===videoElement)return _stop=!0,icon.reset(),void(_stop=!1);videoElement.addEventListener("play",function(){drawVideo(this)},!1)}catch(e){throw new Error("Error setting video. Message: "+e.message)}},_ready&&_readyCb()},webcam=function(action){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(obj){return obj}),_browser.supported){var newVideo=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,_readyCb=function(){try{if("stop"===action)return _stop=!0,icon.reset(),void(_stop=!1);newVideo=document.createElement("video"),newVideo.width=_w,newVideo.height=_h,navigator.getUserMedia({video:!0,audio:!1},function(stream){newVideo.src=URL.createObjectURL(stream),newVideo.play(),drawVideo(newVideo)},function(){})}catch(e){throw new Error("Error setting webcam. Message: "+e.message)}},_ready&&_readyCb()}},link={};link.getIcon=function(){var elm=!1,getLink=function(){for(var link=_doc.getElementsByTagName("head")[0].getElementsByTagName("link"),l=link.length,i=l-1;i>=0;i--)if(/(^|\s)icon(\s|$)/i.test(link[i].getAttribute("rel")))return link[i];return!1};return _opt.element?elm=_opt.element:_opt.elementId?(elm=_doc.getElementById(_opt.elementId),elm.setAttribute("href",elm.getAttribute("src"))):(elm=getLink(),elm===!1&&(elm=_doc.createElement("link"),elm.setAttribute("rel","icon"),_doc.getElementsByTagName("head")[0].appendChild(elm))),elm.setAttribute("type","image/png"),elm},link.setIcon=function(canvas){var url=canvas.toDataURL("image/png");if(_opt.dataUrl&&_opt.dataUrl(url),_opt.element)_opt.element.setAttribute("href",url),_opt.element.setAttribute("src",url);else if(_opt.elementId){var elm=_doc.getElementById(_opt.elementId);elm.setAttribute("href",url),elm.setAttribute("src",url)}else if(_browser.ff||_browser.opera){var old=_orig;_orig=_doc.createElement("link"),_browser.opera&&_orig.setAttribute("rel","icon"),_orig.setAttribute("rel","icon"),_orig.setAttribute("type","image/png"),_doc.getElementsByTagName("head")[0].appendChild(_orig),_orig.setAttribute("href",url),old.parentNode&&old.parentNode.removeChild(old)}else _orig.setAttribute("href",url)};var animation={};return animation.duration=40,animation.types={},animation.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.run=function(opt,cb,revert,step){var animationType=animation.types[isPageHidden()?"none":_opt.animation];return step=revert===!0?"undefined"!=typeof step?step:animationType.length-1:"undefined"!=typeof step?step:0,cb=cb?cb:function(){},step<animationType.length&&step>=0?(type[_opt.type](merge(opt,animationType[step])),_animTimeout=setTimeout(function(){revert?step-=1:step+=1,animation.run(opt,cb,revert,step)},animation.duration),link.setIcon(_canvas),void 0):void cb()},init(),{badge:badge,video:video,image:image,webcam:webcam,reset:icon.reset,browser:{supported:_browser.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return Favico}):"undefined"!=typeof module&&module.exports?module.exports=Favico:this.Favico=Favico}();
//# sourceMappingURL=jsxc.dep.min.js.map \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.min.js.map b/build/js/jsxc/lib/jsxc.dep.min.js.map
index b7f6b39..207cf39 100644
--- a/build/js/jsxc/lib/jsxc.dep.min.js.map
+++ b/build/js/jsxc/lib/jsxc.dep.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"jsxc.dep.min.js","sources":["jsxc.dep.js"],"names":["b64_sha1","s","binb2b64","core_sha1","str2binb","length","str_sha1","binb2str","b64_hmac_sha1","key","data","core_hmac_sha1","str_hmac_sha1","x","len","i","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","bkey","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","charCodeAt","String","fromCharCode","binarray","triplet","tab","charAt","Base64","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","isNaN","decode","replace","indexOf","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","Function","prototype","bind","func","this","_slice","slice","_concat","_args","call","arguments","apply","elt","from","Number","Math","ceil","floor","callback","$build","name","attrs","Strophe","Builder","$msg","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","value","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","toLowerCase","_xmlGenerator","_makeGenerator","doc","undefined","document","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","k","node","xmlTextNode","setAttribute","hasOwnProperty","xmlescape","text","createTextNode","xmlHtmlNode","html","window","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","attr","cssName","cssValue","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","log","debug","msg","info","warn","error","fatal","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","toString","up","parentNode","moreattrs","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","handler","ns","type","id","options","matchBare","user","isMatch","nsMatch","that","run","sourceURL","line","message","fileName","console","trace","lineNumber","stack","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","domain","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","_authentication","_idleTimeout","_disconnectTimeout","do_authentication","authenticated","disconnecting","connected","errors","paused","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","connect","pass","wait","hold","route","authzid","authcid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","xmlInput","xmlOutput","rawInput","rawOutput","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","typ","getElementsByTagName","newList","mechanisms","_connect_cb","_callback","bodyWrap","conncheck","sasl_scram_sha1","sasl_plain","sasl_digest_md5","sasl_anonymous","legacy_auth","hasFeatures","mech","matched","found_authentication","_no_auth_received","authenticate","higher","priority","swap","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","mechanism","isClientFirst","response","onChallenge","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","SASLAnonymous","SASLPlain","auth_str","SASLSHA1","test_cnonce","cnonce","random","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","SASLMD5","_quote","realm","host","qop","digest_uri","A1","A2","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","_buildBody","jQuery","trigger","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","parseInt","_sendTerminate","_hitError","reqStatus","xmpp:restart","_processRequest","time_elapsed","readyState","reqIs0","reqIs1","_removeRequest","_restartRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","open","sync","e2","sendFunc","customHeaders","headers","header","setRequestHeader","backoff","min","pow","abs","new_service","location","pathname","_buildStream","xmlns:stream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","ns_stream","namespaceURI","streamStart","string","_streamWrap","_onMessage","CLOSED","close","rawStanza","_removeClosingTag","search","firstChild","start","startString","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","parse","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","JSON","localStorage","getItem","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","isArray","makeArray","knownCapabilities","querySelector","setItem","stringify","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","buildIq","vCardEl","VCARD","get","set","error_rb","createBookmarksNode","PUBSUB","add","roomJid","alias","autojoin","conferenceAttr","BOOKMARKS","delete","notify","$field","$form","$item","$opt","Field","Item","Option","helper","__slice","__indexOf","l","fill","src","target","klass","f","_results","createHtmlFieldCouple","div","append","toHTML","children","getHtmlFields","find","opt","toJSON","fields","reported","_types","title","instructions","r","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","v","opts","o","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","n","u","require","exports",1,2,"module","Buffer","arg","fromNumber","fromString","fromObject","allocate","checked","TYPED_ARRAY_SUPPORT","encoding","byteLength","write","object","isBuffer","fromBuffer","fromArray","TypeError","ArrayBuffer","buffer","fromTypedArray","fromArrayLike","fromJsonObject","copy","array","_augment","Uint8Array","_isBuffer","fromPool","poolSize","rootParent","kMaxLength","RangeError","SlowBuffer","subject","buf","utf8ToBytes","base64ToBytes","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","binaryWrite","base64Write","ucs2Write","utf16leToBytes","base64Slice","end","base64","fromByteArray","utf8Slice","res","tmp","decodeUtf8Char","asciiSlice","ret","binarySlice","hexSlice","out","toHex","utf16leSlice","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","codePoint","leadSurrogate","byteArray","hi","lo","toByteArray","dst","decodeURIComponent","INSPECT_MAX_BYTES","arr","foo","subarray","compare","isEncoding","list","pos","loweredCase","equals","inspect","byteOffset","arrayIndexOf","foundIndex","readUInt8","writeUInt8","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","_set","toArrayBuffer","BP","constructor","toLocaleString","base64-js","is-array",3,"lookup","PLUS","PLUS_URL_SAFE","SLASH","SLASH_URL_SAFE","NUMBER","UPPER","LOWER","b64ToByteArray","b64","L","placeHolders","Arr","uint8ToBase64","uint8","tripletToBase64","temp","extraBytes","base64js",4,"isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","rt","LN2",5,"Object",6,"EventEmitter","_events","_maxListeners","isFunction","isNumber","isObject","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","addListener","listener","newListener","warned","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","emitter",7,"create","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor",8,9,"cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","fun","noop","process","nextTick","browser","env","argv","versions","off","binding","cwd","chdir","umask",10,"./lib/_stream_duplex.js",11,"Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","forEach","xs","objectKeys","keys","util","inherits","method","./_stream_readable","./_stream_writable","_process","core-util-is",12,"PassThrough","Transform","_transform","chunk","cb","./_stream_transform",13,"ReadableState","stream","hwm","highWaterMark","defaultHwm","objectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","readableObjectMode","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","StringDecoder","_readableState","Stream","readableAddChunk","state","addToFront","chunkInvalid","isNullOrUndefined","onEofChunk","unshift","emitReadable","maybeReadMore","needMoreData","roundUpToNextPowerOf2","MAX_HWM","howMuchToRead","isNull","isString","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EE","resumeScheduled","resume_","fromList","stringMode","shift","cpy","endReadable","debuglog","setEncoding","enc","nOrig","doRead","_read","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","needDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","events","_fromList","./_stream_duplex","isarray","string_decoder/",14,"TransformState","afterTransform","needTransform","transforming","writecb","writechunk","ts","_transformState","rs","_flush","done","ws","_write","writeencoding",15,"WriteReq","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","pendingcb","prefinished","errorEmitted","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","doWrite","writev","_writev","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","finishMaybe","cbs","entry","prefinish","need","endWritable","cork","uncork",16,"ar","isBoolean","isSymbol","isRegExp","re","objectToString","isDate","isError","isPrimitive",17,"./lib/_stream_passthrough.js",18,"./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js",19,20,21,"source","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js",22,"assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","available","charCode","size","substring","cr",23,24,"global","ctx","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","RegExp","base","braces","toUTCString","formatArray","map","formatProperty","reduceToSingleString","simple","getOwnPropertyDescriptor","numLinesEst","reduce","prev","cur","pad","timestamp","time","getHours","getMinutes","getSeconds","getDate","months","getMonth","prop","formatRegExp","format","objects","_","deprecate","deprecated","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","toUpperCase","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","regexp","origin","./support/isBuffer",25,"SessionManager","WildEmitter","selfID","full","sessions","peers","prepareSession","descriptionTypes","MediaSession","FileSession","performTieBreak","sess","jingle","contents","description","descType","matching","intersect","pendingDescriptionTypes","screenSharingSupport","webrtc","screenSharing","capabilities","support","peerConnectionConfig","iceServers","url","peerConnectionConstraints","optional","DtlsSrtpKeyAgreement","RtpDataChannels","media","audio","video","BaseSession","addICEServer","addSession","session","peer","peerID","extraData","extraData2","action","isInitiator","createMediaSession","initiator","constraints","createFileTransferSession","endPeerSessions","silent","endAllSessions","_createIncomingSession","meta","_sendError","_log","level","sender","isTieBreak","jingleCondition","pending","pendingAction","transportTypes","transport","transType","jingle-filetransfer-session","jingle-media-session","jingle-session","webrtcsupport","wildemitter",26,"each",27,"big",28,"FileTransferSession","pc","RTCPeerConnection","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","extend","FileTransfer","file","Sender","sent","localDescription","offer","algo","sendChannel","createDataChannel","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","lastModifiedDate","accept","answer","maybeReceivedFile","metadata","actualhash","receivedFile","candidate","iceConnectionState","connectionState","signalingState","channel","receive","onSessionInitiate","changes","Receiver","received","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","rtcpeerconnection",29,"chunksize","pacing","receiveBuffer","sliceFile","reader","FileReader","onload","readAsArrayBuffer","binaryType","event","Blob","File",30,"hashes","createHash","digest","defineProperty","./filetransfer","iana-hashes",31,"createHmac","getHashes","mapping","md2","md5","sha-1","sha-224","sha-256","sha-384","sha-512","names","algorithm","./lib/get-hashes","create-hash","create-hmac",32,33,"HashNoConstructor","_hash","buffers","Hash","rmd160","sha","next","outData","alg","./md5","ripemd160","sha.js",34,"toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz",35,"helpers","./helpers",36,"dup",37,"bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes",38,"blockSize","finalSize","_block","_finalSize","_blockSize","_s","ch","_update",39,"Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512",40,"Sha","_w","W","_a","_b","_c","_d","_e","calcW","loop","./hash",41,"Sha1",42,"Sha224","Sha256","_f","_g","_h",43,"S","X","R","Ch","Maj","Sigma0256","Sigma1256","Gamma0256","Gamma1256","K","T1","T2",44,"Sha384","SHA512","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE",45,"Sha512","Xl","xl","gamma0","gamma0l","gamma1","gamma1l","Wi7","Wi7l","Wi16","Wi16l","Wil","Wi","maj","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kil","chl","fl","gl","t1l","t1","t2l","t2",46,"Hmac","blocksize","_alg","_key","ZEROS","_ipad","_opad","create-hash/browser",47,48,"createForEach","arrayFunc","eachFunc","collection","iteratee","thisArg","bindCallback","arrayEach","baseEach","lodash._arrayeach","lodash._baseeach","lodash._bindcallback","lodash.isarray",49,"index",50,"baseForOwn","baseFor","baseProperty","createBaseEach","fromRight","getLength","isLength","iterable","toObject","createBaseFor","keysFunc","props","MAX_SAFE_INTEGER","lodash.keys",51,"isArrayLike","isIndex","reIsUint","shimKeys","keysIn","propsLength","allowIndexes","isArguments","Ctor","isProto","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments",52,"isObjectLike","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor",53,"propertyIsEnumerable",54,"argCount","accumulator","other",55,"arrayTag","nativeIsArray",56,"basePropertyDeep","path","pathKey","toPath","baseGet","isKey","reIsPlainProp","reIsDeepProp","pluck","property","lodash._baseget","lodash._topath","lodash.map",57,58,"baseToString","rePropName","quote","reEscapeChar",59,60,"baseMap","arrayMap","baseCallback","lodash._arraymap","lodash._basecallback",61,62,"baseMatches","baseMatchesProperty","baseIsMatch","matchData","customizer","noCustomizer","objValue","srcValue","baseIsEqual","getMatchData","isArr","isCommon","isStrictComparable","baseSlice","last","pairs","lodash._baseisequal","lodash.pairs",63,"arraySome","predicate","isLoose","stackA","stackB","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","equalArrays","equalObjects","arrLength","othLength","arrValue","othValue","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","objProps","objLength","othProps","skipCtor","objCtor","othCtor","lodash.istypedarray",64,"typedArrayTags","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",65,66,67,68,69,70,71,"toSDP","toIncomingSDPOffer","toSessionSDP","direction","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toCandidateSDP","toIncomingJSONOffer","sdp","creators","toSessionJSON","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","creator","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","toCandidateJSON","./lib/tojson","./lib/tosdp",72,"lines","filter","findLine","prefix","mediaLines","sessionLines","prefixLength","findLines","results","mline","port","formats","rtpmap","clockrate","channels","sctpmap","streams","fmtp","kv","crypto","cipherSuite","keyParams","sessionParams","fingerprint","extmap","idpart","sp","senders","uri","rtcpfb","subtype","parameters","foundation","component","ip","generation","relAddr","relPort","tcpType","network","sourceGroups","semantics","sources","ssrc","groups","bandwidth","msid","mslabel",73,"incoming","responder","both","none","recvonly","sendonly","sendrecv","inactive","outgoing",74,"SENDERS","parsers","idCounter","_setIdCounter","counter","groupLines","payloads","encryption","feedback","headerExtensions","candidates","fingerprints","sctp","trans","mid","rtpmapLines","payload","fmtpLines","fbLines","cryptoLines","mux","extLines","ssrcGroupLines","ssrcLines","msidLine","found","googConferenceFlag","fingerprintLines","setup","fp","ufragLine","pwdLine","ufrag","pwd","candidateLines","sctpmapLines","./parsers","./senders",75,"group","pushedSetup","param","fb","hdrExts","hdr","ssrcGroups","ssrcGroup","ssrcs",76,"dumpSDP","dumpStream","getAudioTracks","track","getVideoTracks","TraceablePeerConnection","peerconnection","what","onicecandidate","onaddstream","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","getLocalStreams","getRemoteStreams","addStream","removeStream","setLocalDescription","successCallback","failureCallback","setRemoteDescription","createOffer","createAnswer","addIceCandidate","getStats","webrtc-adapter-test",77,"requestUserMedia","Promise","resolve","reject","getUserMedia","attachMediaStream","reattachMediaStream","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","define","navigator","mozGetUserMedia","userAgent","pcConfig","pcConstraints","newIceServers","urls","newServer","username","credential","mozRTCPeerConnection","RTCSessionDescription","mozRTCSessionDescription","RTCIceCandidate","mozRTCIceCandidate","onError","constraintsToFF37","ideal","exact","advanced","oc","mediaDevices","addEventListener","removeEventListener","enumerateDevices","infos","kind","deviceId","groupId","orgEnumerateDevices","mozSrcObject","webkitGetUserMedia","iceTransportPolicy","iceTransports","webkitRTCPeerConnection","origGetStats","selector","fixChromeStats","standardReport","reports","report","standardStats","stat","successCallbackWrapper","nativeMethod","constraintsToChrome","cc","oldname","mix","kinds","MediaStreamTrack","getSources","devices","device","origGetUserMedia","srcObject","URL","createObjectURL","webrtcTesting",78,"PeerConnection","enableChromeNativeSimulcast","adapter","appVersion","constraint","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","peerconn","_onIce","_onDataChannel","remoteDescription","ice","sdpSessionID","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","cand","_checkRemoteCandidate","contentNames","iceCandidate","sdpMLineIndex","sdpMid","hasConstraints","mediaConstraints","expandedOffer","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","idx","parameter","expandedCandidate","already","bundlePolicy","address","rtcpMuxPolicy","newCand","lodash.foreach","lodash.pluck","sdp-jingle-json","traceablepeerconnection",79,"filterContentSources","filterUnusedLabels","onAddStream","onRemoveStream","_ringing","defineProperties","ringing","mediaType","ring","unmute","active","renegotiate","addStream2","removeStream2","switchStream","oldStream","newStream","audioTracks","addTrack","onSessionInfo","onSourceAdd","newDesc","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","same",80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,"IceCandidate","SessionDescription",111,"JingleSession","uuid","v4","processingQueue","task","ACTIONS","content-accept","content-add","content-modify","content-reject","content-remove","description-info","security-info","session-accept","session-info","session-initiate","session-terminate","transport-accept","transport-info","transport-reject","transport-replace","source-add","source-remove","_sessionState","_connectionState","starting","connecting","disconnected","interrupted","requirePending","session-inititate","cancel","decline","kill","okKeys","unknownPayload","onContentAdd","onTransportReplace",112,"only_once","called","root","previous_async","noConflict","_toString","_isArray","_each","iterator","_map","_reduce","memo","_keys","setImmediate","completed","eachSeries","iterate","forEachSeries","eachLimit","_eachLimit","forEachLimit","started","running","replenish","doParallel","doParallelLimit","doSeries","_asyncMap","eachfn","mapSeries","mapLimit","_mapLimit","inject","foldl","reduceRight","reversed","reverse","foldr","_filter","filterSeries","select","selectSeries","_reject","rejectSeries","_detect","main_callback","detect","detectSeries","some","any","every","all","sortBy","criteria","left","right","auto","tasks","remainingTasks","taskComplete","theCallback","taskCallback","safeResults","rkey","requires","ready","retry","times","DEFAULT_TIMES","attempts","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","series","waterfall","wrapIterator","_parallel","parallel","parallelLimit","makeCallback","concatSeries","whilst","doWhilst","until","doUntil","worker","concurrency","_insert","drain","saturated","workers","empty","idle","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","working","drained","ds","_console_fn","dir","memoize","hasher","queues","memoized","unmemoized","unmemoize","count","timesSeries","seq","fns","newargs","nextargs","compose","_applyEach","go","applyEach","applyEachSeries","forever","amd",113,"rng","getRandomValues","_rnds8","_rnds",114,"ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng",115,"PC","MediaStream","webkitMediaStream","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream",116,"isWildEmitter","callbacks","hasGroup","_groupName","releaseGroup","groupName","specialCallbacks","getWildcardCallbacks","eventName",117,"JXT","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","utils","types","ltx","stanzaConstructor","use","getDefinition","JXTClass","getExtensions","withDefinition","withTag","tagged","build","localName","ParentJXT","ChildJXT","multiName","hideSingle","parentName","_NS","_EL","_name","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign",118,"XML_NS","parentNS","Element","findOrCreate","existing","created","defaultVal","getAttributeNS","force","removeAttribute","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","getSubAttribute","subs","setSubAttribute","getBoolSubAttribute","setBoolSubAttribute","setText","getSubText","getTextSub","setSubText","setTextSub","getMultiSubText","extractor","setMultiSubText","builder","getMultiSubAttribute","setMultiSubAttribute","getSubLangText","defaultLang","langs","setSubLangText","getBoolSub","setBoolSub",119,"EXCLUDE","_PREFIXES","namespace","_extensions","_eventname","prefixes","allowedName","isExtensionName","nval",120,"getter","setter","boolAttribute","subAttribute","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","textSub","subText","multiTextSub","multiSubText","multiSubAttribute","langTextSub","subLangText","boolSub","langAttribute","b64Text","dateAttribute","toISOString","dateSub","dateSubAttribute","numberAttribute","isFloat","parseFloat","numberSub","attributeNS","enumSub","enumValues","enumVal","exists","alreadyExists","elements","subExtension","wrapper","subMultiExtension",121,"assignWith","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner",122,"baseCopy","lodash._basecopy",123,124,"assigner","restParam","guard","isIterateeCall","lodash._isiterateecall","lodash.restparam",125,126,127,"FUNC_ERROR_TEXT","nativeMax","rest","otherArgs",128,129,130,131,132,"DOMElement","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","remove","./element",133,"setAttrs","escapeXml","escapeXmlText","is","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","clone","_addChildren","writer",134,"availableSaxParsers","bestSaxParser","./index","./parse","./sax/sax_ltx",135,"Parser","./dom-element",136,"saxParsers","modName","mod","saxParser","ParserMod",137,"unescapeXml","STATE_TEXT","STATE_IGNORE_TAG","STATE_TAG_NAME","STATE_TAG","STATE_ATTR_NAME","STATE_ATTR_EQ","STATE_ATTR_QUOT","STATE_ATTR_VALUE","SaxLtx","remainder","endTag","selfClosing","attrQuote","attrName","recordStart","_handleTagOpening","endRecording","recorded",138,139,140,"HTMLVideoElement","_srcObject",141,"ICE","RemoteCandidate","Candidate","Fingerprint","SctpMap","Content",142,"Iq","topLevel","resultReply","errorReply",143,"REASONS","Jingle","disposition","Description","Transport","Reason","alternativeSession",144,"FBNS","HDRNS","INFONS","SSMANS","GROUPNS","Feedback","Bandwidth","RTP","Crypto","PayloadType","maxptime","ptime","params","ContentGroup","SourceGroup","Source","Mute","Unmute",145,"JSM","RTC","jxt","IqStanza","JingleStanza","peer_constraints","AUTOACCEPT","manager","MozDontOfferDataChannel","offerToReceiveAudio","offerToReceiveVideo","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","./stanza/iceUdp.js","./stanza/iq.js","./stanza/jingle.js","./stanza/rtp.js","factory","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","_generateBlock","_incrementCounter","getHexString","hex","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","msCrypto","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod_","mult","mult_","powMod","sub_","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C","C_lib","lib","Base","overrides","mixIn","$super","instance","properties","propertyName","WordArray","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","escape","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","doFlush","dataWords","dataSigBytes","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s1","s2","round","t0","t3","SHA1","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","sigma0","sigma1","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","G","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","__super__","str1","str2","randomExponent","smpHash","fmpi","smpi","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","h2","nex","packINT","packCtr","padCtr","ctr","unpackCtr","unpack","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","prv","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","frag","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","B","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","lastIndexOf","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","sign","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","postMessage","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","dh","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates","question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","_smInit","prepareMsg","first","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","aes","handleDataMsg","vt","ign","handleTLVs","tlvs","smpSecret","vs","receiveMsg","doAKE","it","severity","sendFile","filename","l1name","endOtr","cache","jsonp","content-type","T","authBasic","Authorization","del","head","isAllowed","patch","post","put","P","fixLng","functions","defaultNs","fallbackNS","fallbackLng","interpolationPrefixEscaped","regexEscape","interpolationPrefix","interpolationSuffixEscaped","interpolationSuffix","lng","detectLanguage","toLanguages","useCookie","cookie","cookieName","cookieExpirationTime","cookieDomain","detectLngFromLocalStorage","setCurrentLng","setJqueryExt","Deferred","resStore","preload","I","load","J","promise","deepExtend","keyseparator","dynamicLoad","resGetPath","getAsync","customLoad","_fetch","useLocalStorage","_storeLocal","defaultValueFromContent","defaultValue","prepend","selectorAttr","useDataAttrOptions","i18n","escapeInterpolation","regexReplacementEscape","postProcess","reusePrefix","maxRecursion","reuseSuffix","context","indefinite_article","A","D","sprintf","shortcutFunction","defaultVariables","nsseparator","sendMissing","missingKeyHandler","parseMissingKey","lngs","contextNotFound","pluralNotFound","needsPlural","pluralSuffix","indefiniteNotFound","indefiniteSuffix","E","returnObjectTrees","fallbackOnNull","objectTreeKeyHandler","fallbackOnEmpty","isFallbackLookup","fallbackToDefaultNS","lngWhitelist","detectLngQS","languages","userLanguage","language","lowerCaseLng","Zepto","O","_loadLocal","i18nStamp","localStorageExpirationTime","ajax","dataType","_fetchOne","postMissing","sendMissingTo","resPostPath","sendType","postAsync","reload","&","<",">","\"","'","/","setTime","toGMTString","getCountyIndexOfLng","applyReplacement","V","rules","numbers","plurals","addRule","currentRule","rule","noAbs","Y","Z","toExponential","toFixed","exec","setLng","addResourceBundle","hasResourceBundle","addResource","addResources","removeResourceBundle","loadNamespace","loadNamespaces","setDefaultNamespace","translate","pluralExtensions","addPostProcessor","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isIE7","isIE8","isLowIE","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isObj","isOpen","updateItemHTML","mainEl","eq","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","container","contentContainer","preloader","tLoading","modules","closeBtnInside","close_replaceWith","alignTop","overflow","overflowY","overflowX","top","scrollTop","fixedBgPos","height","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","_close","detach","_removeClassFromMFP","removeAttr","currItem","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","disableOn","width","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","after","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","settings","cursor","tError","initAjax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","setInterval","naturalWidth","getImage","complete","loaded","alt","img_replaceWith","loading","MozTransform","enabled","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","transform","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","Boolean","mfpFastClick","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","destroyMfpFastClick","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","originalEvent","touches","clientX","clientY","I18next","de","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Message","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","Subscription","online","chat","away","xa","offline","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Log_in_without_chat","has_come_online","Unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Info","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Destroy","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Alert","Call_started","Call_terminated","Carbon_copy","Enable","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","PermissionDeniedError","Use_local_audio_device","Use_local_video_device","is_","You_received_a_message_from_an_unknown_sender_","Your_roster_is_empty_add_","onsmp_explanation_question","onsmp_explanation_secret","from_sender","Verified_private_conversation_started","Unverified_private_conversation_started","en","Bookmark","Auto-join","Edit_bookmark","Room_logging_is_disabled","Room_is_now_non-anoymous","Room_is_now_semi-anonymous","Do_you_want_to_change_the_default_room_configuration","Default","Change","fr","nds","pl","pt-BR","ro","ru","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","def","attrname","mergedOpt","isPageHidden","_doc","hidden","msHidden","webkitHidden","mozHidden","_opt","_orig","_img","_ready","_lastBadge","_running","_readyCb","_browser","_animTimeout","_def","bgColor","textColor","fontFamily","fontStyle","elementId","dataUrl","win","ff","InstallTrigger","chrome","opera","ie","safari","HTMLElement","supported","_queue","isUp","isLeft","step","getIcon","hasAttribute","getContext","icon","circle","more","beginPath","font","textAlign","moveTo","lineTo","quadraticCurveTo","arc","PI","fillStyle","closePath","stroke","fillText","rectangle","fillRect","badge","imageElement","newImg","videoElement","webcam","newVideo","oGetUserMedia","play","elm","getLink","getElementById","canvas","toDataURL","old","fade","popFade","slide","revert","animationType"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"jsxc.dep.min.js","sources":["jsxc.dep.js"],"names":["b64_sha1","s","binb2b64","core_sha1","str2binb","length","str_sha1","binb2str","b64_hmac_sha1","key","data","core_hmac_sha1","str_hmac_sha1","x","len","i","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","bkey","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","charCodeAt","String","fromCharCode","binarray","triplet","tab","charAt","Base64","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","isNaN","decode","replace","indexOf","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","Function","prototype","bind","func","this","_slice","slice","_concat","_args","call","arguments","apply","elt","from","Number","Math","ceil","floor","callback","$build","name","attrs","Strophe","Builder","$msg","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","value","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","toLowerCase","_xmlGenerator","_makeGenerator","doc","undefined","document","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","k","node","xmlTextNode","setAttribute","hasOwnProperty","xmlescape","text","createTextNode","xmlHtmlNode","html","window","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","attr","cssName","cssValue","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","log","level","msg","debug","info","warn","error","fatal","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","toString","up","parentNode","moreattrs","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","handler","ns","type","id","options","matchBare","user","isMatch","nsMatch","that","run","sourceURL","line","message","fileName","console","trace","lineNumber","stack","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","domain","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","_authentication","_idleTimeout","_disconnectTimeout","do_authentication","authenticated","disconnecting","connected","errors","paused","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","connect","pass","wait","hold","route","authzid","authcid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","xmlInput","xmlOutput","rawInput","rawOutput","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","typ","getElementsByTagName","newList","mechanisms","_connect_cb","_callback","bodyWrap","conncheck","sasl_scram_sha1","sasl_plain","sasl_digest_md5","sasl_anonymous","legacy_auth","hasFeatures","mech","matched","found_authentication","_no_auth_received","authenticate","higher","priority","swap","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","mechanism","isClientFirst","response","onChallenge","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","SASLAnonymous","SASLPlain","auth_str","SASLSHA1","test_cnonce","cnonce","random","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","SASLMD5","_quote","realm","host","qop","digest_uri","A1","A2","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","_buildBody","jQuery","trigger","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","parseInt","_sendTerminate","_hitError","reqStatus","xmpp:restart","_processRequest","time_elapsed","readyState","reqIs0","reqIs1","_removeRequest","_restartRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","open","sync","e2","sendFunc","customHeaders","headers","header","setRequestHeader","backoff","min","pow","abs","new_service","location","pathname","_buildStream","xmlns:stream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","ns_stream","namespaceURI","streamStart","string","_streamWrap","_onMessage","CLOSED","close","rawStanza","_removeClosingTag","search","firstChild","start","startString","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","parse","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","JSON","localStorage","getItem","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","isArray","makeArray","knownCapabilities","querySelector","setItem","stringify","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","buildIq","vCardEl","VCARD","get","set","error_rb","createBookmarksNode","PUBSUB","add","roomJid","alias","autojoin","conferenceAttr","BOOKMARKS","delete","notify","$field","$form","$item","$opt","Field","Item","Option","helper","__slice","__indexOf","l","fill","src","target","klass","f","_results","createHtmlFieldCouple","div","append","toHTML","children","getHtmlFields","find","opt","toJSON","fields","reported","_types","title","instructions","r","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","v","opts","o","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","n","u","require","exports",1,"module",2,"Buffer","arg","fromNumber","fromString","fromObject","allocate","checked","TYPED_ARRAY_SUPPORT","encoding","byteLength","write","object","isBuffer","fromBuffer","fromArray","TypeError","ArrayBuffer","buffer","fromTypedArray","fromArrayLike","fromJsonObject","copy","array","_augment","Uint8Array","_isBuffer","fromPool","poolSize","rootParent","kMaxLength","RangeError","SlowBuffer","subject","buf","utf8ToBytes","base64ToBytes","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","binaryWrite","base64Write","ucs2Write","utf16leToBytes","base64Slice","end","base64","fromByteArray","utf8Slice","res","tmp","decodeUtf8Char","asciiSlice","ret","binarySlice","hexSlice","out","toHex","utf16leSlice","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","codePoint","leadSurrogate","byteArray","hi","lo","toByteArray","dst","decodeURIComponent","INSPECT_MAX_BYTES","arr","foo","subarray","compare","isEncoding","list","pos","loweredCase","equals","inspect","byteOffset","arrayIndexOf","foundIndex","readUInt8","writeUInt8","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","_set","toArrayBuffer","BP","constructor","toLocaleString","base64-js","is-array",3,"lookup","PLUS","PLUS_URL_SAFE","SLASH","SLASH_URL_SAFE","NUMBER","UPPER","LOWER","b64ToByteArray","b64","L","placeHolders","Arr","uint8ToBase64","uint8","tripletToBase64","temp","extraBytes","base64js",4,"isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","rt","LN2",5,"Object",6,"EventEmitter","_events","_maxListeners","isFunction","isNumber","isObject","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","addListener","listener","newListener","warned","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","emitter",7,"create","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor",8,9,"cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","fun","noop","process","nextTick","browser","env","argv","versions","off","binding","cwd","chdir","dir","umask",10,"./lib/_stream_duplex.js",11,"Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","forEach","xs","objectKeys","keys","util","inherits","method","./_stream_readable","./_stream_writable","_process","core-util-is",12,"PassThrough","Transform","_transform","chunk","cb","./_stream_transform",13,"ReadableState","stream","hwm","highWaterMark","defaultHwm","objectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","readableObjectMode","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","StringDecoder","_readableState","Stream","readableAddChunk","state","addToFront","chunkInvalid","isNullOrUndefined","onEofChunk","unshift","emitReadable","maybeReadMore","needMoreData","roundUpToNextPowerOf2","MAX_HWM","howMuchToRead","isNull","isString","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EE","resumeScheduled","resume_","fromList","stringMode","shift","cpy","endReadable","debuglog","setEncoding","enc","nOrig","doRead","_read","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","needDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","events","_fromList","./_stream_duplex","isarray","string_decoder/",14,"TransformState","afterTransform","needTransform","transforming","writecb","writechunk","ts","_transformState","rs","_flush","done","ws","_write","writeencoding",15,"WriteReq","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","pendingcb","prefinished","errorEmitted","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","doWrite","writev","_writev","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","finishMaybe","cbs","entry","prefinish","need","endWritable","cork","uncork",16,"ar","isBoolean","isSymbol","isRegExp","re","objectToString","isDate","isError","isPrimitive",17,"./lib/_stream_passthrough.js",18,"./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js",19,20,21,"source","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js",22,"assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","available","charCode","size","substring","cr",23,24,"global","ctx","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","idx","recurseTimes","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","RegExp","base","braces","toUTCString","formatArray","map","formatProperty","reduceToSingleString","simple","getOwnPropertyDescriptor","numLinesEst","reduce","prev","cur","pad","timestamp","time","getHours","getMinutes","getSeconds","getDate","months","getMonth","prop","formatRegExp","format","objects","_","deprecate","deprecated","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","toUpperCase","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","regexp","origin","./support/isBuffer",25,"SessionManager","WildEmitter","selfID","full","sessions","peers","prepareSession","descriptionTypes","MediaSession","FileSession","performTieBreak","sess","jingle","contents","description","descType","matching","intersect","pendingDescriptionTypes","screenSharingSupport","webrtc","screenSharing","capabilities","support","peerConnectionConfig","iceServers","url","peerConnectionConstraints","optional","DtlsSrtpKeyAgreement","RtpDataChannels","media","audio","video","BaseSession","addICEServer","addSession","session","peer","peerID","extraData","extraData2","action","isInitiator","createMediaSession","initiator","constraints","createFileTransferSession","endPeerSessions","silent","endAllSessions","_createIncomingSession","meta","_sendError","_log","sender","isTieBreak","jingleCondition","pending","pendingAction","transportTypes","transport","transType","jingle-filetransfer-session","jingle-media-session","jingle-session","webrtcsupport","wildemitter",26,"each",27,"big",28,"FileTransferSession","pc","RTCPeerConnection","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","extend","FileTransfer","file","Sender","sent","localDescription","offer","algo","sendChannel","createDataChannel","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","lastModifiedDate","accept","answer","maybeReceivedFile","metadata","actualhash","receivedFile","candidate","iceConnectionState","connectionState","signalingState","channel","receive","onSessionInitiate","changes","Receiver","received","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","rtcpeerconnection",29,"chunksize","pacing","receiveBuffer","sliceFile","reader","FileReader","onload","readAsArrayBuffer","binaryType","event","Blob","File",30,"hashes","createHash","digest","defineProperty","./filetransfer","iana-hashes",31,"createHmac","getHashes","mapping","md2","md5","sha-1","sha-224","sha-256","sha-384","sha-512","names","algorithm","./lib/get-hashes","create-hash","create-hmac",32,33,"HashNoConstructor","_hash","buffers","Hash","rmd160","sha","next","outData","alg","./md5","ripemd160","sha.js",34,"toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz",35,"helpers","./helpers",36,"dup",37,"bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes",38,"blockSize","finalSize","_block","_finalSize","_blockSize","_s","ch","_update",39,"Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512",40,"Sha","_w","W","_a","_b","_c","_d","_e","calcW","loop","./hash",41,"Sha1",42,"Sha224","Sha256","_f","_g","_h",43,"S","X","R","Ch","Maj","Sigma0256","Sigma1256","Gamma0256","Gamma1256","K","T1","T2",44,"Sha384","SHA512","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE",45,"Sha512","Xl","xl","gamma0","gamma0l","gamma1","gamma1l","Wi7","Wi7l","Wi16","Wi16l","Wil","Wi","maj","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kil","chl","fl","gl","t1l","t1","t2l","t2",46,"Hmac","blocksize","_alg","_key","ZEROS","_ipad","_opad","create-hash/browser",47,48,"createForEach","arrayFunc","eachFunc","collection","iteratee","thisArg","bindCallback","arrayEach","baseEach","lodash._arrayeach","lodash._baseeach","lodash._bindcallback","lodash.isarray",49,"index",50,"baseForOwn","baseFor","baseProperty","createBaseEach","fromRight","getLength","isLength","iterable","toObject","createBaseFor","keysFunc","props","MAX_SAFE_INTEGER","lodash.keys",51,"isArrayLike","isIndex","reIsUint","shimKeys","keysIn","propsLength","allowIndexes","isArguments","Ctor","isProto","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments",52,"isObjectLike","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor",53,"propertyIsEnumerable",54,"argCount","accumulator","other",55,"arrayTag","nativeIsArray",56,"basePropertyDeep","path","pathKey","toPath","baseGet","isKey","reIsPlainProp","reIsDeepProp","pluck","property","lodash._baseget","lodash._topath","lodash.map",57,58,"baseToString","rePropName","quote","reEscapeChar",59,60,"baseMap","arrayMap","baseCallback","lodash._arraymap","lodash._basecallback",61,62,"baseMatches","baseMatchesProperty","baseIsMatch","matchData","customizer","noCustomizer","objValue","srcValue","baseIsEqual","getMatchData","isArr","isCommon","isStrictComparable","baseSlice","last","pairs","lodash._baseisequal","lodash.pairs",63,"arraySome","predicate","isLoose","stackA","stackB","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","equalArrays","equalObjects","arrLength","othLength","arrValue","othValue","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","objProps","objLength","othProps","skipCtor","objCtor","othCtor","lodash.istypedarray",64,"typedArrayTags","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",65,66,67,68,69,70,71,"toSDP","toIncomingSDPOffer","toSessionSDP","direction","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toCandidateSDP","toIncomingJSONOffer","sdp","creators","toSessionJSON","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","creator","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","toCandidateJSON","./lib/tojson","./lib/tosdp",72,"lines","filter","findLine","prefix","mediaLines","sessionLines","prefixLength","findLines","results","mline","port","formats","rtpmap","clockrate","channels","sctpmap","streams","fmtp","kv","crypto","cipherSuite","keyParams","sessionParams","fingerprint","extmap","idpart","sp","senders","uri","rtcpfb","subtype","parameters","foundation","component","ip","generation","relAddr","relPort","tcpType","network","sourceGroups","semantics","sources","ssrc","groups","bandwidth","msid","mslabel",73,"incoming","responder","both","none","recvonly","sendonly","sendrecv","inactive","outgoing",74,"SENDERS","parsers","idCounter","_setIdCounter","counter","groupLines","payloads","encryption","feedback","headerExtensions","candidates","fingerprints","sctp","trans","mid","rtpmapLines","payload","fmtpLines","fbLines","cryptoLines","mux","extLines","ssrcGroupLines","ssrcLines","msidLine","found","googConferenceFlag","fingerprintLines","setup","fp","ufragLine","pwdLine","ufrag","pwd","candidateLines","sctpmapLines","./parsers","./senders",75,"group","pushedSetup","param","fb","hdrExts","hdr","ssrcGroups","ssrcGroup","ssrcs",76,"dumpSDP","dumpStream","getAudioTracks","track","getVideoTracks","TraceablePeerConnection","peerconnection","what","onicecandidate","onaddstream","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","getLocalStreams","getRemoteStreams","addStream","removeStream","setLocalDescription","successCallback","failureCallback","setRemoteDescription","createOffer","createAnswer","addIceCandidate","getStats","webrtc-adapter-test",77,"requestUserMedia","Promise","resolve","reject","getUserMedia","attachMediaStream","reattachMediaStream","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","define","navigator","mozGetUserMedia","userAgent","pcConfig","pcConstraints","newIceServers","urls","newServer","username","credential","mozRTCPeerConnection","RTCSessionDescription","mozRTCSessionDescription","RTCIceCandidate","mozRTCIceCandidate","onError","constraintsToFF37","ideal","exact","advanced","oc","mediaDevices","addEventListener","removeEventListener","enumerateDevices","infos","kind","deviceId","groupId","orgEnumerateDevices","mozSrcObject","webkitGetUserMedia","iceTransportPolicy","iceTransports","webkitRTCPeerConnection","origGetStats","selector","errorCallback","fixChromeStats","standardReport","reports","report","standardStats","stat","successCallbackWrapper","nativeMethod","constraintsToChrome","cc","oldname","mix","kinds","MediaStreamTrack","getSources","devices","device","origGetUserMedia","srcObject","URL","createObjectURL","webrtcTesting",78,"PeerConnection","enableChromeNativeSimulcast","adapter","appVersion","constraint","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","peerconn","_onIce","_onDataChannel","remoteDescription","ice","sdpSessionID","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","cand","_checkRemoteCandidate","contentNames","iceCandidate","sdpMLineIndex","sdpMid","hasConstraints","mediaConstraints","expandedOffer","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","parameter","expandedCandidate","already","bundlePolicy","address","rtcpMuxPolicy","newCand","lodash.foreach","lodash.pluck","sdp-jingle-json","traceablepeerconnection",79,"filterContentSources","filterUnusedLabels","onAddStream","onRemoveStream","_ringing","defineProperties","ringing","mediaType","ring","unmute","active","renegotiate","addStream2","removeStream2","switchStream","oldStream","newStream","audioTracks","addTrack","onSessionInfo","onSourceAdd","newDesc","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","same",80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,"eventName","IceCandidate","SessionDescription",111,"JingleSession","uuid","v4","processingQueue","task","ACTIONS","content-accept","content-add","content-modify","content-reject","content-remove","description-info","security-info","session-accept","session-info","session-initiate","session-terminate","transport-accept","transport-info","transport-reject","transport-replace","source-add","source-remove","_sessionState","_connectionState","starting","connecting","disconnected","interrupted","requirePending","session-inititate","cancel","decline","kill","okKeys","unknownPayload","onContentAdd","onTransportReplace",112,"only_once","called","root","previous_async","noConflict","_toString","_isArray","_each","iterator","_map","_reduce","memo","_keys","setImmediate","completed","eachSeries","iterate","forEachSeries","eachLimit","_eachLimit","forEachLimit","started","running","replenish","doParallel","doParallelLimit","doSeries","_asyncMap","eachfn","mapSeries","mapLimit","_mapLimit","inject","foldl","reduceRight","reversed","reverse","foldr","_filter","filterSeries","select","selectSeries","_reject","rejectSeries","_detect","main_callback","detect","detectSeries","some","any","every","all","sortBy","criteria","left","right","auto","tasks","remainingTasks","taskComplete","theCallback","taskCallback","safeResults","rkey","requires","ready","retry","times","DEFAULT_TIMES","attempts","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","series","waterfall","wrapIterator","_parallel","parallel","parallelLimit","makeCallback","concatSeries","whilst","doWhilst","until","doUntil","worker","concurrency","_insert","drain","saturated","workers","empty","idle","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","working","drained","ds","_console_fn","memoize","hasher","queues","memoized","unmemoized","unmemoize","count","timesSeries","seq","fns","newargs","nextargs","compose","_applyEach","go","applyEach","applyEachSeries","forever","amd",113,"rng","getRandomValues","_rnds8","_rnds",114,"ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng",115,"PC","MediaStream","webkitMediaStream","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream",116,"isWildEmitter","callbacks","groupName","hasGroup","_groupName","releaseGroup","specialCallbacks","getWildcardCallbacks",117,"JXT","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","utils","types","ltx","stanzaConstructor","use","getDefinition","JXTClass","getExtensions","withDefinition","withTag","tagged","build","localName","ParentJXT","ChildJXT","multiName","hideSingle","parentName","_NS","_EL","_name","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign",118,"XML_NS","parentNS","Element","findOrCreate","existing","created","defaultVal","getAttributeNS","force","removeAttribute","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","getSubAttribute","subs","setSubAttribute","getBoolSubAttribute","setBoolSubAttribute","setText","getSubText","getTextSub","setSubText","setTextSub","getMultiSubText","extractor","setMultiSubText","builder","getMultiSubAttribute","setMultiSubAttribute","getSubLangText","defaultLang","langs","setSubLangText","getBoolSub","setBoolSub",119,"EXCLUDE","_PREFIXES","namespace","_extensions","_eventname","prefixes","allowedName","isExtensionName","nval",120,"getter","setter","boolAttribute","subAttribute","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","textSub","subText","multiTextSub","multiSubText","multiSubAttribute","langTextSub","subLangText","boolSub","langAttribute","b64Text","dateAttribute","toISOString","dateSub","dateSubAttribute","numberAttribute","isFloat","parseFloat","numberSub","attributeNS","enumSub","enumValues","enumVal","exists","alreadyExists","elements","subExtension","wrapper","subMultiExtension",121,"assignWith","baseAssign","createAssigner","assign","lodash._baseassign","lodash._createassigner",122,"baseCopy","lodash._basecopy",123,124,"assigner","restParam","guard","isIterateeCall","lodash._isiterateecall","lodash.restparam",125,126,127,"FUNC_ERROR_TEXT","nativeMax","rest","otherArgs",128,129,130,131,132,"DOMElement","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","remove","./element",133,"setAttrs","escapeXml","escapeXmlText","is","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","clone","_addChildren","writer",134,"availableSaxParsers","bestSaxParser","./index","./parse","./sax/sax_ltx",135,"Parser","./dom-element",136,"saxParsers","modName","mod","saxParser","ParserMod",137,"unescapeXml","STATE_TEXT","STATE_IGNORE_TAG","STATE_TAG_NAME","STATE_TAG","STATE_ATTR_NAME","STATE_ATTR_EQ","STATE_ATTR_QUOT","STATE_ATTR_VALUE","SaxLtx","remainder","endTag","selfClosing","attrQuote","attrName","recordStart","_handleTagOpening","endRecording","recorded",138,139,140,"HTMLVideoElement","_srcObject",141,"ICE","RemoteCandidate","Candidate","Fingerprint","SctpMap","Content",142,"Iq","topLevel","resultReply","errorReply",143,"REASONS","Jingle","disposition","Description","Transport","Reason","alternativeSession",144,"FBNS","HDRNS","INFONS","SSMANS","GROUPNS","Feedback","Bandwidth","RTP","Crypto","PayloadType","maxptime","ptime","params","ContentGroup","SourceGroup","Source","Mute","Unmute",145,"JSM","RTC","jxt","IqStanza","JingleStanza","peer_constraints","AUTOACCEPT","manager","MozDontOfferDataChannel","offerToReceiveAudio","offerToReceiveVideo","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","./stanza/iceUdp.js","./stanza/iq.js","./stanza/jingle.js","./stanza/rtp.js","factory","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","_generateBlock","_incrementCounter","getHexString","hex","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","msCrypto","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod_","mult","mult_","powMod","sub_","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C","C_lib","lib","Base","overrides","mixIn","$super","instance","properties","propertyName","WordArray","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","escape","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","doFlush","dataWords","dataSigBytes","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s1","s2","round","t0","t3","SHA1","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","sigma0","sigma1","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","G","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","__super__","str1","str2","randomExponent","smpHash","fmpi","smpi","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","h2","nex","packINT","packCtr","padCtr","ctr","unpackCtr","unpack","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","prv","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","frag","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","B","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","lastIndexOf","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","sign","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","postMessage","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","dh","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates","question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","_smInit","prepareMsg","first","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","aes","handleDataMsg","vt","ign","handleTLVs","tlvs","smpSecret","vs","receiveMsg","doAKE","it","severity","sendFile","filename","l1name","endOtr","cache","jsonp","content-type","T","authBasic","Authorization","del","head","isAllowed","patch","post","put","P","fixLng","functions","defaultNs","fallbackNS","fallbackLng","interpolationPrefixEscaped","regexEscape","interpolationPrefix","interpolationSuffixEscaped","interpolationSuffix","lng","detectLanguage","toLanguages","useCookie","cookie","cookieName","cookieExpirationTime","cookieDomain","detectLngFromLocalStorage","setCurrentLng","setJqueryExt","Deferred","resStore","preload","I","load","J","promise","deepExtend","keyseparator","dynamicLoad","resGetPath","getAsync","customLoad","_fetch","useLocalStorage","_storeLocal","defaultValueFromContent","defaultValue","prepend","selectorAttr","useDataAttrOptions","i18n","escapeInterpolation","regexReplacementEscape","postProcess","reusePrefix","maxRecursion","reuseSuffix","context","indefinite_article","A","D","sprintf","shortcutFunction","defaultVariables","nsseparator","sendMissing","missingKeyHandler","parseMissingKey","lngs","contextNotFound","pluralNotFound","needsPlural","pluralSuffix","indefiniteNotFound","indefiniteSuffix","E","returnObjectTrees","fallbackOnNull","objectTreeKeyHandler","fallbackOnEmpty","isFallbackLookup","fallbackToDefaultNS","lngWhitelist","detectLngQS","languages","userLanguage","language","lowerCaseLng","Zepto","O","_loadLocal","i18nStamp","localStorageExpirationTime","ajax","dataType","_fetchOne","postMissing","sendMissingTo","resPostPath","sendType","postAsync","reload","&","<",">","\"","'","/","setTime","toGMTString","getCountyIndexOfLng","applyReplacement","V","rules","numbers","plurals","addRule","currentRule","rule","noAbs","Y","Z","toExponential","toFixed","exec","setLng","addResourceBundle","hasResourceBundle","addResource","addResources","removeResourceBundle","loadNamespace","loadNamespaces","setDefaultNamespace","translate","pluralExtensions","addPostProcessor","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isIE7","isIE8","isLowIE","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isObj","isOpen","updateItemHTML","mainEl","eq","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","container","contentContainer","preloader","tLoading","modules","closeBtnInside","close_replaceWith","alignTop","overflow","overflowY","overflowX","top","scrollTop","fixedBgPos","height","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","_close","detach","_removeClassFromMFP","removeAttr","currItem","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","disableOn","width","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","after","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","settings","cursor","tError","initAjax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","setInterval","naturalWidth","getImage","complete","loaded","alt","img_replaceWith","loading","MozTransform","enabled","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","transform","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","Boolean","mfpFastClick","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","destroyMfpFastClick","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","originalEvent","touches","clientX","clientY","I18next","de","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Message","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","Subscription","online","chat","away","xa","offline","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Log_in_without_chat","has_come_online","Unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Info","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Destroy","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Alert","Call_started","Call_terminated","Carbon_copy","Enable","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","PermissionDeniedError","Use_local_audio_device","Use_local_video_device","is_","You_received_a_message_from_an_unknown_sender_","Your_roster_is_empty_add_","onsmp_explanation_question","onsmp_explanation_secret","from_sender","Verified_private_conversation_started","Unverified_private_conversation_started","en","Bookmark","Auto-join","Edit_bookmark","Room_logging_is_disabled","Room_is_now_non-anoymous","Room_is_now_semi-anonymous","Do_you_want_to_change_the_default_room_configuration","Default","Change","fr","nds","pl","pt-BR","ro","ru","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","def","attrname","mergedOpt","isPageHidden","_doc","hidden","msHidden","webkitHidden","mozHidden","_opt","_orig","_img","_ready","_lastBadge","_running","_readyCb","_browser","_animTimeout","_def","bgColor","textColor","fontFamily","fontStyle","elementId","dataUrl","win","ff","InstallTrigger","chrome","opera","ie","safari","HTMLElement","supported","_queue","isUp","isLeft","step","getIcon","hasAttribute","getContext","icon","circle","more","beginPath","font","textAlign","moveTo","lineTo","quadraticCurveTo","arc","PI","fillStyle","closePath","stroke","fillText","rectangle","fillRect","badge","imageElement","newImg","videoElement","webcam","newVideo","oGetUserMedia","play","elm","getLink","getElementById","canvas","toDataURL","old","fade","popFade","slide","revert","animationType"],"mappings":"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"} \ No newline at end of file
diff --git a/build/js/ojsxc.js b/build/js/ojsxc.js
index a9b073c..ea1b927 100644
--- a/build/js/ojsxc.js
+++ b/build/js/ojsxc.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v2.1.4 - 2015-09-10
+ * ojsxc v2.1.5 - 2015-11-17
*
* Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 2.1.4
+ * @version 2.1.5
* @license MIT
*/
@@ -52,6 +52,13 @@ function onRosterToggle(event, state, duration) {
}
});
}
+
+ // update app sidebar
+ if ($('#app-sidebar').length > 0) {
+ $('#app-sidebar').animate({
+ right: (roster_width + toggle_width) + 'px'
+ });
+ }
}
/**
@@ -91,6 +98,13 @@ function onRosterReady() {
}
});
+ setTimeout(function(){
+ // update app sidebar
+ if ($('#app-sidebar').length > 0) {
+ $('#app-sidebar').css('right', (roster_width + roster_right + toggle_width) + 'px');
+ }
+ }, 500);
+
function getValues() {
roster_width = $('#jsxc_roster').outerWidth();
navigation_width = $('#navigation').width();