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:
authorsualko <klaus@jsxc.org>2017-02-10 16:16:09 +0300
committersualko <klaus@jsxc.org>2017-02-10 16:16:09 +0300
commit6d4af39132d10c80ec0bec881119dea8efc9a992 (patch)
treec5e496b67789806dffe8324a6d820f54a126706d /build
parent5f118ca18f99648d7e4d311926b991d73fd67695 (diff)
build v3.1.0-beta.2v3.1.0-beta.2
Diffstat (limited to 'build')
-rw-r--r--build/ajax/getSettings.php2
-rw-r--r--build/ajax/setAdminSettings.php20
-rw-r--r--build/appinfo/app.php7
-rw-r--r--build/appinfo/info.xml6
-rw-r--r--build/css/jsxc.oc.css277
-rw-r--r--build/js/admin.js65
-rw-r--r--build/js/eof.js4
-rw-r--r--build/js/jsxc/css/jsxc.css197
-rw-r--r--build/js/jsxc/jsxc.js108
-rw-r--r--build/js/jsxc/jsxc.min.js18
-rw-r--r--build/js/jsxc/jsxc.min.js.map2
-rw-r--r--build/js/jsxc/lib/dsa-ww.js50
-rw-r--r--build/js/jsxc/lib/emojione/lib/js/emojione.js515
-rw-r--r--build/js/jsxc/lib/emojione/lib/js/emojione.min.js10
-rw-r--r--build/js/jsxc/lib/favico.js/favico.js857
-rw-r--r--build/js/jsxc/lib/i18next/i18next.min.js2
-rw-r--r--build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js1
-rw-r--r--build/js/jsxc/lib/jquery.min.js4
-rw-r--r--build/js/jsxc/lib/jquery.ui.min.js7
-rw-r--r--build/js/jsxc/lib/jsxc.dep.js203
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js20
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js.map2
-rw-r--r--build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js1860
-rw-r--r--build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js4
-rw-r--r--build/js/jsxc/lib/otr/lib/ake.js399
-rw-r--r--build/js/jsxc/lib/otr/lib/otr.js746
-rw-r--r--build/js/jsxc/lib/otr/lib/parse.js206
-rw-r--r--build/js/jsxc/lib/otr/lib/sm.js436
-rw-r--r--build/js/jsxc/lib/strophe.bookmarks/index.js116
-rw-r--r--build/js/jsxc/lib/strophe.chatstates/index.js80
-rw-r--r--build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js31668
-rw-r--r--build/js/jsxc/lib/strophe.js/strophe.js5828
-rw-r--r--build/js/jsxc/lib/strophe.vcard/index.js76
-rw-r--r--build/js/jsxc/lib/strophe.x/index.js845
-rw-r--r--build/js/jsxc/lib/translation.js2
-rw-r--r--build/js/ojsxc.js18
-rw-r--r--build/settings.php4
-rw-r--r--build/templates/settings.php133
38 files changed, 2140 insertions, 42658 deletions
diff --git a/build/ajax/getSettings.php b/build/ajax/getSettings.php
index 4a03d39..6d466c0 100644
--- a/build/ajax/getSettings.php
+++ b/build/ajax/getSettings.php
@@ -46,7 +46,7 @@ $data ['xmpp'] ['url'] = trim($config->getAppValue('ojsxc', 'boshUrl'));
$data ['xmpp'] ['domain'] = trim($config->getAppValue('ojsxc', 'xmppDomain'));
$data ['xmpp'] ['resource'] = trim($config->getAppValue('ojsxc', 'xmppResource'));
$data ['xmpp'] ['overwrite'] = validateBoolean($config->getAppValue('ojsxc', 'xmppOverwrite'));
-$data ['xmpp'] ['onlogin'] = true;
+$data ['xmpp'] ['onlogin'] = null;
if (validateBoolean($config->getAppValue('ojsxc', 'xmppPreferMail'))) {
$mail = $config->getUserValue($username,'settings','email');
diff --git a/build/ajax/setAdminSettings.php b/build/ajax/setAdminSettings.php
index 7a098f1..d22e160 100644
--- a/build/ajax/setAdminSettings.php
+++ b/build/ajax/setAdminSettings.php
@@ -3,6 +3,18 @@
OCP\User::checkAdminUser();
OCP\JSON::callCheck();
+$version = \OCP\Util::getVersion();
+preg_match('/^([0-9]+)\.', $version, $versionMatches);
+$majorVersion = intval($versionMatches[1]);
+
+// copied from owncloud/settings/ajax/installapp.php
+$lastConfirm = (int) \OC::$server->getSession()->get('last-password-confirm');
+if ($majorVersion >= 11 && $lastConfirm < (time() - 30 * 60 + 15)) {
+ $l = \OC::$server->getL10N('core');
+ OC_JSON::error(array( 'data' => array( 'message' => $l->t('Password confirmation is required'))));
+ exit();
+}
+
$config = \OC::$server->getConfig();
$config->setAppValue('ojsxc', 'serverType', $_POST ['serverType']);
@@ -22,4 +34,12 @@ $config->setAppValue('ojsxc', 'iceTtl', $_POST ['iceTtl']);
$config->setAppValue('ojsxc', 'firefoxExtension', $_POST ['firefoxExtension']);
$config->setAppValue('ojsxc', 'chromeExtension', $_POST ['chromeExtension']);
+$externalServices = array();
+foreach($_POST['externalServices'] as $es) {
+ if (preg_match('/^(https:\/\/)?([\w\d*][\w\d-]*)(\.[\w\d-]+)+(:[\d]+)?$/', $es)) {
+ $externalServices[] = $es;
+ }
+}
+$config->setAppValue('ojsxc', 'externalServices', implode('|', $externalServices));
+
echo 'true';
diff --git a/build/appinfo/app.php b/build/appinfo/app.php
index 869ad8d..969b835 100644
--- a/build/appinfo/app.php
+++ b/build/appinfo/app.php
@@ -48,6 +48,13 @@ if(class_exists('\\OCP\\AppFramework\\Http\\EmptyContentSecurityPolicy')) {
$policy->addAllowedConnectDomain($boshDomain);
}
+ $externalServices = \OC::$server->getConfig()->getAppValue('ojsxc', 'externalServices');
+ $externalServices = explode("|", $externalServices);
+
+ foreach($externalServices as $es) {
+ $policy->addAllowedConnectDomain($es);
+ }
+
$manager->addDefaultPolicy($policy);
}
diff --git a/build/appinfo/info.xml b/build/appinfo/info.xml
index d3cacd4..481d784 100644
--- a/build/appinfo/info.xml
+++ b/build/appinfo/info.xml
@@ -5,7 +5,7 @@
<name>JavaScript XMPP Chat</name>
<summary>Facebook-like chat</summary>
<description>Facebook-like chat with end-to-end encrypted conversation, video calls, multi-user rooms, XMPP and internal server backend.</description>
- <version>3.1.0-beta</version>
+ <version>3.1.0-beta.2</version>
<licence>agpl</licence>
<author mail="klaus@jsxc.org">Klaus Herberth</author>
<author>Tobia De Koninck</author>
@@ -21,12 +21,12 @@
<developer>https://github.com/jsxc/jsxc/wiki/Contributor-Guide</developer>
</documentation>
- <category>tools</category>
+ <category>social</category>
<website>https://www.jsxc.org</website>
<bugs>http://github.com/jsxc/jsxc/issues</bugs>
<repository type="git">https://github.com/jsxc/jsxc.nextcloud.git</repository>
- <screenshot>https://www.jsxc.org/assets/screenshot-owncloud-latest.png</screenshot>
+ <screenshot>https://www.jsxc.org/assets/screenshot-nextcloud-latest.png</screenshot>
<dependencies>
<php min-version="5.4" max-version="7"/>
diff --git a/build/css/jsxc.oc.css b/build/css/jsxc.oc.css
index 3be492e..4bef902 100644
--- a/build/css/jsxc.oc.css
+++ b/build/css/jsxc.oc.css
@@ -1,5 +1,5 @@
/*!
- * ojsxc v3.1.0-beta - 2017-01-23
+ * ojsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,208 +7,11 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
@charset "UTF-8";
-/* basic scrollbar styling */
-/* vertical scrollbar */
-.mCSB_container {
- width: auto;
- margin-right: 30px;
- overflow: hidden; }
-
-.mCSB_container.mCS_no_scrollbar {
- margin-right: 0; }
-
-.mCS_disabled .mCSB_container.mCS_no_scrollbar, .mCS_destroyed .mCSB_container.mCS_no_scrollbar {
- margin-right: 30px; }
-
-.mCustomScrollBox .mCSB_scrollTools {
- width: 16px;
- height: 100%;
- top: 0;
- right: 0; }
-
-.mCSB_scrollTools .mCSB_draggerContainer {
- height: 100%;
- box-sizing: border-box; }
-
-.mCSB_scrollTools .mCSB_buttonUp + .mCSB_draggerContainer {
- padding-bottom: 40px; }
-
-.mCSB_scrollTools .mCSB_draggerRail {
- width: 2px;
- height: 100%;
- margin: 0 auto;
- border-radius: 10px; }
-
-.mCSB_scrollTools .mCSB_dragger {
- cursor: pointer;
- width: 100%;
- height: 30px; }
-
-.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- width: 4px;
- height: 100%;
- margin: 0 auto;
- border-radius: 10px;
- text-align: center; }
-
-.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown {
- height: 20px;
- overflow: hidden;
- margin: 0 auto;
- cursor: pointer; }
-
-.mCSB_scrollTools .mCSB_buttonDown {
- bottom: 0;
- margin-top: -40px; }
-
-/* horizontal scrollbar */
-.mCSB_horizontal .mCSB_container {
- height: auto;
- margin-right: 0;
- margin-bottom: 30px;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_container.mCS_no_scrollbar {
- margin-bottom: 0; }
-
-.mCS_disabled .mCSB_horizontal .mCSB_container.mCS_no_scrollbar, .mCS_destroyed .mCSB_horizontal .mCSB_container.mCS_no_scrollbar {
- margin-right: 0;
- margin-bottom: 30px; }
-
-.mCSB_horizontal.mCustomScrollBox .mCSB_scrollTools {
- width: 100%;
- height: 16px;
- top: auto;
- right: auto;
- bottom: 0;
- left: 0;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerContainer {
- height: 100%;
- width: auto;
- box-sizing: border-box;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft + .mCSB_draggerContainer {
- padding-bottom: 0;
- padding-right: 20px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerRail {
- width: 100%;
- height: 2px;
- margin: 7px 0;
- border-radius: 10px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger {
- width: 30px;
- height: 100%; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- width: 100%;
- height: 4px;
- margin: 6px auto;
- border-radius: 10px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight {
- width: 20px;
- height: 100%;
- overflow: hidden;
- margin: 0 auto;
- cursor: pointer;
- float: left; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight {
- right: 0;
- bottom: auto;
- margin-left: -40px;
- margin-top: -16px;
- float: right; }
-
-/* default scrollbar colors and backgrounds */
-.mCustomScrollBox .mCSB_scrollTools {
- opacity: 0.75; }
-
-.mCustomScrollBox:hover .mCSB_scrollTools {
- opacity: 1; }
-
-.mCSB_scrollTools .mCSB_draggerRail {
- background: #000;
- /* rgba fallback */
- background: rgba(0, 0, 0, 0.4);
- filter: "alpha(opacity=40)";
- -ms-filter: "alpha(opacity=40)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- background: #fff;
- /* rgba fallback */
- background: rgba(255, 255, 255, 0.75);
- filter: "alpha(opacity=75)";
- -ms-filter: "alpha(opacity=75)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
- background: rgba(255, 255, 255, 0.85);
- filter: "alpha(opacity=85)";
- -ms-filter: "alpha(opacity=85)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
- background: rgba(255, 255, 255, 0.9);
- filter: "alpha(opacity=90)";
- -ms-filter: "alpha(opacity=90)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight {
- background-image: url(mCSB_buttons.png);
- background-repeat: no-repeat;
- opacity: 0.4;
- filter: "alpha(opacity=40)";
- -ms-filter: "alpha(opacity=40)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp {
- background-position: 0 0;
- /*
- sprites locations are 0 0/-16px 0/-32px 0/-48px 0 (light) and -80px 0/-96px 0/-112px 0/-128px 0 (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonDown {
- background-position: 0 -20px;
- /*
- sprites locations are 0 -20px/-16px -20px/-32px -20px/-48px -20px (light) and -80px -20px/-96px -20px/-112px -20px/-128px -20px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonLeft {
- background-position: 0 -40px;
- /*
- sprites locations are 0 -40px/-20px -40px/-40px -40px/-60px -40px (light) and -80px -40px/-100px -40px/-120px -40px/-140px -40px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonRight {
- background-position: 0 -56px;
- /*
- sprites locations are 0 -56px/-20px -56px/-40px -56px/-60px -56px (light) and -80px -56px/-100px -56px/-120px -56px/-140px -56px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonUp:hover, .mCSB_scrollTools .mCSB_buttonDown:hover, .mCSB_scrollTools .mCSB_buttonLeft:hover, .mCSB_scrollTools .mCSB_buttonRight:hover {
- opacity: 0.75;
- filter: "alpha(opacity=75)";
- -ms-filter: "alpha(opacity=75)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp:active, .mCSB_scrollTools .mCSB_buttonDown:active, .mCSB_scrollTools .mCSB_buttonLeft:active, .mCSB_scrollTools .mCSB_buttonRight:active {
- opacity: 0.9;
- filter: "alpha(opacity=90)";
- -ms-filter: "alpha(opacity=90)";
- /* old ie */ }
-
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
@@ -3235,12 +3038,12 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
display: none; }
.jsxc_bar {
- background-color: #1d2d44;
+ background-color: #0082c9;
cursor: pointer;
height: 44px;
line-height: 26px;
padding: 2px;
- color: #bbb;
+ color: #c0dff1;
width: 100%;
box-sizing: border-box;
position: relative; }
@@ -3710,7 +3513,7 @@ div.jsxc_transfer {
.jsxc_windowItem .jsxc_memberlist {
height: 44px;
width: 100%;
- background-color: #1d2d44;
+ background-color: #0082c9;
overflow: hidden;
position: absolute;
top: 0;
@@ -3720,8 +3523,8 @@ div.jsxc_transfer {
.jsxc_windowItem .jsxc_memberlist ul {
white-space: nowrap;
position: absolute;
- background-color: #1d2d44;
- color: #bbb;
+ background-color: #0082c9;
+ color: #c0dff1;
overflow: hidden;
-webkit-transition: left 400ms;
transition: left 400ms;
@@ -4617,50 +4420,68 @@ div.jsxc_video {
padding-top: 5px;
clear: both; }
#jsxc_alt:hover {
- opacity: 0.8; }
+ opacity: 1; }
+ #jsxc_alt a {
+ color: #fff; }
#ojsxc .form-group {
- margin-bottom: 0.8em; }
-
-@media (min-width: 768px) {
- #ojsxc .form-offset-label {
- padding-left: 280px; } }
-
-@media (min-width: 768px) {
- #ojsxc h3 {
- margin-left: 285px; } }
+ overflow: hidden; }
+ #ojsxc .form-group > label, #ojsxc .form-group > .form-col {
+ float: left; }
#ojsxc label {
box-sizing: border-box;
- padding-right: 15px;
- display: inline-block; }
+ padding: 6px 15px 6px 0;
+ width: 100%;
+ margin: 3px 0; }
@media (min-width: 768px) {
#ojsxc label {
- width: 280px;
+ width: 33%;
text-align: right; } }
+#ojsxc .form-no-padding {
+ padding: 0; }
+
+#ojsxc .form-col {
+ width: 100%;
+ overflow: hidden; }
+ @media (min-width: 768px) {
+ #ojsxc .form-col {
+ width: 66%; } }
+ #ojsxc .form-col input {
+ display: block; }
+
+@media (min-width: 768px) {
+ #ojsxc .form-col-offset {
+ padding-left: 33%; } }
+
#ojsxc input {
box-sizing: border-box;
padding-right: 15px;
- display: inline-block;
width: 100%; }
#ojsxc input[type='checkbox'] {
+ margin: 13px 0;
width: auto; }
#ojsxc input[type='radio'] {
width: auto; }
- @media (min-width: 768px) {
- #ojsxc input {
- width: auto; } }
- #ojsxc input + label {
- width: auto; }
- #ojsxc input + label + em {
- padding-left: 20px; }
+ #ojsxc input:invalid {
+ border: 1px solid red;
+ position: relative; }
#ojsxc em, #ojsxc .boshUrl-msg {
- display: block; }
+ display: block;
+ clear: left;
+ margin-bottom: 0.8em; }
+
+#ojsxc .text-left {
+ text-align: left; }
+
+#ojsxc h3 {
+ width: 100%; }
@media (min-width: 768px) {
- #ojsxc em, #ojsxc .boshUrl-msg {
- padding-left: 280px; } }
+ #ojsxc h3 {
+ width: 33%;
+ border-bottom: 1px solid #e1e1e1; } }
.jsxc_success, .jsxc_fail {
border: 1px solid #fff;
diff --git a/build/js/admin.js b/build/js/admin.js
index d9c8fa1..123bc03 100644
--- a/build/js/admin.js
+++ b/build/js/admin.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v3.1.0-beta - 2017-01-23
+ * ojsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 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 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
@@ -16,7 +16,7 @@
$(document).ready(function() {
/**
* Test if bosh server is up and running.
- *
+ *
* @param {string} url BOSH url
* @param {string} domain host domain for BOSH server
* @param {Function} cb called if test is done
@@ -145,10 +145,13 @@ $(document).ready(function() {
self.data('timeout', timeout);
});
- $('#ojsxc').submit(function(event) {
- event.preventDefault();
+ function saveAdminSettings() {
+ if (OC.PasswordConfirmation && OC.PasswordConfirmation.requiresPasswordConfirmation()) {
+ OC.PasswordConfirmation.requirePasswordConfirmation(saveAdminSettings);
+ return;
+ }
- var post = $(this).serialize();
+ var post = $('#ojsxc').serialize();
$('#ojsxc .msg').html('<div>');
var status = $('#ojsxc .msg div');
@@ -165,5 +168,55 @@ $(document).ready(function() {
status.hide('slow');
}, 3000);
});
+ }
+
+ $('#ojsxc').submit(function(event) {
+ event.preventDefault();
+
+ saveAdminSettings();
+ });
+
+ $('#ojsxc .add-input').click(function(ev) {
+ ev.preventDefault();
+
+ var clone = $(this).prev().clone();
+ clone.val('');
+
+ $(this).before(clone);
+ });
+
+ $('#insert-upload-service').click(function(ev) {
+ ev.preventDefault();
+
+ if (!jsxc.xmpp.conn || !jsxc.xmpp.conn.connected) {
+ console.warn('Not connected to any XMPP server.');
+ return;
+ }
+
+ var options = jsxc.options.get('httpUpload') || {};
+
+ var services = $('[name="externalServices[]"]').map(function(){
+ var inputField = $(this);
+
+ return inputField.val() || null;
+ });
+
+ if (options.server && services.toArray().indexOf(options.server) < 0) {
+ // insert service
+ var emptyInputFields = $('[name="externalServices[]"]').filter(function(){
+ return $(this).val() === '';
+ });
+
+ var targetInputField;
+
+ if(emptyInputFields.length === 0) {
+ $(this).parents('.form-group').find('.add-input').click();
+ targetInputField = $('[name="externalServices[]"]').last();
+ } else {
+ targetInputField = $(emptyInputFields[0]);
+ }
+
+ targetInputField.val(options.server);
+ }
});
});
diff --git a/build/js/eof.js b/build/js/eof.js
index 9e624c2..c66804b 100644
--- a/build/js/eof.js
+++ b/build/js/eof.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v3.1.0-beta - 2017-01-23
+ * ojsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 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 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
diff --git a/build/js/jsxc/css/jsxc.css b/build/js/jsxc/css/jsxc.css
index f8619ee..8178aeb 100644
--- a/build/js/jsxc/css/jsxc.css
+++ b/build/js/jsxc/css/jsxc.css
@@ -1,201 +1,4 @@
@charset "UTF-8";
-/* basic scrollbar styling */
-/* vertical scrollbar */
-.mCSB_container {
- width: auto;
- margin-right: 30px;
- overflow: hidden; }
-
-.mCSB_container.mCS_no_scrollbar {
- margin-right: 0; }
-
-.mCS_disabled .mCSB_container.mCS_no_scrollbar, .mCS_destroyed .mCSB_container.mCS_no_scrollbar {
- margin-right: 30px; }
-
-.mCustomScrollBox .mCSB_scrollTools {
- width: 16px;
- height: 100%;
- top: 0;
- right: 0; }
-
-.mCSB_scrollTools .mCSB_draggerContainer {
- height: 100%;
- box-sizing: border-box; }
-
-.mCSB_scrollTools .mCSB_buttonUp + .mCSB_draggerContainer {
- padding-bottom: 40px; }
-
-.mCSB_scrollTools .mCSB_draggerRail {
- width: 2px;
- height: 100%;
- margin: 0 auto;
- border-radius: 10px; }
-
-.mCSB_scrollTools .mCSB_dragger {
- cursor: pointer;
- width: 100%;
- height: 30px; }
-
-.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- width: 4px;
- height: 100%;
- margin: 0 auto;
- border-radius: 10px;
- text-align: center; }
-
-.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown {
- height: 20px;
- overflow: hidden;
- margin: 0 auto;
- cursor: pointer; }
-
-.mCSB_scrollTools .mCSB_buttonDown {
- bottom: 0;
- margin-top: -40px; }
-
-/* horizontal scrollbar */
-.mCSB_horizontal .mCSB_container {
- height: auto;
- margin-right: 0;
- margin-bottom: 30px;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_container.mCS_no_scrollbar {
- margin-bottom: 0; }
-
-.mCS_disabled .mCSB_horizontal .mCSB_container.mCS_no_scrollbar, .mCS_destroyed .mCSB_horizontal .mCSB_container.mCS_no_scrollbar {
- margin-right: 0;
- margin-bottom: 30px; }
-
-.mCSB_horizontal.mCustomScrollBox .mCSB_scrollTools {
- width: 100%;
- height: 16px;
- top: auto;
- right: auto;
- bottom: 0;
- left: 0;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerContainer {
- height: 100%;
- width: auto;
- box-sizing: border-box;
- overflow: hidden; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft + .mCSB_draggerContainer {
- padding-bottom: 0;
- padding-right: 20px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_draggerRail {
- width: 100%;
- height: 2px;
- margin: 7px 0;
- border-radius: 10px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger {
- width: 30px;
- height: 100%; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- width: 100%;
- height: 4px;
- margin: 6px auto;
- border-radius: 10px; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight {
- width: 20px;
- height: 100%;
- overflow: hidden;
- margin: 0 auto;
- cursor: pointer;
- float: left; }
-
-.mCSB_horizontal .mCSB_scrollTools .mCSB_buttonRight {
- right: 0;
- bottom: auto;
- margin-left: -40px;
- margin-top: -16px;
- float: right; }
-
-/* default scrollbar colors and backgrounds */
-.mCustomScrollBox .mCSB_scrollTools {
- opacity: 0.75; }
-
-.mCustomScrollBox:hover .mCSB_scrollTools {
- opacity: 1; }
-
-.mCSB_scrollTools .mCSB_draggerRail {
- background: #000;
- /* rgba fallback */
- background: rgba(0, 0, 0, 0.4);
- filter: "alpha(opacity=40)";
- -ms-filter: "alpha(opacity=40)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
- background: #fff;
- /* rgba fallback */
- background: rgba(255, 255, 255, 0.75);
- filter: "alpha(opacity=75)";
- -ms-filter: "alpha(opacity=75)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
- background: rgba(255, 255, 255, 0.85);
- filter: "alpha(opacity=85)";
- -ms-filter: "alpha(opacity=85)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
- background: rgba(255, 255, 255, 0.9);
- filter: "alpha(opacity=90)";
- -ms-filter: "alpha(opacity=90)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight {
- background-image: url(mCSB_buttons.png);
- background-repeat: no-repeat;
- opacity: 0.4;
- filter: "alpha(opacity=40)";
- -ms-filter: "alpha(opacity=40)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp {
- background-position: 0 0;
- /*
- sprites locations are 0 0/-16px 0/-32px 0/-48px 0 (light) and -80px 0/-96px 0/-112px 0/-128px 0 (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonDown {
- background-position: 0 -20px;
- /*
- sprites locations are 0 -20px/-16px -20px/-32px -20px/-48px -20px (light) and -80px -20px/-96px -20px/-112px -20px/-128px -20px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonLeft {
- background-position: 0 -40px;
- /*
- sprites locations are 0 -40px/-20px -40px/-40px -40px/-60px -40px (light) and -80px -40px/-100px -40px/-120px -40px/-140px -40px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonRight {
- background-position: 0 -56px;
- /*
- sprites locations are 0 -56px/-20px -56px/-40px -56px/-60px -56px (light) and -80px -56px/-100px -56px/-120px -56px/-140px -56px (dark)
- */ }
-
-.mCSB_scrollTools .mCSB_buttonUp:hover, .mCSB_scrollTools .mCSB_buttonDown:hover, .mCSB_scrollTools .mCSB_buttonLeft:hover, .mCSB_scrollTools .mCSB_buttonRight:hover {
- opacity: 0.75;
- filter: "alpha(opacity=75)";
- -ms-filter: "alpha(opacity=75)";
- /* old ie */ }
-
-.mCSB_scrollTools .mCSB_buttonUp:active, .mCSB_scrollTools .mCSB_buttonDown:active, .mCSB_scrollTools .mCSB_buttonLeft:active, .mCSB_scrollTools .mCSB_buttonRight:active {
- opacity: 0.9;
- filter: "alpha(opacity=90)";
- -ms-filter: "alpha(opacity=90)";
- /* old ie */ }
-
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
diff --git a/build/js/jsxc/jsxc.js b/build/js/jsxc/jsxc.js
index 935bc12..a777679 100644
--- a/build/js/jsxc/jsxc.js
+++ b/build/js/jsxc/jsxc.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v3.1.0-beta - 2017-01-23
+ * jsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 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 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
- version: '3.1.0-beta',
+ version: '3.1.0-beta.2',
/** True if i'm the master */
master: false,
@@ -378,10 +378,12 @@ jsxc = {
jsxc.options.loginForm.triggered = true;
jsxc.xmpp.login(jsxc.options.xmpp.jid, jsxc.options.xmpp.password);
+
+ return;
}
- } else {
- jsxc.submitLoginForm();
}
+
+ jsxc.submitLoginForm();
});
// Trigger submit in jsxc.xmpp.connected()
@@ -1544,13 +1546,18 @@ jsxc.xmpp = {
* @private
*/
onRosterChanged: function(iq) {
- /*
- * <iq from='' type='set' id=''> <query xmlns='jabber:iq:roster'> <item
- * jid='' name='' subscription='' /> </query> </iq>
- */
+
+ var iqSender = $(iq).attr('from');
+ var ownBareJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid);
+
+ if (iqSender && iqSender !== ownBareJid) {
+ return true;
+ }
jsxc.debug('onRosterChanged', iq);
+ // @REVIEW there should be only one item, according to RFC6121
+ // https://xmpp.org/rfcs/rfc6121.html#roster-syntax-actions-push
$(iq).find('item').each(function() {
var jid = $(this).attr('jid');
var name = $(this).attr('name') || jid;
@@ -1772,6 +1779,7 @@ jsxc.xmpp = {
onChatMessage: function(stanza) {
var forwarded = $(stanza).find('forwarded[xmlns="' + jsxc.CONST.NS.FORWARD + '"]');
var message, carbon;
+ var originalSender = $(stanza).attr('from');
if (forwarded.length > 0) {
message = forwarded.find('> message');
@@ -1780,6 +1788,9 @@ jsxc.xmpp = {
if (carbon.length === 0) {
carbon = false;
+ } else if (originalSender !== Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
+ // ignore this carbon copy
+ return true;
}
jsxc.debug('Incoming forwarded message', message);
@@ -5298,6 +5309,11 @@ jsxc.gui.window = {
msg = msg.replace(/^\/me /, '<i title="/me">' + jsxc.removeHTML(bidData.name || bid) + '</i> ');
}
+ // hide unprocessed otr messages
+ if (msg.match(/^\?OTR([:,|?]|[?v0-9x]+)/)) {
+ msg = '<i title="' + msg + '">' + $.t('Unreadable_OTR_message') + '</i>';
+ }
+
var msgDiv = $("<div>"),
msgTsDiv = $("<div>");
msgDiv.addClass('jsxc_chatmessage jsxc_' + direction);
@@ -5675,7 +5691,8 @@ jsxc.gui.template.get = function(name, bid, msg) {
// prevent 404
ret = ret.replace(/\{\{root\}\}/g, ph.root);
- ret = $(ret);
+ // encapsulate template to find all desired elements in the next step
+ ret = $('<div>' + ret + '</div>');
ret.find('[data-var]').each(function() {
var key = $(this).attr('data-var');
@@ -5688,6 +5705,9 @@ jsxc.gui.template.get = function(name, bid, msg) {
}
});
+ // remove encapsulation
+ ret = ret.find('>*');
+
ret.localize(ph);
return ret;
@@ -6078,7 +6098,9 @@ jsxc.muc = {
li.click(jsxc.muc.showJoinChat);
- $('#jsxc_menu ul .jsxc_about').before(li);
+ if ($('#jsxc_menu .jsxc_joinChat').length === 0) {
+ $('#jsxc_menu ul .jsxc_about').before(li);
+ }
},
/**
@@ -11087,7 +11109,7 @@ jsxc.xmpp.bookmarks = {};
/**
* Determines if server is able to store bookmarks.
- *
+ *
* @return {boolean} True: Server supports bookmark storage
*/
jsxc.xmpp.bookmarks.remote = function() {
@@ -11150,7 +11172,7 @@ jsxc.xmpp.bookmarks.loadFromLocal = function() {
/**
* Load bookmarks from remote storage.
- *
+ *
* @private
*/
jsxc.xmpp.bookmarks.loadFromRemote = function() {
@@ -11208,7 +11230,11 @@ jsxc.xmpp.bookmarks.loadFromRemote = function() {
if (err.reasons[0] === 'item-not-found') {
jsxc.debug('create bookmark node');
- bookmarks.createBookmarksNode();
+ bookmarks.createBookmarksNode(function() {
+ jsxc.debug('Bookmark node created.');
+ }, function() {
+ jsxc.debug('Could not create bookmark node.');
+ });
} else {
jsxc.debug('[XMPP] Could not create bookmark: ' + err.type, err.reasons);
}
@@ -11751,31 +11777,53 @@ jsxc.xmpp.httpUpload.discoverUploadService = function() {
jsxc.debug('discover http upload service');
+ self.queryItemForUploadService(self.conn.domain);
+
self.conn.disco.items(self.conn.domain, null, function(items) {
$(items).find('item').each(function() {
var jid = $(this).attr('jid');
- var discovered = false;
- self.conn.disco.info(jid, null, function(info) {
- var httpUploadFeature = $(info).find('feature[var="' + self.CONST.NS.HTTPUPLOAD + '"]');
- var httpUploadMaxSize = $(info).find('field[var="max-file-size"]');
+ if (self.ready) {
+ // abort, because we already found a service
+ return false;
+ }
- if (httpUploadFeature.length > 0) {
- jsxc.debug('http upload service found', jid);
+ self.queryItemForUploadService(jid);
+ });
+ });
+};
- jsxc.options.set('httpUpload', {
- server: jid,
- name: $(info).find('identity').attr('name'),
- maxSize: parseInt(httpUploadMaxSize.text())
- });
+/**
+ * Query item for upload service.
+ *
+ * @param {String} jid
+ * @param {Function} cb Callback on success
+ * @memberOf jsxc.xmpp.httpUpload
+ */
+jsxc.xmpp.httpUpload.queryItemForUploadService = function(jid, cb) {
+ var self = jsxc.xmpp.httpUpload;
- discovered = true;
- self.ready = true;
- }
+ jsxc.debug('query ' + jid + ' for upload service');
+
+ self.conn.disco.info(jid, null, function(info) {
+ var httpUploadFeature = $(info).find('feature[var="' + self.CONST.NS.HTTPUPLOAD + '"]');
+ var httpUploadMaxSize = $(info).find('field[var="max-file-size"]');
+
+ if (httpUploadFeature.length > 0) {
+ jsxc.debug('http upload service found on ' + jid);
+
+ jsxc.options.set('httpUpload', {
+ server: jid,
+ name: $(info).find('identity').attr('name'),
+ maxSize: parseInt(httpUploadMaxSize.text())
});
- return !discovered;
- });
+ self.ready = true;
+
+ if (typeof cb === 'function') {
+ cb.call(info);
+ }
+ }
});
};
diff --git a/build/js/jsxc/jsxc.min.js b/build/js/jsxc/jsxc.min.js
index 2624413..b3304fd 100644
--- a/build/js/jsxc/jsxc.min.js
+++ b/build/js/jsxc/jsxc.min.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v3.1.0-beta - 2017-01-23
+ * jsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 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 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
-var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"3.1.0-beta",master:!1,role_allocation:!1,to:[],toBusy:null,toNotification:null,toNotificationDelay:500,keepaliveInterval:null,reconnect:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,currentState:null,currentUIState: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\.)[^\s<>'"]+/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"},HIDDEN:"hidden",SHOWN:"shown",STATE:{INITIATING:0,PREVCONFOUND:1,SUSPEND:2,TRYTOINTERCEPT:3,INTERCEPTED:4,ESTABLISHING:5,READY:6},UISTATE:{INITIATING:0,READY:1}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),day=("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,date="function"==typeof msgDate.toLocaleDateString?msgDate.toLocaleDateString():day+"."+month+"."+year,time="function"==typeof msgDate.toLocaleTimeString?msgDate.toLocaleTimeString():hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+" "+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(jsxc.changeState(jsxc.CONST.STATE.INITIATING),options&&options.loginForm&&"boolean"==typeof options.loginForm.attachIfFound&&!options.loginForm.ifFound&&(options.loginForm.ifFound=options.loginForm.attachIfFound?"attach":"pause"),options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){if(jsxc.bid){var local=jsxc.storage.getUserItem("options")||{};return"undefined"!=typeof local[key]?local[key]:jsxc.options[key]}return 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.languages&&navigator.languages.length>0?navigator.languages[0].substr(0,2):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,window.i18next.init({lng:lang,fallbackLng:"en",resources:I18next,debug:jsxc.storage.getItem("debug")===!0,interpolation:{prefix:"__",suffix:"__"}},function(){window.jqueryI18next.init(window.i18next,$,{tName:"t",i18nName:"i18next",handleName:"localize"})}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1),$(document).on("attached.jsxc",jsxc.registerLogout);var isStorageAttachParameters=jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.storage.getItem("jid"),isOptionsAttachParameters=jsxc.options.xmpp.rid&&jsxc.options.xmpp.sid&&jsxc.options.xmpp.jid,isForceLoginForm=jsxc.options.loginForm&&"force"===jsxc.options.loginForm.ifFound&&jsxc.isLoginForm();if(!isStorageAttachParameters&&!isOptionsAttachParameters||isForceLoginForm){if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return jsxc.changeState(jsxc.CONST.STATE.SUSPEND),void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));jsxc.changeState(jsxc.CONST.STATE.TRYTOINTERCEPT),"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(ev){return ev.preventDefault(),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(jsxc.options.xmpp.jid,jsxc.options.xmpp.password))}else jsxc.submitLoginForm()}),!1}),jsxc.changeState(jsxc.CONST.STATE.INTERCEPTED)}else(!jsxc.isLoginForm()||jsxc.options.loginForm&&"attach"===jsxc.options.loginForm.ifFound)&&(jsxc.changeState(jsxc.CONST.STATE.PREVCONFOUND),"undefined"==typeof jsxc.storage.getItem("alive")?jsxc.onMaster():jsxc.checkMaster())},start:function(){var args=arguments;return jsxc.role_allocation&&!jsxc.master?(jsxc.debug("There is an other master tab"),!1):jsxc.xmpp.conn&&jsxc.xmpp.connected?(jsxc.debug("We are already connected"),!1):(3===args.length&&$(document).one("attached.jsxc",function(){jsxc.xmpp.onRidChange(jsxc.xmpp.conn._proto.rid),jsxc.onMaster()}),void jsxc.checkMaster(function(){jsxc.xmpp.login.apply(this,args)}))},registerLogout:function(){if(null!==jsxc.options.logoutElement&&$(jsxc.options.logoutElement).length>0){var logout=function(ev){ev.stopPropagation(),ev.preventDefault(),jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement=$(jsxc.options.logoutElement),jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}},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.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.registerLogout(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own"),jsxc.gui.restore()},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.startKeepAlive(),jsxc.role_allocation=!0,jsxc.xmpp.login()},checkMaster:function(cb){jsxc.debug("check master"),cb=cb&&"function"==typeof cb?cb:jsxc.onMaster,"undefined"==typeof jsxc.storage.getItem("alive")?cb.call():(jsxc.to.push(window.setTimeout(cb,1e3)),jsxc.keepAlive("slave"))},masterActions:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated){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,jsxc.options.get("otr").enable&&jsxc.otr.createDSA(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}},startKeepAlive:function(){jsxc.keepaliveInterval=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(role){var next=parseInt(jsxc.storage.getItem("alive"))+1;role=role||"master",jsxc.storage.setItem("alive",next+":"+role)},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepaliveInterval&&window.clearInterval(jsxc.keepaliveInterval),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 win=jsxc.storage.getUserItem("window",bid);return win?(jsxc.gui.window.init(bid),win.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,win.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.get(0)&&"function"==typeof form.get(0).submit?form.submit():form.find('[type="submit"]').length>0?form.find('[type="submit"]').click():jsxc.warn("Could not submit login form.")},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]];if("function"==typeof fn)return fn.apply(null,fnParams)},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},isExtraSmallDevice:function(){return $(window).width()<500},changeState:function(state){jsxc.currentState=state,jsxc.debug("State changed to "+Object.keys(jsxc.CONST.STATE)[state]),$(document).trigger("stateChange.jsxc",state)},changeUIState:function(state){jsxc.currentUIState=state,jsxc.debug("UI State changed to "+Object.keys(jsxc.CONST.UISTATE)[state]),$(document).trigger("stateUIChange.jsxc",state)}},jsxc.xmpp={conn:null,login:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated)return void jsxc.debug("Connection already 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=jsxc.options.xmpp.sid||null,rid=jsxc.options.xmpp.rid||null,jid=jsxc.options.xmpp.jid)}if(!jid)return void jsxc.warn("Jid required for login");jsxc.bid||(jsxc.bid=jsxc.jidToBid(jid));var url=jsxc.options.get("xmpp").url;if(!url)return void jsxc.warn("xmpp.url required for login");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("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),jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)}),jsxc.xmpp.conn.nextValidRid=jsxc.xmpp.onRidChange;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.changeState(jsxc.CONST.STATE.ESTABLISHING),sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.reconnect=!0,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,password||jsxc.options.xmpp.password,callback))},logout:function(complete){if(jsxc.triggeredFromElement="boolean"!=typeof complete||complete,!jsxc.master)return jsxc.storage.removeItem("sid"),!0;if(jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("unreadMsg"),$("body").click(),!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated)return!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(){if(jsxc.xmpp.conn.pause(),jsxc.xmpp.initNewConnection(),jsxc.xmpp.saveSessionParameter(),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":return void jsxc.submitLoginForm();case!1:return}jsxc.gui.dialog.close(),jsxc.xmpp.conn.resume(),jsxc.onMaster(),jsxc.changeState(jsxc.CONST.STATE.READY),$(document).trigger("attached.jsxc")},attached:function(){$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage,null,"message","headline"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence"),jsxc.gui.init();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.reconnect&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres(),jsxc.restoreCompleted||jsxc.gui.restore();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.saveSessionParameter(),jsxc.masterActions(),jsxc.changeState(jsxc.CONST.STATE.READY)},saveSessionParameter:function(){var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid)},initNewConnection:function(){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")},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("jid"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),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("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.gui.roster.ready=!1,$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepaliveInterval),jsxc.role_allocation=!1,jsxc.master=!1,jsxc.storage.removeItem("alive"),jsxc.changeState(jsxc.CONST.STATE.SUSPEND)},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:[],rnd:Math.random()}),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"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)},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){var bl=jsxc.storage.getUserItem("buddylist");return bl.indexOf(bid)>-1?(jsxc.debug("Auto approve contact request, because he is already in our contact list."),jsxc.xmpp.resFriendReq(jid,!0),"to"!==data.sub&&jsxc.xmpp.addBuddy(jid,data.name),!0):(jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add({msg:$.t("Friendship_request"),description:$.t("from")+" "+jid,type:"contact"},"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]: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+"): "+jsxc.CONST.STATUS[status]),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onChatMessage: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(),htmlBody=$(message).find('body[xmlns="'+Strophe.NS.XHTML+'"]');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")?jsxc.Message.OUT:jsxc.Message.IN;return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage({bid:bid,direction:direction,msg:body,encrypted:!1,forwarded:forwarded,stamp: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({msg:$.t("Unknown_sender"),description:$.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);"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}));var attachment;if(1===htmlBody.length){var httpUploadElement=htmlBody.find("a[data-type][data-name][data-size]");1===httpUploadElement.length&&(attachment={type:httpUploadElement.attr("data-type"),name:httpUploadElement.attr("data-name"),size:httpUploadElement.attr("data-size")},httpUploadElement.attr("data-thumbnail")&&httpUploadElement.attr("data-thumbnail").match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+\/]+$/i)&&(attachment.thumbnail=httpUploadElement.attr("data-thumbnail")),httpUploadElement.attr("href")&&httpUploadElement.attr("href").match(/^https:\/\//)&&(attachment.data=httpUploadElement.attr("href"),body=null),attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i)&&attachment.name.match(/^[\s\w.,-]+$/i)&&attachment.size.match(/^\d+$/i)||(attachment=void 0,jsxc.warn("Invalid file type, name or size.")))}return jsxc.otr.objects.hasOwnProperty(bid)&&body?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded,attachment:attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp,attachment:attachment}),!0},onHeadlineMessage:function(stanza){stanza=$(stanza);var from=stanza.attr("from"),domain=Strophe.getDomainFromJid(from);if(domain!==from){if(!jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from)))return!0}else if(domain!==Strophe.getDomainFromJid(jsxc.xmpp.conn.jid))return!0;var subject=stanza.find("subject:first").text()||$.t("Notification"),body=stanza.find("body:first").text();return jsxc.notice.add({msg:subject,description:body,type:domain===from?"announcement":null},"gui.showNotification",[subject,body,from]),!0},onRidChange:function(rid){jsxc.storage.setItem("rid",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(stanza){var received=$(stanza).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var receivedId=received.attr("id"),message=new jsxc.Message(receivedId);message.received()}return!0},sendMessage:function(message){var bid=message.bid,msg=message.htmlMsg,mucRoomNames=jsxc.xmpp.conn.muc&&jsxc.xmpp.conn.muc.roomNames?jsxc.xmpp.conn.muc.roomNames:[],isMucBid=mucRoomNames.indexOf(bid)>=0;jsxc.otr.objects.hasOwnProperty(bid)&&!isMucBid?jsxc.otr.objects[bid].sendMsg(msg,message):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,message)},_sendMessage:function(jid,msg,message){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat";message=message||{};var xmlMsg=$msg({to:jid,type:type,id:message._uid});if(message.type===jsxc.Message.HTML){xmlMsg.c("html",{xmlns:Strophe.NS.XHTML_IM});var body=Strophe.xmlElement("body",{xmlns:Strophe.NS.XHTML});body.innerHTML=msg,xmlMsg.node.appendChild(body)}else xmlMsg.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.chatstates&&!jsxc.xmpp.chatState.isDisabled()&&xmlMsg.up().c("active",{xmlns:Strophe.NS.CHATSTATES}),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){if(err!==!1)return jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable()}},jsxc.fileTransfer={},jsxc.fileTransfer.formatByte=function(byte){var i,s=["","KB","MB","GB","TB"];for(i=1;i<s.length&&!(byte<1024);i++)byte/=1024;return Math.round(10*byte)/10+s[i-1]},jsxc.fileTransfer.startGuiAction=function(jid){var bid=jsxc.jidToBid(jid),res=Strophe.getResourceFromJid(jid);return res||jsxc.xmpp.httpUpload.ready?void jsxc.fileTransfer.showFileSelection(jid):void jsxc.fileTransfer.selectResource(bid,jsxc.fileTransfer.startGuiAction)},jsxc.fileTransfer.selectResource=function(bid,success_cb,error_cb){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(jid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid))||[];null===res&&1===resources.length&&1===fileCapableRes.length?(res=fileCapableRes[0],jid=bid+"/"+res,success_cb(jid)):fileCapableRes.indexOf(res)>=0?success_cb(bid+"/"+res):fileCapableRes.indexOf(res)<0&&jsxc.gui.window.selectResource(bid,$.t("Your_contact_uses_multiple_clients_"),function(data){"unavailable"===data.status?(jsxc.gui.window.hideOverlay(bid),"function"==typeof error_cb&&error_cb()):"selected"===data.status&&success_cb(bid+"/"+data.result)},fileCapableRes)},jsxc.fileTransfer.showFileSelection=function(jid){var bid=jsxc.jidToBid(jid),msg=$('<div><div><label><input type="file" name="files" /><label></div></div>');msg.addClass("jsxc_chatmessage"),jsxc.gui.window.showOverlay(bid,msg,!0),msg.find("label").click(),msg.find('[type="file"]').change(function(ev){var file=ev.target.files[0];file&&jsxc.fileTransfer.fileSelected(jid,msg,file)})},jsxc.fileTransfer.fileSelected=function(jid,msg,file){var bid=jsxc.jidToBid(jid);if("webrtc"!==file.transportMethod&&jsxc.xmpp.httpUpload.ready&&file.size>jsxc.options.get("httpUpload").maxSize)return jsxc.debug("File too large for http upload."),file.transportMethod="webrtc",void jsxc.fileTransfer.selectResource(bid,function(jid){jsxc.fileTransfer.fileSelected(jid,msg,file)},function(){var maxSize=jsxc.fileTransfer.formatByte(jsxc.options.get("httpUpload").maxSize),fileSize=jsxc.fileTransfer.formatByte(file.size);jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("File_too_large")+" ("+fileSize+" > "+maxSize+")"}),jsxc.gui.window.hideOverlay(bid)});!jsxc.xmpp.httpUpload.ready&&Strophe.getResourceFromJid(jid)&&(file.transportMethod="webrtc");var attachment=$("<div>");if(attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+file.type.replace(/\//,"-")),attachment.addClass("jsxc_"+file.type.replace(/^([^\/]+)\/.*/,"$1")),msg.empty().append(attachment),FileReader&&file.type.match(/^image\//)){var img=$('<img alt="preview">').attr("title",file.name);img.attr("src",jsxc.options.get("root")+"/img/loading.gif"),img.appendTo(attachment);var reader=new FileReader;reader.onload=function(){img.attr("src",reader.result)},reader.readAsDataURL(file)}else attachment.text(file.name+" ("+file.size+" byte)");$("<button>").addClass("jsxc_btn jsxc_btn-primary").text($.t("Send")).click(function(){jsxc.gui.window.hideOverlay(bid),msg.remove();var message=jsxc.gui.window.postMessage({bid:bid,direction:"out",attachment:{name:file.name,size:file.size,type:file.type,data:file.type.match(/^image\//)?img.attr("src"):null}});if("webrtc"===file.transportMethod){var sess=jsxc.webrtc.sendFile(jid,file);sess.sender.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size),sent===size&&message.received()})}else jsxc.xmpp.httpUpload.sendFile(file,message)}).appendTo(msg),$("<button>").addClass("jsxc_btn jsxc_btn-default").text($.t("Abort")).click(function(){jsxc.gui.window.hideOverlay(bid)}).appendTo(msg)},jsxc.fileTransfer.updateIcons=function(bid){var win=jsxc.gui.window.get(bid);if(win&&0!==win.length&&jsxc.xmpp.conn){if(jsxc.debug("Update file transfer icons for "+bid),jsxc.xmpp.httpUpload.ready)return void win.find(".jsxc_sendFile").removeClass("jsxc_disabled");var jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(bid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];fileCapableRes.indexOf(res)>-1||null===res&&1===fileCapableRes.length&&1===resources.length?win.find(".jsxc_sendFile").removeClass("jsxc_disabled"):win.find(".jsxc_sendFile").addClass("jsxc_disabled")}},$(document).on("update.gui.jsxc",function(ev,bid){jsxc.fileTransfer.updateIcons(bid)}),jsxc.gui={emotions:[["O:-) O:)","innocent"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","slight_smile"],[":-D :D","grin"],[":-( :(","disappointed"],[";-) ;)","wink"],[":-P :P","stuck_out_tongue"],["=-O","astonished"],[":kiss: :-*","kissing_heart"],["8-) :cool:","sunglasses"],[":-X :X","zipper_mouth"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":coffee:","coffee"],[":devil:","smiling_imp"],[":kiss: :kissing:","kissing"],["@->-- @-&gt;--","rose"],[":music:","musical_note"],[":love:","heart_eyes"],[":heart:","heart"],[":brokenheart:","broken_heart"],[":zzz:","zzz"],[":wait:","hand_splayed"]],favicon:null,regShortNames:null,emoticonList:{core:{":klaus:":["klaus"],":jabber:":["jabber"],":xmpp:":["xmpp"],":jsxc:":["jsxc"],":owncloud:":["owncloud"],":nextcloud:":["nextcloud"]},emojione:emojione.emojioneList},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&&(params.name,!0)&&$("#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)){jsxc.changeUIState(jsxc.CONST.UISTATE.INITIATING),jsxc.gui.regShortNames=new RegExp(emojione.regShortNames.source+"|("+Object.keys(jsxc.gui.emoticonList.core).join("|")+")","gi"),$("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),jsxc.gui.updatePresence(bid,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=Strophe.getBareJidFromJid(data.jid)+"\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),$(document).trigger("update.gui.jsxc",[bid])},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);if(jsxc.master||avatarSrc||(avatarSrc=0),null!==avatarSrc)setAvatar(avatarSrc);else{var handler_cb=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)},error_cb=function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)};Strophe.getBareJidFromJid(jid)===Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)?jsxc.xmpp.conn.vcard.get(handler_cb,error_cb):jsxc.xmpp.conn.vcard.get(handler_cb,Strophe.getBareJidFromJid(jid),error_cb)}},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();scrollWidth<width||(right>0&&(right=0),right<width-scrollWidth-padding&&(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(el){var self=el||$(this);self.disableSelection(),self.addClass("jsxc_list");var ul=self.find("ul"),slideUp=null;slideUp=function(){self.removeClass("jsxc_opened"),$("body").off("click",null,slideUp)},$(this).click(function(){return self.hasClass("jsxc_opened")?$("body").off("click",null,slideUp):($("body").click(),$("body").one("click",slideUp)),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).one("complete.dialog.jsxc",function(){setTimeout(function(){0===$("#jsxc_username").val().length?$("#jsxc_username").focus():$("#jsxc_password").focus()},50)}),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),{name:"smp"}),$("#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("smp"),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:$.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){$("#jsxc_userlist").empty(),$.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)"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}$.fn&&$.fn.jquery&&(userInfo+="<b>jQuery:</b> "+$.fn.jquery+"<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="";if(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)return content},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 cb=function(success){"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)};return jsxc.options.saveSettinsPermanent.call(this,data,cb),!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)},showNotification:function(subject,body,from){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("notification"));dialog.find("h3").text(subject),dialog.find(".jsxc_msg").text(body),from?dialog.find(".jsxc_meta").text($.t("from")+" "+from):dialog.find(".jsxc_meta").hide()},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_inner 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))),$('[data-bid="'+bid+'"]').each(function(){var el=$(this);el.attr("data-status",pres),el.find(".jsxc_avatar").length>0&&(el=el.find(".jsxc_avatar")),el.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:"],a[href^="xmpp:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *(mailto|xmpp):/,"").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())},shortnameToImage:function(str){str=str.replace(jsxc.gui.regShortNames,function(shortname){if(!("undefined"!=typeof shortname&&""!==shortname&&(shortname in jsxc.gui.emoticonList.emojione||shortname in jsxc.gui.emoticonList.core)))return shortname;var src,filename;jsxc.gui.emoticonList.core[shortname]?(filename=jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length-1].replace(/^:([^:]+):$/,"$1"),src=jsxc.options.root+"/img/emotions/"+filename+".svg"):jsxc.gui.emoticonList.emojione[shortname]&&(filename=jsxc.gui.emoticonList.emojione[shortname].fname,src=jsxc.options.root+"/lib/emojione/assets/svg/"+filename+".svg");var div=$("<div>");return div.addClass("jsxc_emoticon"),div.css("background-image","url("+src+")"),div.attr("title",shortname),div.prop("outerHTML")});var obj=$("<div>"+str+"</div>");return 1===obj.find(".jsxc_emoticon").length&&0===obj.text().replace(/ /,"").length&&1===obj.find("*").length&&(obj.find(".jsxc_emoticon").addClass("jsxc_large"),str=obj.prop("outerHTML")),str},restore:function(){jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)}},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 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),$("#jsxc_windowList").addClass("jsxc_roster_"+rosterState);var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence .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_roster > p").remove(),jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_msg").click(function(){return jsxc.gui.window.open(bid),!1}),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"),$("body").click(),bud.find(".jsxc_menu").hasClass("jsxc_open")||(bud.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){bud.find(".jsxc_menu").removeClass("jsxc_open")})),!1};bud.find(".jsxc_more").click(expandClick),bud.find(".jsxc_vcard").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"});for(var history=jsxc.storage.getUserItem("history",bid)||[],i=0;history.length>i;){var message=new jsxc.Message(history[i]);if(message.direction!==jsxc.Message.SYS){$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(message.msg);break}i++}$(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;data.name||(data.name=bid);var status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;if($(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||thisStatus<status)return $(this).before(li),insert=!0,!1}),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_lastmsg, .jsxc_more"),input=$('<input type="text" name="name"/>');$("body").click(),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(state){var duration,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList");return state||(state=jsxc.storage.getUserItem("roster")===jsxc.CONST.HIDDEN?jsxc.CONST.SHOWN:jsxc.CONST.HIDDEN),"shown"===state&&jsxc.isExtraSmallDevice()&&jsxc.gui.window.hide(),jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),wl.removeClass("jsxc_roster_hidden jsxc_roster_shown").addClass("jsxc_roster_"+state),duration=1e3*parseFloat(roster.css("transitionDuration")||0),setTimeout(function(){jsxc.gui.updateWindowListSB()},duration),$(document).trigger("toggle.roster.jsxc",[state,duration]),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=$.extend({name:""},o),src=$('<div data-name="'+opt.name+'" id="jsxc_dialog" />').append(data);return $.magnificPopup.open({items:{src:src},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(name){jsxc.debug("close dialog"),"string"==typeof name&&name.length>0&&!jsxc.el_exists("#jsxc_dialog[data-name="+name+"]")||$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){function resizeTextarea(){$(this).data("originalHeight")||$(this).data("originalHeight",$(this).outerHeight()),$(this).outerHeight()<this.scrollHeight-1&&$(this).val()&&$(this).height(1.5*$(this).data("originalHeight"))}if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).appendTo("#jsxc_windowList > ul"),data=jsxc.storage.getUserItem("buddy",bid);win.data("jid",data.jid);var expandClick=function(){return win.trigger("extra.jsxc"),$("body").click(),win.find(".jsxc_menu").hasClass("jsxc_open")||(win.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){win.find(".jsxc_menu").removeClass("jsxc_open")})),!1};win.find(".jsxc_more").click(expandClick),win.find(".jsxc_menu").click(function(){$("body").click()}),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_sendFile").click(function(){$("body").click(),jsxc.gui.window.sendFile(bid)}),win.find(".jsxc_tools").click(function(){return!1});var textinputBlurTimeout;if(win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13!==ev.which&&jsxc.xmpp.chatState.startComposing(bid),13!==ev.which||ev.shiftKey||(body="",jsxc.xmpp.chatState.endComposing(bid)),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){return 13!==ev.which||ev.shiftKey||!$(this).val()?void resizeTextarea.call(this):(jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.OUT,msg:$(this).val()}),$(this).css("height","").val(""),void ev.preventDefault())}).focus(function(){textinputBlurTimeout&&clearTimeout(textinputBlurTimeout),jsxc.gui.readMsg(bid),resizeTextarea.call(this)}).blur(function(){var self=$(this);textinputBlurTimeout=setTimeout(function(){self.css("height","")},1200)}).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_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){jsxc.gui.window.resize(win,ui)},start:function(){win.removeClass("jsxc_normal")},stop:function(){win.addClass("jsxc_normal")}}),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),$.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}),jsxc.gui.window.hide(bid)}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>");li.append(jsxc.gui.shortnameToImage(":"+val[1]+":")),li.find("div").attr("title",ins),li.click(function(){win.find(".jsxc_textinput").val(win.find(".jsxc_textinput").val()+ins),win.find(".jsxc_textinput").focus()}),win.find(".jsxc_emoticons ul").prepend(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},resize:function(win,ui,outer){var bid;if("object"==typeof win)bid=win.attr("data-bid");else{if("string"!=typeof win)return void jsxc.warn("jsxc.gui.window.resize has to be called either with bid or window object.");bid=win,win=jsxc.gui.window.get(bid)}win.attr("data-default-height")||win.attr("data-default-height",win.find(".ui-resizable").height()),win.attr("data-default-width")||win.attr("data-default-width",win.find(".ui-resizable").width());var outer_height_diff=outer?win.find(".jsxc_window").outerHeight()-win.find(".ui-resizable").height():0;ui=$.extend({size:{width:parseInt(win.attr("data-default-width")),height:parseInt(win.attr("data-default-height"))+outer_height_diff}},ui||{}),outer&&(ui.size.height-=outer_height_diff),win.find(".slimScrollDiv").css({width:ui.size.width,height:ui.size.height}),win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height}),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])},fullsize:function(bid){var win=jsxc.gui.window.get(bid),size=jsxc.options.viewport.getSize();size.width-=10,size.height-=win.find(".jsxc_bar").outerHeight()+win.find(".jsxc_textinput").outerHeight(),jsxc.gui.window.resize(win,{size:size})},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);return jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid),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).remove(),jsxc.gui.updateWindowListSB()},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.hasClass("jsxc_min")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){return jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid),duration=0;jsxc.isExtraSmallDevice()&&(parseFloat($("#jsxc_roster").css("right"))>=0&&(duration=jsxc.gui.roster.toggle()),jsxc.gui.window.hide(),jsxc.gui.window.fullsize(bid)),win.removeClass("jsxc_min").addClass("jsxc_normal"),win.find(".jsxc_window").css("bottom","0"),setTimeout(function(){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;left<0&&jsxc.gui.scrollWindowListBy(left*-1),right<0&&jsxc.gui.scrollWindowListBy(right)}},duration),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){var hide=function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)};bid?hide(bid):$("#jsxc_windowList > ul > li").each(function(){var el=$(this);el.hasClass("jsxc_min")||hide(el.attr("data-bid"))})},_hide:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_normal").addClass("jsxc_min"),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),win.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(message){"object"!=typeof message||message instanceof jsxc.Message||(message=new jsxc.Message(message));var data=jsxc.storage.getUserItem("buddy",message.bid);!message.htmlMsg&&message.msg&&(message.htmlMsg=message.msg),message.msg=jsxc.removeHTML(message.msg),message.msg=jsxc.escapeHTML(message.msg),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&message.forwarded!==!0&&(message.direction=jsxc.Message.SYS,message.msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(message.direction="sys",message.msg=$.t("unencrypted_message_received")+" "+message.msg),message.encrypted="boolean"==typeof message.encrypted?message.encrypted:data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;try{message.save()}catch(err){jsxc.warn("Unable to save message.",err),message=new jsxc.Message({msg:"Unable to save that message. Please clear some chat histories.",direction:jsxc.Message.SYS})}return"in"!==message.direction||jsxc.gui.window.get(message.bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(message.bid),$(document).trigger("postmessagein.jsxc",[message.bid,message.htmlMsg])),message.direction===jsxc.Message.OUT&&jsxc.master&&message.forwarded!==!0&&message.htmlMsg&&jsxc.xmpp.sendMessage(message),jsxc.gui.window._postMessage(message),"out"===message.direction&&"?"===message.msg&&jsxc.options.get("theAnswerToAnything")!==!1&&("undefined"==typeof jsxc.options.get("theAnswerToAnything")||100*Math.random()%42<1)&&(jsxc.options.set("theAnswerToAnything",!0),jsxc.gui.window.postMessage(new jsxc.Message({bid:message.bid,direction:jsxc.Message.SYS,msg:"42"}))),message},_postMessage:function(message,restore){var bid=message.bid,win=jsxc.gui.window.get(bid),msg=message.msg,direction=message.direction,uid=message._uid;win.find(".jsxc_textinput").is(":not(:focus)")&&direction===jsxc.Message.IN&&!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+'">xmpp:'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">mailto:'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],":"+val[1]+":")}),msg=jsxc.gui.shortnameToImage(msg),msg=msg.replace(/(\r\n|\r|\n)/g,"<br />");var bidData=jsxc.storage.getUserItem("buddy",bid)||{};"in"===direction&&(msg=msg.replace(/^\/me /,'<i title="/me">'+jsxc.removeHTML(bidData.name||bid)+"</i> "));var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid.replace(/:/g,"-")),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(message.stamp)),message.isReceived()?msgDiv.addClass("jsxc_received"):msgDiv.removeClass("jsxc_received"),message.forwarded?msgDiv.addClass("jsxc_forwarded"):msgDiv.removeClass("jsxc_forwarded"),message.encrypted?msgDiv.addClass("jsxc_encrypted"):msgDiv.removeClass("jsxc_encrypted"),message.error?msgDiv.addClass("jsxc_error"):msgDiv.removeClass("jsxc_error"),msgDiv.attr("title",message.error),message.attachment&&message.attachment.name){var attachment=$("<div>");attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+message.attachment.type.replace(/\//,"-")),attachment.addClass("jsxc_"+message.attachment.type.replace(/^([^\/]+)\/.*/,"$1")),message.attachment.persistent===!1&&attachment.addClass("jsxc_notPersistent"),message.attachment.data&&attachment.addClass("jsxc_data"),message.attachment.type.match(/^image\//)&&message.attachment.thumbnail?$('<img alt="preview">').attr("src",message.attachment.thumbnail).attr("title",message.attachment.name).appendTo(attachment):attachment.text(message.attachment.name),message.attachment.data&&(attachment=$("<a>").append(attachment),attachment.attr("href",message.attachment.data),attachment.attr("download",message.attachment.name),message.attachment.data===message.msg&&msgDiv.find("div").first().empty()),msgDiv.find("div").first().append(attachment)}if("sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div class="jsxc_clear"/>'):"undefined"!=typeof message.stamp&&msgDiv.append(msgTsDiv),"sys"!==direction&&$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(msg),jsxc.Message.getDOM(uid).length>0?jsxc.Message.getDOM(uid).replaceWith(msgDiv):win.find(".jsxc_textarea").append(msgDiv),"object"==typeof message.sender&&null!==message.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof message.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(message.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(message.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(message.sender.jid),data.avatar),title=jsxc.jidToBid(message.sender.jid)}"string"==typeof message.sender.name&&(msgDiv.attr("data-name",message.sender.name),"string"!=typeof message.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,message.sender.name),""!==title&&(title="\n"+title),title=message.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+message.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title)),msgDiv.prev().length>0&&msgDiv.prev().find(".jsxc_avatar").attr("title")===avatarDiv.attr("title")&&avatarDiv.css("visibility","hidden")}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){var chat=jsxc.storage.getUserItem("chat",bid);if(chat){for(;null!==chat&&chat.length>0;){var c=chat.pop();c.bid=bid,c._uid=c.uid,delete c.uid;var message=new jsxc.Message(c);message.save(),jsxc.gui.window._postMessage(message,!0)}jsxc.storage.removeUserItem("chat",bid)}for(var history=jsxc.storage.getUserItem("history",bid);null!==history&&history.length>0;){var uid=history.pop();jsxc.gui.window._postMessage(new jsxc.Message(uid),!0)}},clear:function(bid){jsxc.storage.removeUserItem("chat",bid);var history=jsxc.storage.getUserItem("history",bid)||[];history.map(function(id){jsxc.storage.removeUserItem("msg",id)}),jsxc.storage.setUserItem("history",bid,[]);var win=jsxc.gui.window.get(bid);win.length>0&&win.find(".jsxc_textarea").empty()},receivedMessage:function(bid,uid){jsxc.warn("Using deprecated receivedMessage.");var message=new jsxc.Message(uid);message.received()},updateProgress:function(message,sent,size){var div=message.getDOM(),span=div.find(".jsxc_timestamp span");0===span.length&&(div.find(".jsxc_timestamp").append("<span>"),span=div.find(".jsxc_timestamp span")),span.text(" "+Math.round(sent/size*100)+"%"),sent===size&&span.remove()},showOverlay:function(bid,content,allowClose){var win=jsxc.gui.window.get(bid);win.find(".jsxc_overlay .jsxc_body").empty().append(content),win.find(".jsxc_overlay .jsxc_close").off("click").click(function(){jsxc.gui.window.hideOverlay(bid)}),allowClose!==!0?win.find(".jsxc_overlay .jsxc_close").hide():win.find(".jsxc_overlay .jsxc_close").show(),win.addClass("jsxc_showOverlay")},hideOverlay:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_showOverlay")},selectResource:function(bid,text,cb,res){if(res=res||jsxc.storage.getUserItem("res",bid)||[],cb=cb||function(){},res.length>0){var i,li,content=$("<div>"),list=$("<ul>");for(i=0;i<res.length;i++)li=$("<li>"),li.append($("<a>").text(res[i])),li.appendTo(list);list.find("a").click(function(ev){ev.preventDefault(),jsxc.gui.window.hideOverlay(bid),cb({status:"selected",result:$(this).text()})}),text&&$("<p>").text(text).appendTo(content),list.appendTo(content),jsxc.gui.window.showOverlay(bid,content)}else cb({status:"unavailable"})},smpRequest:function(bid,question){var content=$("<div>"),p=$("<p>");p.text($.t("smpRequestReceived")),p.appendTo(content);var abort=$("<button>");abort.text($.t("Abort")),abort.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid]&&jsxc.otr.objects[bid].sm.abort()}),abort.appendTo(content);var verify=$("<button>");verify.text($.t("Verify")),verify.addClass("jsxc_btn jsxc_btn-primary"),verify.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.otr.onSmpQuestion(bid,question)}),verify.appendTo(content),jsxc.gui.window.showOverlay(bid,content)},sendFile:function(jid){jsxc.fileTransfer.startGuiAction(jid)}},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?jsxc.escapeHTML(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=$(ret),ret.find("[data-var]").each(function(){var key=$(this).attr("data-var"),val="string"==typeof ph[key]?ph[key]:"(Unknown placeholder: "+key+")";"INPUT"===$(this).prop("tagName").toUpperCase()?$(this).val(val):$(this).text(val)}),ret.localize(ph),ret):(jsxc.debug("Template not available: "+name),name)},jsxc.Message=function(){this._uid=null,this._received=!1,this.encrypted=null,this.forwarded=!1,this.stamp=(new Date).getTime(),this.type=jsxc.Message.PLAIN,"string"==typeof arguments[0]&&arguments[0].length>0&&1===arguments.length?(this._uid=arguments[0],this.load(this._uid)):"object"==typeof arguments[0]&&null!==arguments[0]&&$.extend(this,arguments[0]),this._uid||(this._uid=(new Date).getTime()+":msg")},jsxc.Message.prototype.load=function(uid){var data=jsxc.storage.getUserItem("msg",uid);data||jsxc.debug("Could not load message with uid "+uid),$.extend(this,data)},jsxc.Message.prototype.save=function(){var history;if(this.bid&&(history=jsxc.storage.getUserItem("history",this.bid)||[],history.indexOf(this._uid)<0?history.length>jsxc.options.get("numberOfMsg")&&jsxc.Message.delete(history.pop()):history=null),Image&&this.attachment&&this.attachment.type.match(/^image\//i)&&this.attachment.data&&!this.attachment.thumbnail){var sHeight,sWidth,sx,sy,dHeight=100,dWidth=100,canvas=$("<canvas>").get(0);canvas.width=dWidth,canvas.height=dHeight;var ctx=canvas.getContext("2d"),img=new Image;img.src=this.attachment.data,img.height>img.width?(sHeight=img.width,sWidth=img.width,sx=0,sy=(img.height-img.width)/2):(sHeight=img.height,sWidth=img.height,sx=(img.width-img.height)/2,sy=0),ctx.drawImage(img,sx,sy,sWidth,sHeight,0,0,dWidth,dHeight),this.attachment.thumbnail=canvas.toDataURL(),"out"===this.direction&&(this.attachment.data=null)}var data;return this.attachment&&this.attachment.size>jsxc.options.maxStorableSize&&"in"===this.direction&&(jsxc.debug("Attachment to large to store"),data=this.attachment.data,this.attachment.data=null,this.attachment.persistent=!1),jsxc.storage.setUserItem("msg",this._uid,this),history&&(history.unshift(this._uid),jsxc.storage.setUserItem("history",this.bid,history)),data&&this.attachment&&(this.attachment.data=data),this},jsxc.Message.prototype.delete=function(){jsxc.Message.delete(this._uid)},jsxc.Message.prototype.getDOM=function(){return jsxc.Message.getDOM(this._uid)},jsxc.Message.prototype.received=function(){this._received=!0,this.save(),this.getDOM().addClass("jsxc_received")},jsxc.Message.prototype.isReceived=function(){return this._received},jsxc.Message.delete=function(uid){var data=jsxc.storage.getUserItem("msg",uid);if(data&&(jsxc.storage.removeUserItem("msg",uid),data.bid)){var history=jsxc.storage.getUserItem("history",data.bid)||[];history=$.grep(history,function(el){return el!==uid}),jsxc.storage.setUserItem("history",data.bid,history)}},jsxc.Message.getDOM=function(uid){return $("#"+uid.replace(/:/g,"-"))},jsxc.Message.IN="in",jsxc.Message.OUT="out",jsxc.Message.SYS="sys",jsxc.Message.HTML="html",jsxc.Message.PLAIN="plain",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).off("presence.jsxc",jsxc.muc.onPresence),$(document).off("error.presence.jsxc",jsxc.muc.onPresenceError),$(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 jsxc_groupcontacticon").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul .jsxc_about").before(li)},showJoinChat:function(r,p){function loadRoomList(server){return server?void self.conn.muc.listRooms(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").show().removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(stanza){var errTextMsg=$(stanza).find("error text").text()||null;jsxc.warn("Could not load rooms",errTextMsg),errTextMsg&&dialog.find(".jsxc_inputinfo.jsxc_server").show().text(errTextMsg),$(stanza).find("error remote-server-not-found")&&dialog.find("#jsxc_server").addClass("jsxc_invalid"),dialog.find(".jsxc_inputinfo.jsxc_room").hide()}):void dialog.find(".jsxc_inputinfo").hide()}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);var serverInputTimeout;dialog.find("#jsxc_server").val(jsxc.options.get("muc").server),dialog.find("#jsxc_server").on("input",function(){var self=$(this);serverInputTimeout&&(clearTimeout(serverInputTimeout),dialog.find(".jsxc_inputinfo.jsxc_room").hide()),dialog.find(".jsxc_inputinfo.jsxc_server").hide().text(""),dialog.find("#jsxc_server").removeClass("jsxc_invalid"),self.val()&&self.val().match(/^[.-0-9a-zA-Z]+$/i)&&(dialog.find(".jsxc_inputinfo.jsxc_room").show().addClass("jsxc_waiting"),serverInputTimeout=setTimeout(function(){loadRoomList(self.val())},1800))}).trigger("input");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]),$("<p>").addClass("jsxc_warning").text(msg).appendTo(dialog.find(".jsxc_msg"))};$(document).on("error.muc.jsxc",error_handler),
-$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),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),server=dialog.find("#jsxc_server").val();if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(dialog.find("#jsxc_server").hasClass("jsxc_invalid"))return!1;if(room.match(/@(.*)$/)||(room+="@"+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"),password=$("#jsxc_password").val()||null;return jsxc.gui.window.clear(room),jsxc.storage.setUserItem("member",room,{}),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&&i18next.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}"muc_passwordprotected"===feature&&(dialog.find("#jsxc_password").parents(".form-group").removeClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required","required"),dialog.find("#jsxc_password").addClass("jsxc_invalid"))}),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 $("<p>").addClass("jsxc_warning").text($.t("You_already_joined_this_room")).appendTo(dialog.find(".jsxc_msg"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").remove(),void(dialog.find(".jsxc_continue").is(":hidden")&&"jsxc_password"!==$(this).attr("id")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),dialog.find("#jsxc_password").parents(".form-group").addClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required",""),dialog.find("#jsxc_password").removeClass("jsxc_invalid"),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");form.find('[type="checkbox"]').change(function(){$(this).val(this.checked?1:0)});var submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Save"));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){if(!jsxc.master)return void jsxc.tab.execMaster("muc.leave",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){if(!jsxc.master)return void jsxc.tab.execMaster("muc.destroy",room);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({bid:room,direction:jsxc.Message.SYS,msg:$.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),jsxc.storage.getUserItem("budy",room)&&(roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata))},initWindow:function(event,win){var self=jsxc.muc;if(!jsxc.xmpp.conn&&jsxc.master)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);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_settings").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)});var destroy=$("<a>");destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(destroy));var configure=$("<a>");if(configure.text($.t("Configure")),configure.addClass("jsxc_configure"),configure.hide(),configure.click(function(){self.showRoomConfiguration(bid)}),self.conn&&win.find(".jsxc_settings ul").append($("<li>").append(configure)),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(),nickname!==ownNickname||val.affiliation!==self.CONST.AFFILIATION.OWNER&&val.affiliation!==self.CONST.AFFILIATION.OWNER||configure.show()})}var leave=$("<a>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append($("<li>").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)||{},openWindow=!1,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),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&&(openWindow=!0,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({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0})})}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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])}),openWindow&&jsxc.gui.window.open(room),!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({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_enabled")})},171:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_disabled")})},172:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_non-anoymous")})},173:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_banned")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_kicked")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_affiliation")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_membersonly")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0})})},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.IN,msg:reason,sender:actor}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:reason}))},insertMember:function(room,nickname,memberdata){var win=jsxc.gui.window.get(room),jid=memberdata.jid,ownBid=jsxc.jidToBid(jsxc.storage.getItem("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)===ownBid&&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,scrollWidth<width||left>0?left=0:left<width-scrollWidth&&(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(id&&jsxc.el_exists(jsxc.Message.getDOM(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.init(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:body,stamp:stamp,sender: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({bid:room,direction:jsxc.Message.SYS,msg:$.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||($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_item-not-found")}):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_forbidden")}):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_not-acceptable")}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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=$("<a>");$("<span>").addClass("jsxc_icon jsxc_bookmarkicon").appendTo(bo),$("<span>").text($.t("Bookmark")).appendTo(bo),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_menu ul").append($("<li>").append(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).on("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,val.fnName,val.fnParams,key)}},add:function(data,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>"),msg=data.msg,description=data.description;notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),data.type&&notice.addClass("jsxc_"+data.type+"icon"),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num);var saved=jsxc.storage.getUserItem("notices")||{};if(id||(saved[nid]={msg:msg,description:description,type:data.type,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)),Object.keys(saved).length>3&&0===list.find(".jsxc_closeAll").length){var closeAll=$("<li>");closeAll.addClass("jsxc_closeAll jsxc_deleteicon jsxc_warning"),closeAll.text($.t("Close_all")),closeAll.prependTo(list),closeAll.click(jsxc.notice.removeAll)}else Object.keys(saved).length<=3&&0!==list.find(".jsxc_closeAll").length&&list.find(".jsxc_closeAll").remove()},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),Object.keys(s).length<=3&&0!==$("#jsxc_notice .jsxc_closeAll").length&&$("#jsxc_notice .jsxc_closeAll").remove()},removeAll:function(){jsxc.notice._num=0,jsxc.storage.setUserItem("notices",{}),$("#jsxc_notice ul").empty(),$("#jsxc_notice > span").text("")},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){if(val.fnName===fnName)return has=!0,!1}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){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},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add({msg:$.t("Notifications")+"?",description:$.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:!1,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,sid:null,rid:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},formFound:null,loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,ifFound:"attach",startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(data,cb){cb(!0)},carbons:{enable:!0},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,withCredentials:!1,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html",viewport:{getSize:function(){var w=$(window).width()-$("#jsxc_windowListSB").width(),h=$(window).height();return"shown"===jsxc.storage.getUserItem("roster")&&(w-=$("#jsxc_roster").outerWidth(!0)),{width:w,height:h}}},maxStorableSize:1e6,fileTransfer:{httpUpload:{enable:!0}},chatState:{enable:!0},screenMediaExtension:{firefox:"",chrome:""}},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:bid,direction:jsxc.Message.IN,msg:d.msg,encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp,attachment:d.attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp})},sendMessage:function(jid,msg,message){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,message)},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:bid,direction:jsxc.Message.SYS,msg:$.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:bid,direction:"sys",msg: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:bid,direction:jsxc.Message.SYS,msg:$.t("private_conversation_aborted")})):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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":jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_request_received")}),jsxc.gui.window.smpRequest(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:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_failed")}),jsxc.storage.removeUserItem("smp",bid),jsxc.gui.dialog.close("smp");break;case"abort":jsxc.gui.window.hideOverlay(bid),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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,attachment:meta.attachment})}),jsxc.otr.objects[bid].on("io",function(msg,message){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,message)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:"[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($.t("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question")),$("#jsxc_dialog > div:eq(2)").show()):($("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog > div:eq(3)").show()),$("#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={},void(OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2});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.xmpp.conn.pause(),jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started in fallback mode."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(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))},jsxc.debug("DSA key creation started."),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()),$.each(jsxc.storage.getUserItem("windowlist")||[],function(index,val){jsxc.otr.create(val)})},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback&&(jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close()),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 uk&&!jsxc.bid&&jsxc.warn("Unable to create user prefix"),self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==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){if(!(val instanceof jQuery))return 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&&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){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."),e.newValue&&e.newValue.match(/:master$/)?void jsxc.warn("Master request from master. Something went wrong... :-("):void jsxc.keepAlive();if(!jsxc.master&&("alive"===key||"alive_busy"===key))return jsxc.to=$.grep(jsxc.to,function(timeout){return window.clearTimeout(timeout),!1}),"undefined"==typeof e.newValue||null===e.newValue?void jsxc.xmpp.disconnected():(jsxc.to.push(window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60))),void(jsxc.role_allocation||jsxc.onSlave()));if(jsxc.master&&"sid"===key&&!e.newValue&&jsxc.xmpp.logout(!1),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("^history"+jsxc.storage.SEP)))for(var uid,el,message,history=JSON.parse(e.newValue);history.length>0;)uid=history.pop(),message=new jsxc.Message(uid),el=message.getDOM(),0===el.length?(jsxc.master&&message.direction===jsxc.Message.OUT&&jsxc.xmpp.sendMessage(message.bid,message.msg,message._uid),jsxc.gui.window._postMessage(message,!0)):message.isReceived()&&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("smp"),jsxc.gui.window.hideOverlay(bid),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.gui.window.smpRequest(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),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(0===jsxc.gui.roster.getItem(bid).length)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)}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)),"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(e.newValue),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)),"_cmd"===key&&e.newValue&&(n=JSON.parse(e.newValue)||{},jsxc.storage.removeUserItem("_cmd"),n.cmd&&n.target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.debug("Execute tab cmd: "+n.cmd),jsxc.exec(n.cmd,n.params)))}}}},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.tab={CONST:{MASTER:"master",SLAVE:"slave"},exec:function(target,cmd,params){params=Array.prototype.slice.call(arguments,2),1===params.length&&$.isArray(params[0])&&(params=params[0]),target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.exec(cmd,params),jsxc.master)||jsxc.storage.setUserItem("_cmd",{target:target,cmd:cmd,params:params,rnd:Math.random()})},execMaster:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.MASTER),jsxc.tab.exec.apply(this,args)},execSlave:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.SLAVE),jsxc.tab.exec.apply(this,args)}},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"],reqFileFeatures:["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:file-transfer:3"],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("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onIncoming,self)),manager.on("terminated",$.proxy(self.onTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("receivedFile",$.proxy(self.onReceivedFile,self)),manager.on("sentFile",function(sess,metadata){jsxc.debug("sent "+metadata.hash)}),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("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,xhrFields:{withCredentials:jsxc.options.get("RTCPeerConfig").withCredentials},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,features){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];if(!features)return res;"string"==typeof features&&(features=[features]);var available=[];return $.each(res,function(i,r){self.conn.caps.hasFeatureByJid(bid+"/"+r,features)&&available.push(r)}),available},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_tools .jsxc_settings").after(div);var screenMediaExtension=jsxc.options.get("screenMediaExtension")||{},browser=self.conn.jingle.RTC.webrtcDetectedBrowser;if(screenMediaExtension[browser]||jsxc.storage.getItem("debug")){var a=$("<a>");a.text($.t("Share_screen")),a.addClass("jsxc_shareScreen jsxc_video"),a.attr("href","#"),win.find(".jsxc_settings .jsxc_menu li:last").after($("<li>").append(a))}self.updateIcon(win.data("bid"))}},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 res=Strophe.getResourceFromJid(jid),el=win.find(".jsxc_video"),capableRes=self.getCapableRes(jid,self.reqVideoFeatures),targetRes=res;null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){if(capableRes.indexOf(val)>-1)return targetRes=val,!1}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){$(this).hasClass("jsxc_shareScreen")?self.startScreenSharing(jid):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))})},onMediaFailure:function(ev,err){var msg,self=jsxc.webrtc;switch(err=err||{},self.setStatus("media failure"),err.name){case"NotAllowedError":case"PERMISSION_DENIED":msg=$.t("PermissionDeniedError");break;case"HTTPS_REQUIRED":case"EXTENSION_UNAVAILABLE":msg=$.t(err.name);break;default:msg=$.t(err.name)!==err.name?$.t(err.name):$.t("UNKNOWN_ERROR")}jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jsxc.webrtc.last_caller),direction:jsxc.Message.SYS,msg:$.t("Media_failure")+": "+msg+" ("+err.name+")."}),jsxc.gui.dialog.close(),jsxc.debug("media failure: "+err.name)},onIncoming:function(session){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;if("FileTransferSession"===type)self.onIncomingFileTransfer(session);else if("MediaSession"===type){var reqMedia=!1;$.each(session.pc.remoteDescription.contents,function(){"both"===this.senders&&(reqMedia=!0)}),session.call=reqMedia,reqMedia?self.onIncomingCall(session):self.onIncomingStream(session)}else jsxc.warn("Unknown session type.")},onIncomingStream:function(session){function acceptIncomingStream(session){jsxc.gui.dialog.close(),jsxc.gui.showVideoWindow(session.peerID),session.accept()}jsxc.debug("incoming stream from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postScreenMessage(bid,$.t("Incoming_stream"),session.sid),jsxc.notification.notify($.t("Incoming_stream"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void acceptIncomingStream(session);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"),acceptIncomingStream(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onIncomingFileTransfer:function(session){jsxc.debug("incoming file transfer from "+session.peerID);var buddylist=jsxc.storage.getUserItem("buddylist")||[],bid=jsxc.jidToBid(session.peerID);if(buddylist.indexOf(bid)>-1){session.accept();var message=jsxc.gui.window.postMessage({_uid:session.sid+":msg",bid:bid,direction:jsxc.Message.IN,attachment:{name:session.receiver.metadata.name,type:session.receiver.metadata.type||"application/octet-stream"}});session.receiver.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size)})}},onIncomingCall:function(session){jsxc.debug("incoming call from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(bid,$.t("Incoming_call"),session.sid),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.acceptIncomingCall(session);var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){self.acceptIncomingCall(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},acceptIncomingCall:function(session){$(document).trigger("accept.call.jsxc");var self=jsxc.webrtc;jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.setStatus("Accept call"),self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(session.peerID);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()},onTerminated:function(session,reason){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;"MediaSession"===type&&self.onCallTerminated(session,reason)},onCallTerminated:function(session,reason){var self=jsxc.webrtc;self.setStatus("call terminated "+session.peerID+(reason&&reason.condition?reason.condition:""));var bid=jsxc.jidToBid(session.peerID);if(self.localStream)if("function"==typeof self.localStream.getTracks){var tracks=self.localStream.getTracks();tracks.forEach(function(track){track.stop()})}else"function"==typeof self.localStream.stop?self.localStream.stop():jsxc.warn("Could not stop local stream");$(".jsxc_remotevideo").length&&($(".jsxc_remotevideo")[0].src=""),$(".jsxc_localvideo").length&&($(".jsxc_localvideo")[0].src=""),self.conn.jingle.localStream=null,self.localStream=null,self.remoteStream=null,jsxc.gui.closeVideoWindow(),jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),$(document).off("error.jingle");var msg=(reason&&reason.condition?": "+$.t("jingle_reason_"+reason.condition):"")+".";session.call?(msg=$.t("Call_terminated")+msg,jsxc.webrtc.postCallMessage(bid,msg,session.sid)):(msg=$.t("Stream_terminated")+msg,jsxc.webrtc.postScreenMessage(bid,msg,session.sid))},onCallRinging:function(){this.setStatus("ringing...",0),$(".jsxc_videoContainer").removeClass("jsxc_establishing").addClass("jsxc_ringing")},onRemoteStreamAdded:function(session,stream){var self=jsxc.webrtc;self.setStatus("Remote stream for session "+session.sid+" added."),self.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;self.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),self.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(self.attachMediaStream($("#jsxc_webrtc .jsxc_remotevideo"),stream),$("#jsxc_webrtc .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),$(element).show()},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_webrtc .jsxc_deviceAvailable").show():"failed"===state?(jsxc.gui.window.postMessage({bid:jsxc.jidToBid(session.peerID),direction:jsxc.Message.SYS,msg:$.t("ICE_connection_failure")}),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=jsxc.webrtc;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){jsxc.debug("media ready for outgoing call"),self.initiateOutgoingCall(jid,stream)},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},initiateOutgoingCall:function(jid,stream){var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(jid);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),self.setStatus("Initiate call"),$(document).one("error.jingle",function(ev,sid,error){error&&"offer"!==error.source||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.call=!0,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(jsxc.jidToBid(jid),$.t("Call_started"),session.sid)},hangUp:function(reason,text){jsxc.webrtc.conn.jingle.manager&&!$.isEmptyObject(jsxc.webrtc.conn.jingle.manager.peers)?jsxc.webrtc.conn.jingle.terminate(null,reason,text):jsxc.gui.closeVideoWindow(),$(document).trigger("callterminated.jingle")},startScreenSharing:function(jid){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.initiateScreenSharing(jid,stream)},"mediafailure.jingle":function(ev,err){jsxc.gui.dialog.close();var browser=self.conn.jingle.RTC.webrtcDetectedBrowser,screenMediaExtension=jsxc.options.get("screenMediaExtension")||{};screenMediaExtension[browser]&&("EXTENSION_UNAVAILABLE"===err.name||"NotAllowedError"===err.name&&"firefox"===browser)&&setTimeout(function(){jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jid),direction:jsxc.Message.SYS,msg:$.t("Install_extension")+screenMediaExtension[browser]})},500)}}),void self.reqUserMedia(["screen"]))},initiateScreenSharing:function(jid,stream){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid);jsxc.webrtc.localStream=stream,jsxc.webrtc.conn.jingle.localStream=stream;var container=jsxc.gui.showMinimizedVideoWindow();container.addClass("jsxc_establishing"),self.setStatus("Initiate stream"),$(document).one("error.jingle",function(e,sid,error){error&&"offer"!==error.source||setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500)});var constraints,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,browserVersion=self.conn.jingle.RTC.webrtcDetectedVersion;constraints=browserVersion<33&&"firefox"===browser||"chrome"===browser?{mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}}:{offerToReceiveAudio:!1,offerToReceiveVideo:!1};var session=self.conn.jingle.initiate(jid,void 0,constraints);session.call=!1,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),
-session.on("accepted",function(){self.onSessionAccepted(session)}),self.postScreenMessage(bid,$.t("Stream_started"),session.sid)},onSessionAccepted:function(session){var self=jsxc.webrtc;$(".jsxc_videoContainer").removeClass("jsxc_ringing"),self.postScreenMessage(jsxc.jidToBid(session.peerID),$.t("Connection_accepted"),session.sid)},reqUserMedia:function(um){function filterUserMedia(devices){var availableDevices=devices.map(function(device){return device.kind});um=um.filter(function(el){return availableDevices.indexOf(el)!==-1||availableDevices.indexOf(el+"input")!==-1}),um.length?jsxc.webrtc.getUserMedia(um):jsxc.warn("No audio/video device available.")}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}),void(um.indexOf("screen")>=0?jsxc.webrtc.getScreenMedia():"undefined"!=typeof navigator&&"undefined"!=typeof navigator.mediaDevices&&"undefined"!=typeof navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then(filterUserMedia).catch(function(err){jsxc.warn(err.name+": "+err.message)}):"undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(filterUserMedia):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")}},getScreenMedia:function(){var self=jsxc.webrtc;jsxc.debug("get screen media"),self.conn.jingle.getScreenMedia(self.screenMediaCallback)},screenMediaCallback:function(err,stream){return err?void $(document).trigger("mediafailure.jingle",[err]):void(stream&&(jsxc.debug("onScreenMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])))},screenMediaAvailable:function(){var self=jsxc.webrtc,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,chrome=!!sessionStorage.getScreenMediaJSExtensionId&&"chrome"===browser,firefox="firefox"===browser;return chrome||firefox},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()},sendFile:function(jid,file){jsxc.debug("Send file via webrtc");var self=jsxc.webrtc;if(!Strophe.getResourceFromJid(jid))return void jsxc.warn("Require full jid to send file via webrtc");var sess=self.conn.jingle.manager.createFileTransferSession(jid);return sess.on("change:sessionState",function(){jsxc.debug("Session state",sess.state)}),sess.on("change:connectionState",function(){jsxc.debug("Connection state",sess.connectionState)}),sess.start(file),sess},onReceivedFile:function(sess,file,metadata){if(jsxc.debug("file received",metadata),FileReader){var type,reader=new FileReader;if(metadata.type)type=metadata.type;else{var ext=metadata.name.replace(/.+\.([a-z0-9]+)$/i,"$1").toLowerCase();switch(ext){case"jpg":case"jpeg":case"png":case"gif":case"svg":type="image/"+ext.replace(/^jpg$/,"jpeg");break;case"mp3":case"wav":type="audio/"+ext;break;case"pdf":type="application/pdf";break;case"txt":type="text/"+ext;break;default:type="application/octet-stream"}}reader.onload=function(ev){jsxc.gui.window.postMessage({_uid:sess.sid+":msg",bid:jsxc.jidToBid(sess.peerID),direction:jsxc.Message.IN,attachment:{name:metadata.name,type:type,size:metadata.size,data:ev.target.result}})},file.type||(file=new File([file],metadata.name,{type:type})),reader.readAsDataURL(file)}}},jsxc.webrtc.postCallMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":telephone_receiver: "+msg})},jsxc.webrtc.postScreenMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":computer: "+msg})},jsxc.gui.showMinimizedVideoWindow=function(){var self=jsxc.webrtc;jsxc.gui.dialog.close();var videoContainer=$("<div/>");videoContainer.addClass("jsxc_videoContainer jsxc_minimized"),videoContainer.appendTo("body"),videoContainer.draggable({containment:"parent"});var videoElement=$('<video class="jsxc_localvideo" autoplay=""></video>');return videoElement.appendTo(videoContainer),videoElement[0].muted=!0,videoElement[0].volume=0,self.localStream&&self.attachMediaStream(videoElement,self.localStream),videoContainer.append('<div class="jsxc_controlbar"><div><div class="jsxc_hangUp jsxc_videoControl"></div></div></div></div>'),videoContainer.find(".jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),videoContainer.click(function(){videoContainer.find(".jsxc_controlbar").toggleClass("jsxc_visible")}),videoContainer},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;jsxc.gui.dialog.close(),$("body").append(jsxc.gui.template.get("videoWindow")),$("#jsxc_webrtc .jsxc_localvideo")[0].muted=!0,$("#jsxc_webrtc .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_webrtc .jsxc_remotevideo"),lv=$("#jsxc_webrtc .jsxc_localvideo");lv.draggable({containment:"parent"}),self.localStream&&self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_webrtc").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_webrtc .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_webrtc .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var win=jsxc.gui.window.open(jsxc.jidToBid(jid));return win.find(".slimScrollDiv").resizable("disable"),jsxc.gui.window.resize(win,{size:{width:$("#jsxc_webrtc .jsxc_chatarea").width(),height:$("#jsxc_webrtc .jsxc_chatarea").height()}},!0),$("#jsxc_webrtc .jsxc_chatarea ul").append(win.detach()),$("#jsxc_webrtc .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_webrtc .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_webrtc .jsxc_videoContainer").fullscreen())}),$("#jsxc_webrtc .jsxc_videoContainer").click(function(){$("#jsxc_webrtc .jsxc_controlbar").toggleClass("jsxc_visible")}),$("#jsxc_webrtc")},jsxc.gui.closeVideoWindow=function(){var win=$("#jsxc_webrtc .jsxc_chatarea > ul > li");win.length>0&&($("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),jsxc.gui.window.resize(win)),$("#jsxc_webrtc, .jsxc_videoContainer").remove()},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(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)}),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.xmpp.chatState={conn:null,toComposingNotificationDelay:900},jsxc.xmpp.chatState.init=function(){var self=jsxc.xmpp.chatState;return jsxc.xmpp.conn&&jsxc.xmpp.connected?($(document).off("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).off("paused.chatstates",jsxc.xmpp.chatState.onPaused),$(document).off("active.chatstates",jsxc.xmpp.chatState.onActive),self.isDisabled()?void jsxc.debug("chat state notification disabled"):(self.conn=jsxc.xmpp.conn,$(document).on("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).on("paused.chatstates",jsxc.xmpp.chatState.onPaused),void $(document).on("active.chatstates",jsxc.xmpp.chatState.onActive))):void $(document).on("attached.jsxc",self.init)},jsxc.xmpp.chatState.onComposing=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()&&("groupchat"!==data.type||Strophe.getResourceFromJid(jid)!==Strophe.getNodeFromJid(self.conn.jid))){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){clearTimeout(win.data("composing-timeout"));var usersComposing=win.data("composing")||[];usersComposing.indexOf(user)===-1&&(usersComposing.push(user),win.data("composing",usersComposing));var textarea=win.find(".jsxc_textarea"),composingNotif=textarea.find(".jsxc_composing");composingNotif.length<1&&(composingNotif=$("<div>").addClass("jsxc_composing").addClass("jsxc_chatmessage").addClass("jsxc_sys").appendTo(textarea));var msg=self._genComposingMsg(usersComposing);composingNotif.text(msg),jsxc.gui.window.scrollDown(bid),composingNotif.addClass("jsxc_fadein")}}},jsxc.xmpp.chatState.onPaused=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){var el=win.find(".jsxc_composing"),usersComposing=win.data("composing")||[];if(usersComposing.indexOf(user)>=0&&(usersComposing.splice(usersComposing.indexOf(user),1),win.data("composing",usersComposing)),0===usersComposing.length){var durationValue=el.css("transition-duration")||"0s",duration=parseFloat(durationValue)||0;durationValue.match(/[^m]s$/)&&(duration*=1e3),el.removeClass("jsxc_fadein");var to=setTimeout(function(){el.remove()},duration);win.data("composing-timeout",to)}else el.text(self._genComposingMsg(usersComposing))}}},jsxc.xmpp.chatState.onActive=function(ev,jid){jsxc.xmpp.chatState.onPaused(ev,jid)},jsxc.xmpp.chatState.startComposing=function(bid){var self=jsxc.xmpp.chatState;if(jsxc.xmpp.conn&&jsxc.xmpp.conn.chatstates&&!jsxc.xmpp.chatState.isDisabled()){var win=jsxc.gui.window.get(bid),timeout=win.data("composing-timeout"),type=win.hasClass("jsxc_groupchat")?"groupchat":"chat";timeout?clearTimeout(timeout):jsxc.xmpp.conn.chatstates.sendComposing(bid,type),timeout=setTimeout(function(){self.pauseComposing(bid,type),win.data("composing-timeout",null)},self.toComposingNotificationDelay),win.data("composing-timeout",timeout)}},jsxc.xmpp.chatState.pauseComposing=function(bid,type){jsxc.xmpp.chatState.isDisabled()||jsxc.xmpp.conn.chatstates.sendPaused(bid,type)},jsxc.xmpp.chatState.endComposing=function(bid){var win=jsxc.gui.window.get(bid);win.data("composing-timeout")&&clearTimeout(win.data("composing-timeout"))},jsxc.xmpp.chatState._genComposingMsg=function(usersComposing){return usersComposing&&0!==usersComposing.length?usersComposing.length>1?usersComposing.join(", ")+$.t("_are_composing"):usersComposing[0]+$.t("_is_composing"):(jsxc.debug("usersComposing array is empty?"),"")},jsxc.xmpp.chatState.isDisabled=function(){var options=jsxc.options.get("chatState")||{};return!options.enable},$(document).on("attached.jsxc",jsxc.xmpp.chatState.init),jsxc.xmpp.httpUpload={conn:null,ready:!1,CONST:{NS:{HTTPUPLOAD:"urn:xmpp:http:upload"}}},jsxc.xmpp.httpUpload.init=function(o){var self=jsxc.xmpp.httpUpload;self.conn=jsxc.xmpp.conn;var fileTransferOptions=jsxc.options.get("fileTransfer")||{},options=o||jsxc.options.get("httpUpload");if(!fileTransferOptions.httpUpload.enable)return jsxc.debug("http upload disabled"),void jsxc.options.set("httpUpload",!1);if(options&&options.server)return void(self.ready=!0);var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;return caps&&domain&&"undefined"!=typeof caps._knownCapabilities[caps._jidVerIndex[domain]]?void(caps.hasFeatureByJid(domain,self.CONST.NS.HTTPUPLOAD)?self.discoverUploadService():jsxc.debug(domain+" does not support http upload")):(jsxc.debug("Waiting for server capabilities"),void $(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(self.init(),$(document).off("caps.strophe",onCaps))}))},jsxc.xmpp.httpUpload.discoverUploadService=function(){var self=jsxc.xmpp.httpUpload;jsxc.debug("discover http upload service"),self.conn.disco.items(self.conn.domain,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 httpUploadFeature=$(info).find('feature[var="'+self.CONST.NS.HTTPUPLOAD+'"]'),httpUploadMaxSize=$(info).find('field[var="max-file-size"]');httpUploadFeature.length>0&&(jsxc.debug("http upload service found",jid),jsxc.options.set("httpUpload",{server:jid,name:$(info).find("identity").attr("name"),maxSize:parseInt(httpUploadMaxSize.text())}),discovered=!0,self.ready=!0)}),!discovered})})},jsxc.xmpp.httpUpload.sendFile=function(file,message){jsxc.debug("Send file via http upload");var self=jsxc.xmpp.httpUpload;message.encrypted=!1,self.requestSlot(file,function(data){data?data.error?(jsxc.warn('The xmpp server responded with an error of the type "'+data.error.type+'"'),message.getDOM().remove(),jsxc.gui.window.postMessage({bid:message.bid,direction:jsxc.Message.SYS,msg:data.error.text}),message.delete()):data.get&&data.put&&self.uploadFile(data.put,file,message,function(){var a=$("<a>");a.attr("href",data.get),a.attr("data-name",message.attachment.name),a.attr("data-type",message.attachment.type),a.attr("data-size",message.attachment.size),message.attachment.thumbnail&&a.attr("data-thumbnail",message.attachment.thumbnail),a.text(data.get),message.attachment.data=data.get,message.msg=$("<span>").append(a).html(),message.type=jsxc.Message.HTML,jsxc.gui.window.postMessage(message)}):jsxc.warn("Unknown error occured. Please check the debug log.")})},jsxc.xmpp.httpUpload.uploadFile=function(url,file,message,success_cb){$.ajax({url:url,type:"PUT",contentType:"application/octet-stream",data:file,processData:!1,xhr:function(){var xhr=$.ajaxSettings.xhr();return xhr.upload.onprogress=function(ev){ev.lengthComputable&&jsxc.gui.window.updateProgress(message,ev.loaded,ev.total)},xhr},success:function(){jsxc.debug("file successful uploaded"),jsxc.gui.window.updateProgress(message,1,1),success_cb&&success_cb()},error:function(){jsxc.warn("error while uploading file to "+url),message.error="Could not upload file",jsxc.gui.window.postMessage(message)}})},jsxc.xmpp.httpUpload.requestSlot=function(file,cb){var self=jsxc.xmpp.httpUpload,options=jsxc.options.get("httpUpload");if(!options||!options.server)return void jsxc.warn("could not request upload slot, because I am not aware of a server or http upload is disabled");var iq=$iq({to:options.server,type:"get"}).c("request",{xmlns:self.CONST.NS.HTTPUPLOAD}).c("filename").t(file.name).up().c("size").t(file.size);self.conn.sendIQ(iq,function(stanza){self.successfulRequestSlotCB(stanza,cb)},function(stanza){self.failedRequestSlotCB(stanza,cb)})},jsxc.xmpp.httpUpload.successfulRequestSlotCB=function(stanza,cb){var self=jsxc.xmpp.httpUpload,slot=$(stanza).find('slot[xmlns="'+self.CONST.NS.HTTPUPLOAD+'"]');if(slot.length>0){var put=slot.find("put").text(),get=slot.find("get").text();cb({put:put,get:get})}else self.failedRequestSlotCB(stanza,cb)},jsxc.xmpp.httpUpload.failedRequestSlotCB=function(stanza,cb){if($(stanza).find("error").length<=0)return jsxc.warn("response does not contain a slot element"),void cb();var error={type:$(stanza).find("error").attr("type")||"unknown",text:$(stanza).find("error text").text()};$(stanza).find("error not-acceptable")?error.reason="not-acceptable":$(stanza).find("error resource-constraint")?error.reason="resource-constraint":$(stanza).find("error not-allowed")&&(error.reason="not-allowed"),cb({error:error})},$(document).on("stateChange.jsxc",function(ev,state){state===jsxc.CONST.STATE.READY&&jsxc.xmpp.httpUpload.init()}),jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b><span data-var="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 <span data-var="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 class="jsxc_credits">\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>,\n <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>,\n <a href="http://www.picol.org/">Picol (Fullscreen icon)</a>, <a href="http://www.jabber.org/">Jabber Software Foundation (Jabber lightbulb logo)</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/strophe/strophejs-plugins/tree/master/chatstates">strophe.js/chatstates</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://i18next.com/">jquery-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), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\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> <span data-var="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.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 class="jsxc_hidden">\n <p data-i18n="To_verify_the_fingerprint_" class="jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="my_priv_fingerprint"/></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="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 class="form-horizontal jsxc_hidden">\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 class="form-horizontal jsxc_hidden">\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.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.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_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 <div class="jsxc_more"></div>\n <div class="jsxc_inner jsxc_menu">\n <ul>\n <li>\n <a class="jsxc_verification" href="#">\n <span data-i18n="Authentication"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_clear" href="#">\n <span data-i18n="clear_history"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_sendFile" href="#">\n <span data-i18n="Send_file"></span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_overlay">\n <div>\n <div class="jsxc_body" />\n <div class="jsxc_close" />\n </div>\n </div>\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_clear"></li>\n </ul>\n </div>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <textarea class="jsxc_textinput" data-i18n="[placeholder]Message"></textarea>\n </div>\n </div>\n</li>\n',jsxc.gui.template.confirmDialog='<p data-var="msg"></p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="jsxc_btn jsxc_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 class="jsxc_uppercase" data-var="my_priv_fingerprint"></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="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> <span data-var="bid_name" />?\n</p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="jsxc_btn jsxc_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" pattern="^[.-0-9a-zA-Z]+" />\n <p class="jsxc_inputinfo jsxc_server jsxc_hidden"></p>\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 <p class="jsxc_inputinfo jsxc_room" data-i18n="Rooms_are_loaded"></p>\n </div>\n </div>\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 jsxc_hidden">\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 <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" data-var="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.notification='<h3></h3>\n\n<p class="jsxc_msg"></p>\n\n<p class="jsxc_meta"></p>\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 jsxc_rosteritem" data-bid="own">\n <div id="jsxc_avatar" class="jsxc_avatar" />\n <div id="jsxc_menu">\n <span></span>\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_settings jsxc_settingsicon" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_addBuddy jsxc_contacticon" data-i18n="Add_buddy"></li>\n <li class="jsxc_onlineHelp jsxc_helpicon" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <div class="jsxc_inner">\n <ul></ul>\n </div>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Offline">Offline</span>\n <div class="jsxc_inner">\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>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li class="jsxc_rosteritem">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_more" />\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n <div class="jsxc_menu">\n <ul>\n <li><a class="jsxc_rename" href="#"><span class="jsxc_icon jsxc_editicon"></span><span data-i18n="rename_buddy"></span></a></li>\n <li><a class="jsxc_vcard" href=""><span class="jsxc_icon jsxc_infoicon"></span><span data-i18n="get_info"></span></a></li>\n <li><a class="jsxc_delete" href=""><span class="jsxc_icon jsxc_deleteicon"></span><span data-i18n="delete_buddy"></span></a></li>\n </ul>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <h3 data-i18n="Login_options"></h3>\n <p data-i18n="setting-explanation-xmpp"></p>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <h3 data-i18n="Priority"></h3>\n <p data-i18n="setting-explanation-priority"></p>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <h3 data-i18n="On_login"></h3>\n <p data-i18n="setting-explanation-login"></p>\n <div class="form-group">\n <div class="col-sm-12">\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-12">\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 col-sm-6" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Carbon_copy"></h3>\n <p data-i18n="setting-explanation-carbon"></p>\n <div class="form-group">\n <div class="col-sm-12">\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-12">\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 col-sm-6" data-onsubmit="xmpp.chatState.init">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Chat_state_notifications"></h3>\n <p data-i18n="setting-explanation-chat-state"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="chatState-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\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 data-var="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 id="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="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n <div class="jsxc_controlbar jsxc_visible">\n <div>\n <div class="jsxc_hangUp jsxc_videoControl" />\n <div class="jsxc_fullscreen jsxc_videoControl" />\n </div>\n </div>\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 data-var="msg"></h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" 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:"3.1.0-beta.2",master:!1,role_allocation:!1,to:[],toBusy:null,toNotification:null,toNotificationDelay:500,keepaliveInterval:null,reconnect:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,currentState:null,currentUIState: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\.)[^\s<>'"]+/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"},HIDDEN:"hidden",SHOWN:"shown",STATE:{INITIATING:0,PREVCONFOUND:1,SUSPEND:2,TRYTOINTERCEPT:3,INTERCEPTED:4,ESTABLISHING:5,READY:6},UISTATE:{INITIATING:0,READY:1}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),day=("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,date="function"==typeof msgDate.toLocaleDateString?msgDate.toLocaleDateString():day+"."+month+"."+year,time="function"==typeof msgDate.toLocaleTimeString?msgDate.toLocaleTimeString():hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+" "+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(jsxc.changeState(jsxc.CONST.STATE.INITIATING),options&&options.loginForm&&"boolean"==typeof options.loginForm.attachIfFound&&!options.loginForm.ifFound&&(options.loginForm.ifFound=options.loginForm.attachIfFound?"attach":"pause"),options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){if(jsxc.bid){var local=jsxc.storage.getUserItem("options")||{};return"undefined"!=typeof local[key]?local[key]:jsxc.options[key]}return 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.languages&&navigator.languages.length>0?navigator.languages[0].substr(0,2):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,window.i18next.init({lng:lang,fallbackLng:"en",resources:I18next,debug:jsxc.storage.getItem("debug")===!0,interpolation:{prefix:"__",suffix:"__"}},function(){window.jqueryI18next.init(window.i18next,$,{tName:"t",i18nName:"i18next",handleName:"localize"})}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1),$(document).on("attached.jsxc",jsxc.registerLogout);var isStorageAttachParameters=jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.storage.getItem("jid"),isOptionsAttachParameters=jsxc.options.xmpp.rid&&jsxc.options.xmpp.sid&&jsxc.options.xmpp.jid,isForceLoginForm=jsxc.options.loginForm&&"force"===jsxc.options.loginForm.ifFound&&jsxc.isLoginForm();if(!isStorageAttachParameters&&!isOptionsAttachParameters||isForceLoginForm){if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return jsxc.changeState(jsxc.CONST.STATE.SUSPEND),void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));jsxc.changeState(jsxc.CONST.STATE.TRYTOINTERCEPT),"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(ev){return ev.preventDefault(),jsxc.prepareLogin(function(settings){if(settings!==!1){var enabled=settings.loginForm&&settings.loginForm.enable||settings.xmpp&&settings.xmpp.onlogin;if(enabled="true"===enabled||enabled===!0)return jsxc.options.loginForm.triggered=!0,void jsxc.xmpp.login(jsxc.options.xmpp.jid,jsxc.options.xmpp.password)}jsxc.submitLoginForm()}),!1}),jsxc.changeState(jsxc.CONST.STATE.INTERCEPTED)}else(!jsxc.isLoginForm()||jsxc.options.loginForm&&"attach"===jsxc.options.loginForm.ifFound)&&(jsxc.changeState(jsxc.CONST.STATE.PREVCONFOUND),"undefined"==typeof jsxc.storage.getItem("alive")?jsxc.onMaster():jsxc.checkMaster())},start:function(){var args=arguments;return jsxc.role_allocation&&!jsxc.master?(jsxc.debug("There is an other master tab"),!1):jsxc.xmpp.conn&&jsxc.xmpp.connected?(jsxc.debug("We are already connected"),!1):(3===args.length&&$(document).one("attached.jsxc",function(){jsxc.xmpp.onRidChange(jsxc.xmpp.conn._proto.rid),jsxc.onMaster()}),void jsxc.checkMaster(function(){jsxc.xmpp.login.apply(this,args)}))},registerLogout:function(){if(null!==jsxc.options.logoutElement&&$(jsxc.options.logoutElement).length>0){var logout=function(ev){ev.stopPropagation(),ev.preventDefault(),jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement=$(jsxc.options.logoutElement),jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}},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.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.registerLogout(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own"),jsxc.gui.restore()},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.startKeepAlive(),jsxc.role_allocation=!0,jsxc.xmpp.login()},checkMaster:function(cb){jsxc.debug("check master"),cb=cb&&"function"==typeof cb?cb:jsxc.onMaster,"undefined"==typeof jsxc.storage.getItem("alive")?cb.call():(jsxc.to.push(window.setTimeout(cb,1e3)),jsxc.keepAlive("slave"))},masterActions:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated){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,jsxc.options.get("otr").enable&&jsxc.otr.createDSA(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}},startKeepAlive:function(){jsxc.keepaliveInterval=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(role){var next=parseInt(jsxc.storage.getItem("alive"))+1;role=role||"master",jsxc.storage.setItem("alive",next+":"+role)},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepaliveInterval&&window.clearInterval(jsxc.keepaliveInterval),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 win=jsxc.storage.getUserItem("window",bid);return win?(jsxc.gui.window.init(bid),win.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,win.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.get(0)&&"function"==typeof form.get(0).submit?form.submit():form.find('[type="submit"]').length>0?form.find('[type="submit"]').click():jsxc.warn("Could not submit login form.")},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]];if("function"==typeof fn)return fn.apply(null,fnParams)},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},isExtraSmallDevice:function(){return $(window).width()<500},changeState:function(state){jsxc.currentState=state,jsxc.debug("State changed to "+Object.keys(jsxc.CONST.STATE)[state]),$(document).trigger("stateChange.jsxc",state)},changeUIState:function(state){jsxc.currentUIState=state,jsxc.debug("UI State changed to "+Object.keys(jsxc.CONST.UISTATE)[state]),$(document).trigger("stateUIChange.jsxc",state)}},jsxc.xmpp={conn:null,login:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated)return void jsxc.debug("Connection already 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=jsxc.options.xmpp.sid||null,rid=jsxc.options.xmpp.rid||null,jid=jsxc.options.xmpp.jid)}if(!jid)return void jsxc.warn("Jid required for login");jsxc.bid||(jsxc.bid=jsxc.jidToBid(jid));var url=jsxc.options.get("xmpp").url;if(!url)return void jsxc.warn("xmpp.url required for login");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("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),jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)}),jsxc.xmpp.conn.nextValidRid=jsxc.xmpp.onRidChange;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.changeState(jsxc.CONST.STATE.ESTABLISHING),sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.reconnect=!0,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,password||jsxc.options.xmpp.password,callback))},logout:function(complete){if(jsxc.triggeredFromElement="boolean"!=typeof complete||complete,!jsxc.master)return jsxc.storage.removeItem("sid"),!0;if(jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("unreadMsg"),$("body").click(),!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated)return!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(){if(jsxc.xmpp.conn.pause(),jsxc.xmpp.initNewConnection(),jsxc.xmpp.saveSessionParameter(),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":return void jsxc.submitLoginForm();case!1:return}jsxc.gui.dialog.close(),jsxc.xmpp.conn.resume(),jsxc.onMaster(),jsxc.changeState(jsxc.CONST.STATE.READY),$(document).trigger("attached.jsxc")},attached:function(){$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage,null,"message","headline"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence"),jsxc.gui.init();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.reconnect&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres(),jsxc.restoreCompleted||jsxc.gui.restore();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.saveSessionParameter(),jsxc.masterActions(),jsxc.changeState(jsxc.CONST.STATE.READY)},saveSessionParameter:function(){var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid)},initNewConnection:function(){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")},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("jid"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),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("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.gui.roster.ready=!1,$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepaliveInterval),jsxc.role_allocation=!1,jsxc.master=!1,jsxc.storage.removeItem("alive"),jsxc.changeState(jsxc.CONST.STATE.SUSPEND)},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:[],rnd:Math.random()}),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"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)},onRosterChanged:function(iq){var iqSender=$(iq).attr("from"),ownBareJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid);return!(!iqSender||iqSender===ownBareJid)||(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){var bl=jsxc.storage.getUserItem("buddylist");return bl.indexOf(bid)>-1?(jsxc.debug("Auto approve contact request, because he is already in our contact list."),jsxc.xmpp.resFriendReq(jid,!0),"to"!==data.sub&&jsxc.xmpp.addBuddy(jid,data.name),!0):(jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add({msg:$.t("Friendship_request"),description:$.t("from")+" "+jid,type:"contact"},"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]: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+"): "+jsxc.CONST.STATUS[status]),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onChatMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]'),originalSender=$(stanza).attr("from");if(forwarded.length>0){if(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length)carbon=!1;else if(originalSender!==Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid))return!0;jsxc.debug("Incoming forwarded message",message)}else message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message);var body=$(message).find("body:first").text(),htmlBody=$(message).find('body[xmlns="'+Strophe.NS.XHTML+'"]');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")?jsxc.Message.OUT:jsxc.Message.IN;return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage({bid:bid,direction:direction,msg:body,encrypted:!1,forwarded:forwarded,stamp: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({msg:$.t("Unknown_sender"),description:$.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);"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}));var attachment;if(1===htmlBody.length){var httpUploadElement=htmlBody.find("a[data-type][data-name][data-size]");1===httpUploadElement.length&&(attachment={type:httpUploadElement.attr("data-type"),name:httpUploadElement.attr("data-name"),size:httpUploadElement.attr("data-size")},httpUploadElement.attr("data-thumbnail")&&httpUploadElement.attr("data-thumbnail").match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+\/]+$/i)&&(attachment.thumbnail=httpUploadElement.attr("data-thumbnail")),httpUploadElement.attr("href")&&httpUploadElement.attr("href").match(/^https:\/\//)&&(attachment.data=httpUploadElement.attr("href"),body=null),attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i)&&attachment.name.match(/^[\s\w.,-]+$/i)&&attachment.size.match(/^\d+$/i)||(attachment=void 0,jsxc.warn("Invalid file type, name or size.")))}return jsxc.otr.objects.hasOwnProperty(bid)&&body?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded,attachment:attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp,attachment:attachment}),!0},onHeadlineMessage:function(stanza){stanza=$(stanza);var from=stanza.attr("from"),domain=Strophe.getDomainFromJid(from);if(domain!==from){if(!jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from)))return!0}else if(domain!==Strophe.getDomainFromJid(jsxc.xmpp.conn.jid))return!0;var subject=stanza.find("subject:first").text()||$.t("Notification"),body=stanza.find("body:first").text();return jsxc.notice.add({msg:subject,description:body,type:domain===from?"announcement":null},"gui.showNotification",[subject,body,from]),!0},onRidChange:function(rid){jsxc.storage.setItem("rid",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(stanza){var received=$(stanza).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var receivedId=received.attr("id"),message=new jsxc.Message(receivedId);message.received()}return!0},sendMessage:function(message){var bid=message.bid,msg=message.htmlMsg,mucRoomNames=jsxc.xmpp.conn.muc&&jsxc.xmpp.conn.muc.roomNames?jsxc.xmpp.conn.muc.roomNames:[],isMucBid=mucRoomNames.indexOf(bid)>=0;jsxc.otr.objects.hasOwnProperty(bid)&&!isMucBid?jsxc.otr.objects[bid].sendMsg(msg,message):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,message)},_sendMessage:function(jid,msg,message){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat";message=message||{};var xmlMsg=$msg({to:jid,type:type,id:message._uid});if(message.type===jsxc.Message.HTML){xmlMsg.c("html",{xmlns:Strophe.NS.XHTML_IM});var body=Strophe.xmlElement("body",{xmlns:Strophe.NS.XHTML});body.innerHTML=msg,xmlMsg.node.appendChild(body)}else xmlMsg.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.chatstates&&!jsxc.xmpp.chatState.isDisabled()&&xmlMsg.up().c("active",{xmlns:Strophe.NS.CHATSTATES}),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){if(err!==!1)return jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable()}},jsxc.fileTransfer={},jsxc.fileTransfer.formatByte=function(byte){var i,s=["","KB","MB","GB","TB"];for(i=1;i<s.length&&!(byte<1024);i++)byte/=1024;return Math.round(10*byte)/10+s[i-1]},jsxc.fileTransfer.startGuiAction=function(jid){var bid=jsxc.jidToBid(jid),res=Strophe.getResourceFromJid(jid);return res||jsxc.xmpp.httpUpload.ready?void jsxc.fileTransfer.showFileSelection(jid):void jsxc.fileTransfer.selectResource(bid,jsxc.fileTransfer.startGuiAction)},jsxc.fileTransfer.selectResource=function(bid,success_cb,error_cb){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(jid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid))||[];null===res&&1===resources.length&&1===fileCapableRes.length?(res=fileCapableRes[0],jid=bid+"/"+res,success_cb(jid)):fileCapableRes.indexOf(res)>=0?success_cb(bid+"/"+res):fileCapableRes.indexOf(res)<0&&jsxc.gui.window.selectResource(bid,$.t("Your_contact_uses_multiple_clients_"),function(data){"unavailable"===data.status?(jsxc.gui.window.hideOverlay(bid),"function"==typeof error_cb&&error_cb()):"selected"===data.status&&success_cb(bid+"/"+data.result)},fileCapableRes)},jsxc.fileTransfer.showFileSelection=function(jid){var bid=jsxc.jidToBid(jid),msg=$('<div><div><label><input type="file" name="files" /><label></div></div>');msg.addClass("jsxc_chatmessage"),jsxc.gui.window.showOverlay(bid,msg,!0),msg.find("label").click(),msg.find('[type="file"]').change(function(ev){var file=ev.target.files[0];file&&jsxc.fileTransfer.fileSelected(jid,msg,file)})},jsxc.fileTransfer.fileSelected=function(jid,msg,file){var bid=jsxc.jidToBid(jid);if("webrtc"!==file.transportMethod&&jsxc.xmpp.httpUpload.ready&&file.size>jsxc.options.get("httpUpload").maxSize)return jsxc.debug("File too large for http upload."),file.transportMethod="webrtc",void jsxc.fileTransfer.selectResource(bid,function(jid){jsxc.fileTransfer.fileSelected(jid,msg,file)},function(){var maxSize=jsxc.fileTransfer.formatByte(jsxc.options.get("httpUpload").maxSize),fileSize=jsxc.fileTransfer.formatByte(file.size);jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("File_too_large")+" ("+fileSize+" > "+maxSize+")"}),jsxc.gui.window.hideOverlay(bid)});!jsxc.xmpp.httpUpload.ready&&Strophe.getResourceFromJid(jid)&&(file.transportMethod="webrtc");var attachment=$("<div>");if(attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+file.type.replace(/\//,"-")),attachment.addClass("jsxc_"+file.type.replace(/^([^\/]+)\/.*/,"$1")),msg.empty().append(attachment),FileReader&&file.type.match(/^image\//)){var img=$('<img alt="preview">').attr("title",file.name);img.attr("src",jsxc.options.get("root")+"/img/loading.gif"),img.appendTo(attachment);var reader=new FileReader;reader.onload=function(){img.attr("src",reader.result)},reader.readAsDataURL(file)}else attachment.text(file.name+" ("+file.size+" byte)");$("<button>").addClass("jsxc_btn jsxc_btn-primary").text($.t("Send")).click(function(){jsxc.gui.window.hideOverlay(bid),msg.remove();var message=jsxc.gui.window.postMessage({bid:bid,direction:"out",attachment:{name:file.name,size:file.size,type:file.type,data:file.type.match(/^image\//)?img.attr("src"):null}});if("webrtc"===file.transportMethod){var sess=jsxc.webrtc.sendFile(jid,file);sess.sender.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size),sent===size&&message.received()})}else jsxc.xmpp.httpUpload.sendFile(file,message)}).appendTo(msg),$("<button>").addClass("jsxc_btn jsxc_btn-default").text($.t("Abort")).click(function(){jsxc.gui.window.hideOverlay(bid)}).appendTo(msg)},jsxc.fileTransfer.updateIcons=function(bid){var win=jsxc.gui.window.get(bid);if(win&&0!==win.length&&jsxc.xmpp.conn){if(jsxc.debug("Update file transfer icons for "+bid),jsxc.xmpp.httpUpload.ready)return void win.find(".jsxc_sendFile").removeClass("jsxc_disabled");var jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(bid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];fileCapableRes.indexOf(res)>-1||null===res&&1===fileCapableRes.length&&1===resources.length?win.find(".jsxc_sendFile").removeClass("jsxc_disabled"):win.find(".jsxc_sendFile").addClass("jsxc_disabled")}},$(document).on("update.gui.jsxc",function(ev,bid){jsxc.fileTransfer.updateIcons(bid)}),jsxc.gui={emotions:[["O:-) O:)","innocent"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","slight_smile"],[":-D :D","grin"],[":-( :(","disappointed"],[";-) ;)","wink"],[":-P :P","stuck_out_tongue"],["=-O","astonished"],[":kiss: :-*","kissing_heart"],["8-) :cool:","sunglasses"],[":-X :X","zipper_mouth"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":coffee:","coffee"],[":devil:","smiling_imp"],[":kiss: :kissing:","kissing"],["@->-- @-&gt;--","rose"],[":music:","musical_note"],[":love:","heart_eyes"],[":heart:","heart"],[":brokenheart:","broken_heart"],[":zzz:","zzz"],[":wait:","hand_splayed"]],favicon:null,regShortNames:null,emoticonList:{core:{":klaus:":["klaus"],":jabber:":["jabber"],":xmpp:":["xmpp"],":jsxc:":["jsxc"],":owncloud:":["owncloud"],":nextcloud:":["nextcloud"]},emojione:emojione.emojioneList},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&&(params.name,!0)&&$("#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)){jsxc.changeUIState(jsxc.CONST.UISTATE.INITIATING),jsxc.gui.regShortNames=new RegExp(emojione.regShortNames.source+"|("+Object.keys(jsxc.gui.emoticonList.core).join("|")+")","gi"),$("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),jsxc.gui.updatePresence(bid,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=Strophe.getBareJidFromJid(data.jid)+"\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),$(document).trigger("update.gui.jsxc",[bid])},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);if(jsxc.master||avatarSrc||(avatarSrc=0),null!==avatarSrc)setAvatar(avatarSrc);else{var handler_cb=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)},error_cb=function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)};Strophe.getBareJidFromJid(jid)===Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)?jsxc.xmpp.conn.vcard.get(handler_cb,error_cb):jsxc.xmpp.conn.vcard.get(handler_cb,Strophe.getBareJidFromJid(jid),error_cb)}},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();scrollWidth<width||(right>0&&(right=0),right<width-scrollWidth-padding&&(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(el){var self=el||$(this);self.disableSelection(),self.addClass("jsxc_list");var ul=self.find("ul"),slideUp=null;slideUp=function(){self.removeClass("jsxc_opened"),$("body").off("click",null,slideUp)},$(this).click(function(){return self.hasClass("jsxc_opened")?$("body").off("click",null,slideUp):($("body").click(),$("body").one("click",slideUp)),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).one("complete.dialog.jsxc",function(){setTimeout(function(){0===$("#jsxc_username").val().length?$("#jsxc_username").focus():$("#jsxc_password").focus()},50)}),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),{name:"smp"}),$("#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("smp"),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:$.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){$("#jsxc_userlist").empty(),$.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)"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}$.fn&&$.fn.jquery&&(userInfo+="<b>jQuery:</b> "+$.fn.jquery+"<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="";if(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)return content},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 cb=function(success){"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)};return jsxc.options.saveSettinsPermanent.call(this,data,cb),!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)},showNotification:function(subject,body,from){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("notification"));dialog.find("h3").text(subject),dialog.find(".jsxc_msg").text(body),from?dialog.find(".jsxc_meta").text($.t("from")+" "+from):dialog.find(".jsxc_meta").hide()},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_inner 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))),$('[data-bid="'+bid+'"]').each(function(){var el=$(this);el.attr("data-status",pres),el.find(".jsxc_avatar").length>0&&(el=el.find(".jsxc_avatar")),el.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:"],a[href^="xmpp:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *(mailto|xmpp):/,"").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())},shortnameToImage:function(str){str=str.replace(jsxc.gui.regShortNames,function(shortname){if(!("undefined"!=typeof shortname&&""!==shortname&&(shortname in jsxc.gui.emoticonList.emojione||shortname in jsxc.gui.emoticonList.core)))return shortname;var src,filename;jsxc.gui.emoticonList.core[shortname]?(filename=jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length-1].replace(/^:([^:]+):$/,"$1"),src=jsxc.options.root+"/img/emotions/"+filename+".svg"):jsxc.gui.emoticonList.emojione[shortname]&&(filename=jsxc.gui.emoticonList.emojione[shortname].fname,src=jsxc.options.root+"/lib/emojione/assets/svg/"+filename+".svg");var div=$("<div>");return div.addClass("jsxc_emoticon"),div.css("background-image","url("+src+")"),div.attr("title",shortname),div.prop("outerHTML")});var obj=$("<div>"+str+"</div>");return 1===obj.find(".jsxc_emoticon").length&&0===obj.text().replace(/ /,"").length&&1===obj.find("*").length&&(obj.find(".jsxc_emoticon").addClass("jsxc_large"),str=obj.prop("outerHTML")),str},restore:function(){jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)}},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 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),$("#jsxc_windowList").addClass("jsxc_roster_"+rosterState);var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence .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_roster > p").remove(),jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_msg").click(function(){return jsxc.gui.window.open(bid),!1}),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"),$("body").click(),bud.find(".jsxc_menu").hasClass("jsxc_open")||(bud.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){bud.find(".jsxc_menu").removeClass("jsxc_open")})),!1};bud.find(".jsxc_more").click(expandClick),bud.find(".jsxc_vcard").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"});for(var history=jsxc.storage.getUserItem("history",bid)||[],i=0;history.length>i;){var message=new jsxc.Message(history[i]);if(message.direction!==jsxc.Message.SYS){$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(message.msg);break}i++}$(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;data.name||(data.name=bid);var status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;if($(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||thisStatus<status)return $(this).before(li),insert=!0,!1}),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_lastmsg, .jsxc_more"),input=$('<input type="text" name="name"/>');$("body").click(),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(state){var duration,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList");return state||(state=jsxc.storage.getUserItem("roster")===jsxc.CONST.HIDDEN?jsxc.CONST.SHOWN:jsxc.CONST.HIDDEN),"shown"===state&&jsxc.isExtraSmallDevice()&&jsxc.gui.window.hide(),jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),wl.removeClass("jsxc_roster_hidden jsxc_roster_shown").addClass("jsxc_roster_"+state),duration=1e3*parseFloat(roster.css("transitionDuration")||0),setTimeout(function(){jsxc.gui.updateWindowListSB()},duration),$(document).trigger("toggle.roster.jsxc",[state,duration]),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=$.extend({name:""},o),src=$('<div data-name="'+opt.name+'" id="jsxc_dialog" />').append(data);return $.magnificPopup.open({items:{src:src},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(name){jsxc.debug("close dialog"),"string"==typeof name&&name.length>0&&!jsxc.el_exists("#jsxc_dialog[data-name="+name+"]")||$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){function resizeTextarea(){$(this).data("originalHeight")||$(this).data("originalHeight",$(this).outerHeight()),$(this).outerHeight()<this.scrollHeight-1&&$(this).val()&&$(this).height(1.5*$(this).data("originalHeight"))}if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).appendTo("#jsxc_windowList > ul"),data=jsxc.storage.getUserItem("buddy",bid);win.data("jid",data.jid);var expandClick=function(){return win.trigger("extra.jsxc"),$("body").click(),win.find(".jsxc_menu").hasClass("jsxc_open")||(win.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){win.find(".jsxc_menu").removeClass("jsxc_open")})),!1};win.find(".jsxc_more").click(expandClick),win.find(".jsxc_menu").click(function(){$("body").click()}),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_sendFile").click(function(){$("body").click(),jsxc.gui.window.sendFile(bid)}),win.find(".jsxc_tools").click(function(){return!1});var textinputBlurTimeout;if(win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13!==ev.which&&jsxc.xmpp.chatState.startComposing(bid),13!==ev.which||ev.shiftKey||(body="",jsxc.xmpp.chatState.endComposing(bid)),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){return 13!==ev.which||ev.shiftKey||!$(this).val()?void resizeTextarea.call(this):(jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.OUT,msg:$(this).val()}),$(this).css("height","").val(""),void ev.preventDefault())}).focus(function(){textinputBlurTimeout&&clearTimeout(textinputBlurTimeout),jsxc.gui.readMsg(bid),resizeTextarea.call(this)}).blur(function(){var self=$(this);textinputBlurTimeout=setTimeout(function(){self.css("height","")},1200)}).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_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){jsxc.gui.window.resize(win,ui)},start:function(){win.removeClass("jsxc_normal")},stop:function(){win.addClass("jsxc_normal")}}),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),$.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}),jsxc.gui.window.hide(bid)}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>");li.append(jsxc.gui.shortnameToImage(":"+val[1]+":")),li.find("div").attr("title",ins),li.click(function(){win.find(".jsxc_textinput").val(win.find(".jsxc_textinput").val()+ins),win.find(".jsxc_textinput").focus()}),win.find(".jsxc_emoticons ul").prepend(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},resize:function(win,ui,outer){var bid;if("object"==typeof win)bid=win.attr("data-bid");else{if("string"!=typeof win)return void jsxc.warn("jsxc.gui.window.resize has to be called either with bid or window object.");bid=win,win=jsxc.gui.window.get(bid)}win.attr("data-default-height")||win.attr("data-default-height",win.find(".ui-resizable").height()),win.attr("data-default-width")||win.attr("data-default-width",win.find(".ui-resizable").width());var outer_height_diff=outer?win.find(".jsxc_window").outerHeight()-win.find(".ui-resizable").height():0;ui=$.extend({size:{width:parseInt(win.attr("data-default-width")),height:parseInt(win.attr("data-default-height"))+outer_height_diff}},ui||{}),outer&&(ui.size.height-=outer_height_diff),win.find(".slimScrollDiv").css({width:ui.size.width,height:ui.size.height}),win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height}),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])},fullsize:function(bid){var win=jsxc.gui.window.get(bid),size=jsxc.options.viewport.getSize();size.width-=10,size.height-=win.find(".jsxc_bar").outerHeight()+win.find(".jsxc_textinput").outerHeight(),jsxc.gui.window.resize(win,{size:size})},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);return jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid),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).remove(),jsxc.gui.updateWindowListSB()},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.hasClass("jsxc_min")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){return jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid),duration=0;jsxc.isExtraSmallDevice()&&(parseFloat($("#jsxc_roster").css("right"))>=0&&(duration=jsxc.gui.roster.toggle()),jsxc.gui.window.hide(),jsxc.gui.window.fullsize(bid)),win.removeClass("jsxc_min").addClass("jsxc_normal"),win.find(".jsxc_window").css("bottom","0"),setTimeout(function(){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;left<0&&jsxc.gui.scrollWindowListBy(left*-1),right<0&&jsxc.gui.scrollWindowListBy(right)}},duration),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){var hide=function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)};bid?hide(bid):$("#jsxc_windowList > ul > li").each(function(){var el=$(this);el.hasClass("jsxc_min")||hide(el.attr("data-bid"))})},_hide:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_normal").addClass("jsxc_min"),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),win.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(message){"object"!=typeof message||message instanceof jsxc.Message||(message=new jsxc.Message(message));var data=jsxc.storage.getUserItem("buddy",message.bid);!message.htmlMsg&&message.msg&&(message.htmlMsg=message.msg),message.msg=jsxc.removeHTML(message.msg),message.msg=jsxc.escapeHTML(message.msg),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&message.forwarded!==!0&&(message.direction=jsxc.Message.SYS,message.msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(message.direction="sys",message.msg=$.t("unencrypted_message_received")+" "+message.msg),message.encrypted="boolean"==typeof message.encrypted?message.encrypted:data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;try{message.save()}catch(err){jsxc.warn("Unable to save message.",err),message=new jsxc.Message({msg:"Unable to save that message. Please clear some chat histories.",direction:jsxc.Message.SYS})}return"in"!==message.direction||jsxc.gui.window.get(message.bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(message.bid),$(document).trigger("postmessagein.jsxc",[message.bid,message.htmlMsg])),message.direction===jsxc.Message.OUT&&jsxc.master&&message.forwarded!==!0&&message.htmlMsg&&jsxc.xmpp.sendMessage(message),jsxc.gui.window._postMessage(message),"out"===message.direction&&"?"===message.msg&&jsxc.options.get("theAnswerToAnything")!==!1&&("undefined"==typeof jsxc.options.get("theAnswerToAnything")||100*Math.random()%42<1)&&(jsxc.options.set("theAnswerToAnything",!0),jsxc.gui.window.postMessage(new jsxc.Message({bid:message.bid,direction:jsxc.Message.SYS,msg:"42"}))),message},_postMessage:function(message,restore){var bid=message.bid,win=jsxc.gui.window.get(bid),msg=message.msg,direction=message.direction,uid=message._uid;win.find(".jsxc_textinput").is(":not(:focus)")&&direction===jsxc.Message.IN&&!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+'">xmpp:'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">mailto:'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],":"+val[1]+":")}),msg=jsxc.gui.shortnameToImage(msg),msg=msg.replace(/(\r\n|\r|\n)/g,"<br />");var bidData=jsxc.storage.getUserItem("buddy",bid)||{};"in"===direction&&(msg=msg.replace(/^\/me /,'<i title="/me">'+jsxc.removeHTML(bidData.name||bid)+"</i> ")),msg.match(/^\?OTR([:,|?]|[?v0-9x]+)/)&&(msg='<i title="'+msg+'">'+$.t("Unreadable_OTR_message")+"</i>");var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid.replace(/:/g,"-")),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(message.stamp)),message.isReceived()?msgDiv.addClass("jsxc_received"):msgDiv.removeClass("jsxc_received"),message.forwarded?msgDiv.addClass("jsxc_forwarded"):msgDiv.removeClass("jsxc_forwarded"),message.encrypted?msgDiv.addClass("jsxc_encrypted"):msgDiv.removeClass("jsxc_encrypted"),message.error?msgDiv.addClass("jsxc_error"):msgDiv.removeClass("jsxc_error"),msgDiv.attr("title",message.error),message.attachment&&message.attachment.name){var attachment=$("<div>");attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+message.attachment.type.replace(/\//,"-")),attachment.addClass("jsxc_"+message.attachment.type.replace(/^([^\/]+)\/.*/,"$1")),message.attachment.persistent===!1&&attachment.addClass("jsxc_notPersistent"),message.attachment.data&&attachment.addClass("jsxc_data"),message.attachment.type.match(/^image\//)&&message.attachment.thumbnail?$('<img alt="preview">').attr("src",message.attachment.thumbnail).attr("title",message.attachment.name).appendTo(attachment):attachment.text(message.attachment.name),message.attachment.data&&(attachment=$("<a>").append(attachment),attachment.attr("href",message.attachment.data),attachment.attr("download",message.attachment.name),message.attachment.data===message.msg&&msgDiv.find("div").first().empty()),msgDiv.find("div").first().append(attachment)}if("sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div class="jsxc_clear"/>'):"undefined"!=typeof message.stamp&&msgDiv.append(msgTsDiv),"sys"!==direction&&$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(msg),jsxc.Message.getDOM(uid).length>0?jsxc.Message.getDOM(uid).replaceWith(msgDiv):win.find(".jsxc_textarea").append(msgDiv),"object"==typeof message.sender&&null!==message.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof message.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(message.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(message.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(message.sender.jid),data.avatar),title=jsxc.jidToBid(message.sender.jid)}"string"==typeof message.sender.name&&(msgDiv.attr("data-name",message.sender.name),"string"!=typeof message.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,message.sender.name),""!==title&&(title="\n"+title),title=message.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+message.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title)),msgDiv.prev().length>0&&msgDiv.prev().find(".jsxc_avatar").attr("title")===avatarDiv.attr("title")&&avatarDiv.css("visibility","hidden")}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){var chat=jsxc.storage.getUserItem("chat",bid);if(chat){for(;null!==chat&&chat.length>0;){var c=chat.pop();c.bid=bid,c._uid=c.uid,delete c.uid;var message=new jsxc.Message(c);message.save(),jsxc.gui.window._postMessage(message,!0)}jsxc.storage.removeUserItem("chat",bid)}for(var history=jsxc.storage.getUserItem("history",bid);null!==history&&history.length>0;){var uid=history.pop();jsxc.gui.window._postMessage(new jsxc.Message(uid),!0)}},clear:function(bid){jsxc.storage.removeUserItem("chat",bid);var history=jsxc.storage.getUserItem("history",bid)||[];history.map(function(id){jsxc.storage.removeUserItem("msg",id)}),jsxc.storage.setUserItem("history",bid,[]);var win=jsxc.gui.window.get(bid);win.length>0&&win.find(".jsxc_textarea").empty()},receivedMessage:function(bid,uid){jsxc.warn("Using deprecated receivedMessage.");var message=new jsxc.Message(uid);message.received()},updateProgress:function(message,sent,size){var div=message.getDOM(),span=div.find(".jsxc_timestamp span");0===span.length&&(div.find(".jsxc_timestamp").append("<span>"),span=div.find(".jsxc_timestamp span")),span.text(" "+Math.round(sent/size*100)+"%"),sent===size&&span.remove()},showOverlay:function(bid,content,allowClose){var win=jsxc.gui.window.get(bid);win.find(".jsxc_overlay .jsxc_body").empty().append(content),win.find(".jsxc_overlay .jsxc_close").off("click").click(function(){jsxc.gui.window.hideOverlay(bid)}),allowClose!==!0?win.find(".jsxc_overlay .jsxc_close").hide():win.find(".jsxc_overlay .jsxc_close").show(),win.addClass("jsxc_showOverlay")},hideOverlay:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_showOverlay")},selectResource:function(bid,text,cb,res){if(res=res||jsxc.storage.getUserItem("res",bid)||[],cb=cb||function(){},res.length>0){var i,li,content=$("<div>"),list=$("<ul>");for(i=0;i<res.length;i++)li=$("<li>"),li.append($("<a>").text(res[i])),li.appendTo(list);list.find("a").click(function(ev){ev.preventDefault(),jsxc.gui.window.hideOverlay(bid),cb({status:"selected",result:$(this).text()})}),text&&$("<p>").text(text).appendTo(content),list.appendTo(content),jsxc.gui.window.showOverlay(bid,content)}else cb({status:"unavailable"})},smpRequest:function(bid,question){var content=$("<div>"),p=$("<p>");p.text($.t("smpRequestReceived")),p.appendTo(content);var abort=$("<button>");abort.text($.t("Abort")),abort.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid]&&jsxc.otr.objects[bid].sm.abort()}),abort.appendTo(content);var verify=$("<button>");verify.text($.t("Verify")),verify.addClass("jsxc_btn jsxc_btn-primary"),verify.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.otr.onSmpQuestion(bid,question)}),verify.appendTo(content),jsxc.gui.window.showOverlay(bid,content)},sendFile:function(jid){jsxc.fileTransfer.startGuiAction(jid)}},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?jsxc.escapeHTML(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>"+ret+"</div>"),ret.find("[data-var]").each(function(){var key=$(this).attr("data-var"),val="string"==typeof ph[key]?ph[key]:"(Unknown placeholder: "+key+")";"INPUT"===$(this).prop("tagName").toUpperCase()?$(this).val(val):$(this).text(val)}),ret=ret.find(">*"),ret.localize(ph),ret):(jsxc.debug("Template not available: "+name),name)},jsxc.Message=function(){this._uid=null,this._received=!1,this.encrypted=null,this.forwarded=!1,this.stamp=(new Date).getTime(),this.type=jsxc.Message.PLAIN,"string"==typeof arguments[0]&&arguments[0].length>0&&1===arguments.length?(this._uid=arguments[0],this.load(this._uid)):"object"==typeof arguments[0]&&null!==arguments[0]&&$.extend(this,arguments[0]),this._uid||(this._uid=(new Date).getTime()+":msg")},jsxc.Message.prototype.load=function(uid){var data=jsxc.storage.getUserItem("msg",uid);data||jsxc.debug("Could not load message with uid "+uid),$.extend(this,data)},jsxc.Message.prototype.save=function(){var history;if(this.bid&&(history=jsxc.storage.getUserItem("history",this.bid)||[],history.indexOf(this._uid)<0?history.length>jsxc.options.get("numberOfMsg")&&jsxc.Message.delete(history.pop()):history=null),Image&&this.attachment&&this.attachment.type.match(/^image\//i)&&this.attachment.data&&!this.attachment.thumbnail){var sHeight,sWidth,sx,sy,dHeight=100,dWidth=100,canvas=$("<canvas>").get(0);canvas.width=dWidth,canvas.height=dHeight;var ctx=canvas.getContext("2d"),img=new Image;img.src=this.attachment.data,img.height>img.width?(sHeight=img.width,sWidth=img.width,sx=0,sy=(img.height-img.width)/2):(sHeight=img.height,sWidth=img.height,sx=(img.width-img.height)/2,sy=0),ctx.drawImage(img,sx,sy,sWidth,sHeight,0,0,dWidth,dHeight),this.attachment.thumbnail=canvas.toDataURL(),"out"===this.direction&&(this.attachment.data=null)}var data;return this.attachment&&this.attachment.size>jsxc.options.maxStorableSize&&"in"===this.direction&&(jsxc.debug("Attachment to large to store"),data=this.attachment.data,this.attachment.data=null,this.attachment.persistent=!1),jsxc.storage.setUserItem("msg",this._uid,this),history&&(history.unshift(this._uid),jsxc.storage.setUserItem("history",this.bid,history)),data&&this.attachment&&(this.attachment.data=data),this},jsxc.Message.prototype.delete=function(){jsxc.Message.delete(this._uid)},jsxc.Message.prototype.getDOM=function(){return jsxc.Message.getDOM(this._uid)},jsxc.Message.prototype.received=function(){this._received=!0,this.save(),this.getDOM().addClass("jsxc_received")},jsxc.Message.prototype.isReceived=function(){return this._received},jsxc.Message.delete=function(uid){var data=jsxc.storage.getUserItem("msg",uid);if(data&&(jsxc.storage.removeUserItem("msg",uid),data.bid)){var history=jsxc.storage.getUserItem("history",data.bid)||[];history=$.grep(history,function(el){return el!==uid}),jsxc.storage.setUserItem("history",data.bid,history)}},jsxc.Message.getDOM=function(uid){return $("#"+uid.replace(/:/g,"-"))},jsxc.Message.IN="in",jsxc.Message.OUT="out",jsxc.Message.SYS="sys",jsxc.Message.HTML="html",jsxc.Message.PLAIN="plain",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).off("presence.jsxc",jsxc.muc.onPresence),$(document).off("error.presence.jsxc",jsxc.muc.onPresenceError),$(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 jsxc_groupcontacticon").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),0===$("#jsxc_menu .jsxc_joinChat").length&&$("#jsxc_menu ul .jsxc_about").before(li)},showJoinChat:function(r,p){function loadRoomList(server){return server?void self.conn.muc.listRooms(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").show().removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(stanza){var errTextMsg=$(stanza).find("error text").text()||null;jsxc.warn("Could not load rooms",errTextMsg),errTextMsg&&dialog.find(".jsxc_inputinfo.jsxc_server").show().text(errTextMsg),$(stanza).find("error remote-server-not-found")&&dialog.find("#jsxc_server").addClass("jsxc_invalid"),dialog.find(".jsxc_inputinfo.jsxc_room").hide()}):void dialog.find(".jsxc_inputinfo").hide()}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);var serverInputTimeout;dialog.find("#jsxc_server").val(jsxc.options.get("muc").server),dialog.find("#jsxc_server").on("input",function(){var self=$(this);serverInputTimeout&&(clearTimeout(serverInputTimeout),dialog.find(".jsxc_inputinfo.jsxc_room").hide()),dialog.find(".jsxc_inputinfo.jsxc_server").hide().text(""),dialog.find("#jsxc_server").removeClass("jsxc_invalid"),self.val()&&self.val().match(/^[.-0-9a-zA-Z]+$/i)&&(dialog.find(".jsxc_inputinfo.jsxc_room").show().addClass("jsxc_waiting"),serverInputTimeout=setTimeout(function(){loadRoomList(self.val())},1800))}).trigger("input");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]),$("<p>").addClass("jsxc_warning").text(msg).appendTo(dialog.find(".jsxc_msg"))};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),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),server=dialog.find("#jsxc_server").val();if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(dialog.find("#jsxc_server").hasClass("jsxc_invalid"))return!1;if(room.match(/@(.*)$/)||(room+="@"+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"),password=$("#jsxc_password").val()||null;return jsxc.gui.window.clear(room),jsxc.storage.setUserItem("member",room,{}),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&&i18next.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}"muc_passwordprotected"===feature&&(dialog.find("#jsxc_password").parents(".form-group").removeClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required","required"),dialog.find("#jsxc_password").addClass("jsxc_invalid"))}),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 $("<p>").addClass("jsxc_warning").text($.t("You_already_joined_this_room")).appendTo(dialog.find(".jsxc_msg"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").remove(),void(dialog.find(".jsxc_continue").is(":hidden")&&"jsxc_password"!==$(this).attr("id")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),dialog.find("#jsxc_password").parents(".form-group").addClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required",""),dialog.find("#jsxc_password").removeClass("jsxc_invalid"),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");form.find('[type="checkbox"]').change(function(){$(this).val(this.checked?1:0)});var submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Save"));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){if(!jsxc.master)return void jsxc.tab.execMaster("muc.leave",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){if(!jsxc.master)return void jsxc.tab.execMaster("muc.destroy",room);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({bid:room,direction:jsxc.Message.SYS,msg:$.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),jsxc.storage.getUserItem("budy",room)&&(roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata))},initWindow:function(event,win){var self=jsxc.muc;if(!jsxc.xmpp.conn&&jsxc.master)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);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_settings").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)});var destroy=$("<a>");destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(destroy));var configure=$("<a>");if(configure.text($.t("Configure")),configure.addClass("jsxc_configure"),configure.hide(),configure.click(function(){self.showRoomConfiguration(bid)}),self.conn&&win.find(".jsxc_settings ul").append($("<li>").append(configure)),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(),nickname!==ownNickname||val.affiliation!==self.CONST.AFFILIATION.OWNER&&val.affiliation!==self.CONST.AFFILIATION.OWNER||configure.show()})}var leave=$("<a>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append($("<li>").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)||{},openWindow=!1,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),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&&(openWindow=!0,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({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0})})}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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])}),openWindow&&jsxc.gui.window.open(room),!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({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_enabled")})},171:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_disabled")})},172:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_non-anoymous")})},173:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_banned")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_kicked")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_affiliation")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_membersonly")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0})})},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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({bid:room,direction:jsxc.Message.IN,msg:reason,sender:actor}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:reason}))},insertMember:function(room,nickname,memberdata){var win=jsxc.gui.window.get(room),jid=memberdata.jid,ownBid=jsxc.jidToBid(jsxc.storage.getItem("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)===ownBid&&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,scrollWidth<width||left>0?left=0:left<width-scrollWidth&&(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(id&&jsxc.el_exists(jsxc.Message.getDOM(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.init(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:body,stamp:stamp,sender: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({bid:room,direction:jsxc.Message.SYS,msg:$.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||($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_item-not-found")}):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_forbidden")}):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_not-acceptable")}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.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=$("<a>");$("<span>").addClass("jsxc_icon jsxc_bookmarkicon").appendTo(bo),$("<span>").text($.t("Bookmark")).appendTo(bo),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_menu ul").append($("<li>").append(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).on("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,val.fnName,val.fnParams,key)}},add:function(data,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>"),msg=data.msg,description=data.description;notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),data.type&&notice.addClass("jsxc_"+data.type+"icon"),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num);var saved=jsxc.storage.getUserItem("notices")||{};if(id||(saved[nid]={msg:msg,description:description,type:data.type,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)),Object.keys(saved).length>3&&0===list.find(".jsxc_closeAll").length){var closeAll=$("<li>");closeAll.addClass("jsxc_closeAll jsxc_deleteicon jsxc_warning"),closeAll.text($.t("Close_all")),closeAll.prependTo(list),closeAll.click(jsxc.notice.removeAll)}else Object.keys(saved).length<=3&&0!==list.find(".jsxc_closeAll").length&&list.find(".jsxc_closeAll").remove()},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),Object.keys(s).length<=3&&0!==$("#jsxc_notice .jsxc_closeAll").length&&$("#jsxc_notice .jsxc_closeAll").remove()},removeAll:function(){jsxc.notice._num=0,jsxc.storage.setUserItem("notices",{}),$("#jsxc_notice ul").empty(),$("#jsxc_notice > span").text("")},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){if(val.fnName===fnName)return has=!0,!1}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){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},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add({msg:$.t("Notifications")+"?",description:$.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:!1,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,sid:null,rid:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},formFound:null,loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,ifFound:"attach",startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(data,cb){cb(!0)},carbons:{enable:!0},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,withCredentials:!1,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html",viewport:{getSize:function(){var w=$(window).width()-$("#jsxc_windowListSB").width(),h=$(window).height();return"shown"===jsxc.storage.getUserItem("roster")&&(w-=$("#jsxc_roster").outerWidth(!0)),{width:w,height:h}}},maxStorableSize:1e6,fileTransfer:{httpUpload:{enable:!0}},chatState:{enable:!0},screenMediaExtension:{firefox:"",chrome:""}},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:bid,direction:jsxc.Message.IN,msg:d.msg,encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp,attachment:d.attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp})},sendMessage:function(jid,msg,message){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,message)},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:bid,direction:jsxc.Message.SYS,msg:$.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:bid,direction:"sys",msg: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:bid,direction:jsxc.Message.SYS,msg:$.t("private_conversation_aborted")})):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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":jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_request_received")}),jsxc.gui.window.smpRequest(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:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_failed")}),jsxc.storage.removeUserItem("smp",bid),jsxc.gui.dialog.close("smp");break;case"abort":jsxc.gui.window.hideOverlay(bid),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.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,attachment:meta.attachment})}),jsxc.otr.objects[bid].on("io",function(msg,message){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,message)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:"[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($.t("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question")),$("#jsxc_dialog > div:eq(2)").show()):($("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog > div:eq(3)").show()),$("#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={},void(OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2});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.xmpp.conn.pause(),jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started in fallback mode."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(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))},jsxc.debug("DSA key creation started."),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()),$.each(jsxc.storage.getUserItem("windowlist")||[],function(index,val){jsxc.otr.create(val)})},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback&&(jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close()),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 uk&&!jsxc.bid&&jsxc.warn("Unable to create user prefix"),self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==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){if(!(val instanceof jQuery))return 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&&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){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."),e.newValue&&e.newValue.match(/:master$/)?void jsxc.warn("Master request from master. Something went wrong... :-("):void jsxc.keepAlive();if(!jsxc.master&&("alive"===key||"alive_busy"===key))return jsxc.to=$.grep(jsxc.to,function(timeout){return window.clearTimeout(timeout),!1}),"undefined"==typeof e.newValue||null===e.newValue?void jsxc.xmpp.disconnected():(jsxc.to.push(window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60))),void(jsxc.role_allocation||jsxc.onSlave()));if(jsxc.master&&"sid"===key&&!e.newValue&&jsxc.xmpp.logout(!1),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("^history"+jsxc.storage.SEP)))for(var uid,el,message,history=JSON.parse(e.newValue);history.length>0;)uid=history.pop(),message=new jsxc.Message(uid),el=message.getDOM(),0===el.length?(jsxc.master&&message.direction===jsxc.Message.OUT&&jsxc.xmpp.sendMessage(message.bid,message.msg,message._uid),jsxc.gui.window._postMessage(message,!0)):message.isReceived()&&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("smp"),jsxc.gui.window.hideOverlay(bid),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.gui.window.smpRequest(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),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(0===jsxc.gui.roster.getItem(bid).length)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)}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)),"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(e.newValue),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)),"_cmd"===key&&e.newValue&&(n=JSON.parse(e.newValue)||{},jsxc.storage.removeUserItem("_cmd"),n.cmd&&n.target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.debug("Execute tab cmd: "+n.cmd),jsxc.exec(n.cmd,n.params)))}}}},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.tab={CONST:{MASTER:"master",SLAVE:"slave"},exec:function(target,cmd,params){params=Array.prototype.slice.call(arguments,2),1===params.length&&$.isArray(params[0])&&(params=params[0]),target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.exec(cmd,params),jsxc.master)||jsxc.storage.setUserItem("_cmd",{target:target,cmd:cmd,params:params,rnd:Math.random()})},execMaster:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.MASTER),jsxc.tab.exec.apply(this,args)},execSlave:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.SLAVE),jsxc.tab.exec.apply(this,args)}},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"],reqFileFeatures:["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:file-transfer:3"],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("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onIncoming,self)),manager.on("terminated",$.proxy(self.onTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("receivedFile",$.proxy(self.onReceivedFile,self)),manager.on("sentFile",function(sess,metadata){jsxc.debug("sent "+metadata.hash)}),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("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,xhrFields:{withCredentials:jsxc.options.get("RTCPeerConfig").withCredentials},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,features){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];if(!features)return res;"string"==typeof features&&(features=[features]);var available=[];return $.each(res,function(i,r){self.conn.caps.hasFeatureByJid(bid+"/"+r,features)&&available.push(r)}),available},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_tools .jsxc_settings").after(div);var screenMediaExtension=jsxc.options.get("screenMediaExtension")||{},browser=self.conn.jingle.RTC.webrtcDetectedBrowser;if(screenMediaExtension[browser]||jsxc.storage.getItem("debug")){var a=$("<a>");a.text($.t("Share_screen")),a.addClass("jsxc_shareScreen jsxc_video"),a.attr("href","#"),win.find(".jsxc_settings .jsxc_menu li:last").after($("<li>").append(a))}self.updateIcon(win.data("bid"))}},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 res=Strophe.getResourceFromJid(jid),el=win.find(".jsxc_video"),capableRes=self.getCapableRes(jid,self.reqVideoFeatures),targetRes=res;null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){if(capableRes.indexOf(val)>-1)return targetRes=val,!1}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){$(this).hasClass("jsxc_shareScreen")?self.startScreenSharing(jid):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))})},onMediaFailure:function(ev,err){var msg,self=jsxc.webrtc;switch(err=err||{},self.setStatus("media failure"),err.name){case"NotAllowedError":case"PERMISSION_DENIED":msg=$.t("PermissionDeniedError");break;case"HTTPS_REQUIRED":case"EXTENSION_UNAVAILABLE":msg=$.t(err.name);break;default:msg=$.t(err.name)!==err.name?$.t(err.name):$.t("UNKNOWN_ERROR")}jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jsxc.webrtc.last_caller),direction:jsxc.Message.SYS,msg:$.t("Media_failure")+": "+msg+" ("+err.name+")."}),jsxc.gui.dialog.close(),jsxc.debug("media failure: "+err.name)},onIncoming:function(session){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;if("FileTransferSession"===type)self.onIncomingFileTransfer(session);else if("MediaSession"===type){var reqMedia=!1;$.each(session.pc.remoteDescription.contents,function(){"both"===this.senders&&(reqMedia=!0)}),session.call=reqMedia,reqMedia?self.onIncomingCall(session):self.onIncomingStream(session)}else jsxc.warn("Unknown session type.")},onIncomingStream:function(session){function acceptIncomingStream(session){jsxc.gui.dialog.close(),jsxc.gui.showVideoWindow(session.peerID),session.accept()}jsxc.debug("incoming stream from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postScreenMessage(bid,$.t("Incoming_stream"),session.sid),jsxc.notification.notify($.t("Incoming_stream"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void acceptIncomingStream(session);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"),acceptIncomingStream(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onIncomingFileTransfer:function(session){jsxc.debug("incoming file transfer from "+session.peerID);var buddylist=jsxc.storage.getUserItem("buddylist")||[],bid=jsxc.jidToBid(session.peerID);if(buddylist.indexOf(bid)>-1){session.accept();var message=jsxc.gui.window.postMessage({_uid:session.sid+":msg",bid:bid,direction:jsxc.Message.IN,attachment:{name:session.receiver.metadata.name,type:session.receiver.metadata.type||"application/octet-stream"}});session.receiver.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size)})}},onIncomingCall:function(session){jsxc.debug("incoming call from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(bid,$.t("Incoming_call"),session.sid),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.acceptIncomingCall(session);var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){self.acceptIncomingCall(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},acceptIncomingCall:function(session){$(document).trigger("accept.call.jsxc");var self=jsxc.webrtc;jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.setStatus("Accept call"),self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(session.peerID);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()},onTerminated:function(session,reason){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;"MediaSession"===type&&self.onCallTerminated(session,reason)},onCallTerminated:function(session,reason){var self=jsxc.webrtc;self.setStatus("call terminated "+session.peerID+(reason&&reason.condition?reason.condition:""));var bid=jsxc.jidToBid(session.peerID);if(self.localStream)if("function"==typeof self.localStream.getTracks){var tracks=self.localStream.getTracks();tracks.forEach(function(track){track.stop()})}else"function"==typeof self.localStream.stop?self.localStream.stop():jsxc.warn("Could not stop local stream");$(".jsxc_remotevideo").length&&($(".jsxc_remotevideo")[0].src=""),$(".jsxc_localvideo").length&&($(".jsxc_localvideo")[0].src=""),self.conn.jingle.localStream=null,self.localStream=null,self.remoteStream=null,jsxc.gui.closeVideoWindow(),jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),$(document).off("error.jingle");var msg=(reason&&reason.condition?": "+$.t("jingle_reason_"+reason.condition):"")+".";session.call?(msg=$.t("Call_terminated")+msg,jsxc.webrtc.postCallMessage(bid,msg,session.sid)):(msg=$.t("Stream_terminated")+msg,jsxc.webrtc.postScreenMessage(bid,msg,session.sid))},onCallRinging:function(){this.setStatus("ringing...",0),$(".jsxc_videoContainer").removeClass("jsxc_establishing").addClass("jsxc_ringing")},onRemoteStreamAdded:function(session,stream){var self=jsxc.webrtc;self.setStatus("Remote stream for session "+session.sid+" added."),self.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;self.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),self.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(self.attachMediaStream($("#jsxc_webrtc .jsxc_remotevideo"),stream),$("#jsxc_webrtc .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),$(element).show()},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_webrtc .jsxc_deviceAvailable").show():"failed"===state?(jsxc.gui.window.postMessage({bid:jsxc.jidToBid(session.peerID),direction:jsxc.Message.SYS,msg:$.t("ICE_connection_failure")}),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=jsxc.webrtc;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){jsxc.debug("media ready for outgoing call"),self.initiateOutgoingCall(jid,stream)},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},initiateOutgoingCall:function(jid,stream){var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(jid);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),self.setStatus("Initiate call"),$(document).one("error.jingle",function(ev,sid,error){error&&"offer"!==error.source||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.call=!0,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(jsxc.jidToBid(jid),$.t("Call_started"),session.sid)},hangUp:function(reason,text){jsxc.webrtc.conn.jingle.manager&&!$.isEmptyObject(jsxc.webrtc.conn.jingle.manager.peers)?jsxc.webrtc.conn.jingle.terminate(null,reason,text):jsxc.gui.closeVideoWindow(),$(document).trigger("callterminated.jingle")},startScreenSharing:function(jid){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.initiateScreenSharing(jid,stream)},"mediafailure.jingle":function(ev,err){jsxc.gui.dialog.close();var browser=self.conn.jingle.RTC.webrtcDetectedBrowser,screenMediaExtension=jsxc.options.get("screenMediaExtension")||{};screenMediaExtension[browser]&&("EXTENSION_UNAVAILABLE"===err.name||"NotAllowedError"===err.name&&"firefox"===browser)&&setTimeout(function(){jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jid),direction:jsxc.Message.SYS,msg:$.t("Install_extension")+screenMediaExtension[browser]})},500)}}),void self.reqUserMedia(["screen"]))},initiateScreenSharing:function(jid,stream){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid);jsxc.webrtc.localStream=stream,jsxc.webrtc.conn.jingle.localStream=stream;var container=jsxc.gui.showMinimizedVideoWindow();container.addClass("jsxc_establishing"),self.setStatus("Initiate stream"),$(document).one("error.jingle",function(e,sid,error){error&&"offer"!==error.source||setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.");
+},500)});var constraints,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,browserVersion=self.conn.jingle.RTC.webrtcDetectedVersion;constraints=browserVersion<33&&"firefox"===browser||"chrome"===browser?{mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}}:{offerToReceiveAudio:!1,offerToReceiveVideo:!1};var session=self.conn.jingle.initiate(jid,void 0,constraints);session.call=!1,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),session.on("accepted",function(){self.onSessionAccepted(session)}),self.postScreenMessage(bid,$.t("Stream_started"),session.sid)},onSessionAccepted:function(session){var self=jsxc.webrtc;$(".jsxc_videoContainer").removeClass("jsxc_ringing"),self.postScreenMessage(jsxc.jidToBid(session.peerID),$.t("Connection_accepted"),session.sid)},reqUserMedia:function(um){function filterUserMedia(devices){var availableDevices=devices.map(function(device){return device.kind});um=um.filter(function(el){return availableDevices.indexOf(el)!==-1||availableDevices.indexOf(el+"input")!==-1}),um.length?jsxc.webrtc.getUserMedia(um):jsxc.warn("No audio/video device available.")}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}),void(um.indexOf("screen")>=0?jsxc.webrtc.getScreenMedia():"undefined"!=typeof navigator&&"undefined"!=typeof navigator.mediaDevices&&"undefined"!=typeof navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then(filterUserMedia).catch(function(err){jsxc.warn(err.name+": "+err.message)}):"undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(filterUserMedia):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")}},getScreenMedia:function(){var self=jsxc.webrtc;jsxc.debug("get screen media"),self.conn.jingle.getScreenMedia(self.screenMediaCallback)},screenMediaCallback:function(err,stream){return err?void $(document).trigger("mediafailure.jingle",[err]):void(stream&&(jsxc.debug("onScreenMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])))},screenMediaAvailable:function(){var self=jsxc.webrtc,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,chrome=!!sessionStorage.getScreenMediaJSExtensionId&&"chrome"===browser,firefox="firefox"===browser;return chrome||firefox},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()},sendFile:function(jid,file){jsxc.debug("Send file via webrtc");var self=jsxc.webrtc;if(!Strophe.getResourceFromJid(jid))return void jsxc.warn("Require full jid to send file via webrtc");var sess=self.conn.jingle.manager.createFileTransferSession(jid);return sess.on("change:sessionState",function(){jsxc.debug("Session state",sess.state)}),sess.on("change:connectionState",function(){jsxc.debug("Connection state",sess.connectionState)}),sess.start(file),sess},onReceivedFile:function(sess,file,metadata){if(jsxc.debug("file received",metadata),FileReader){var type,reader=new FileReader;if(metadata.type)type=metadata.type;else{var ext=metadata.name.replace(/.+\.([a-z0-9]+)$/i,"$1").toLowerCase();switch(ext){case"jpg":case"jpeg":case"png":case"gif":case"svg":type="image/"+ext.replace(/^jpg$/,"jpeg");break;case"mp3":case"wav":type="audio/"+ext;break;case"pdf":type="application/pdf";break;case"txt":type="text/"+ext;break;default:type="application/octet-stream"}}reader.onload=function(ev){jsxc.gui.window.postMessage({_uid:sess.sid+":msg",bid:jsxc.jidToBid(sess.peerID),direction:jsxc.Message.IN,attachment:{name:metadata.name,type:type,size:metadata.size,data:ev.target.result}})},file.type||(file=new File([file],metadata.name,{type:type})),reader.readAsDataURL(file)}}},jsxc.webrtc.postCallMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":telephone_receiver: "+msg})},jsxc.webrtc.postScreenMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":computer: "+msg})},jsxc.gui.showMinimizedVideoWindow=function(){var self=jsxc.webrtc;jsxc.gui.dialog.close();var videoContainer=$("<div/>");videoContainer.addClass("jsxc_videoContainer jsxc_minimized"),videoContainer.appendTo("body"),videoContainer.draggable({containment:"parent"});var videoElement=$('<video class="jsxc_localvideo" autoplay=""></video>');return videoElement.appendTo(videoContainer),videoElement[0].muted=!0,videoElement[0].volume=0,self.localStream&&self.attachMediaStream(videoElement,self.localStream),videoContainer.append('<div class="jsxc_controlbar"><div><div class="jsxc_hangUp jsxc_videoControl"></div></div></div></div>'),videoContainer.find(".jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),videoContainer.click(function(){videoContainer.find(".jsxc_controlbar").toggleClass("jsxc_visible")}),videoContainer},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;jsxc.gui.dialog.close(),$("body").append(jsxc.gui.template.get("videoWindow")),$("#jsxc_webrtc .jsxc_localvideo")[0].muted=!0,$("#jsxc_webrtc .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_webrtc .jsxc_remotevideo"),lv=$("#jsxc_webrtc .jsxc_localvideo");lv.draggable({containment:"parent"}),self.localStream&&self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_webrtc").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_webrtc .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_webrtc .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var win=jsxc.gui.window.open(jsxc.jidToBid(jid));return win.find(".slimScrollDiv").resizable("disable"),jsxc.gui.window.resize(win,{size:{width:$("#jsxc_webrtc .jsxc_chatarea").width(),height:$("#jsxc_webrtc .jsxc_chatarea").height()}},!0),$("#jsxc_webrtc .jsxc_chatarea ul").append(win.detach()),$("#jsxc_webrtc .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_webrtc .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_webrtc .jsxc_videoContainer").fullscreen())}),$("#jsxc_webrtc .jsxc_videoContainer").click(function(){$("#jsxc_webrtc .jsxc_controlbar").toggleClass("jsxc_visible")}),$("#jsxc_webrtc")},jsxc.gui.closeVideoWindow=function(){var win=$("#jsxc_webrtc .jsxc_chatarea > ul > li");win.length>0&&($("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),jsxc.gui.window.resize(win)),$("#jsxc_webrtc, .jsxc_videoContainer").remove()},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(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)}),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(function(){jsxc.debug("Bookmark node created.")},function(){jsxc.debug("Could not create bookmark node.")})):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.xmpp.chatState={conn:null,toComposingNotificationDelay:900},jsxc.xmpp.chatState.init=function(){var self=jsxc.xmpp.chatState;return jsxc.xmpp.conn&&jsxc.xmpp.connected?($(document).off("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).off("paused.chatstates",jsxc.xmpp.chatState.onPaused),$(document).off("active.chatstates",jsxc.xmpp.chatState.onActive),self.isDisabled()?void jsxc.debug("chat state notification disabled"):(self.conn=jsxc.xmpp.conn,$(document).on("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).on("paused.chatstates",jsxc.xmpp.chatState.onPaused),void $(document).on("active.chatstates",jsxc.xmpp.chatState.onActive))):void $(document).on("attached.jsxc",self.init)},jsxc.xmpp.chatState.onComposing=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()&&("groupchat"!==data.type||Strophe.getResourceFromJid(jid)!==Strophe.getNodeFromJid(self.conn.jid))){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){clearTimeout(win.data("composing-timeout"));var usersComposing=win.data("composing")||[];usersComposing.indexOf(user)===-1&&(usersComposing.push(user),win.data("composing",usersComposing));var textarea=win.find(".jsxc_textarea"),composingNotif=textarea.find(".jsxc_composing");composingNotif.length<1&&(composingNotif=$("<div>").addClass("jsxc_composing").addClass("jsxc_chatmessage").addClass("jsxc_sys").appendTo(textarea));var msg=self._genComposingMsg(usersComposing);composingNotif.text(msg),jsxc.gui.window.scrollDown(bid),composingNotif.addClass("jsxc_fadein")}}},jsxc.xmpp.chatState.onPaused=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){var el=win.find(".jsxc_composing"),usersComposing=win.data("composing")||[];if(usersComposing.indexOf(user)>=0&&(usersComposing.splice(usersComposing.indexOf(user),1),win.data("composing",usersComposing)),0===usersComposing.length){var durationValue=el.css("transition-duration")||"0s",duration=parseFloat(durationValue)||0;durationValue.match(/[^m]s$/)&&(duration*=1e3),el.removeClass("jsxc_fadein");var to=setTimeout(function(){el.remove()},duration);win.data("composing-timeout",to)}else el.text(self._genComposingMsg(usersComposing))}}},jsxc.xmpp.chatState.onActive=function(ev,jid){jsxc.xmpp.chatState.onPaused(ev,jid)},jsxc.xmpp.chatState.startComposing=function(bid){var self=jsxc.xmpp.chatState;if(jsxc.xmpp.conn&&jsxc.xmpp.conn.chatstates&&!jsxc.xmpp.chatState.isDisabled()){var win=jsxc.gui.window.get(bid),timeout=win.data("composing-timeout"),type=win.hasClass("jsxc_groupchat")?"groupchat":"chat";timeout?clearTimeout(timeout):jsxc.xmpp.conn.chatstates.sendComposing(bid,type),timeout=setTimeout(function(){self.pauseComposing(bid,type),win.data("composing-timeout",null)},self.toComposingNotificationDelay),win.data("composing-timeout",timeout)}},jsxc.xmpp.chatState.pauseComposing=function(bid,type){jsxc.xmpp.chatState.isDisabled()||jsxc.xmpp.conn.chatstates.sendPaused(bid,type)},jsxc.xmpp.chatState.endComposing=function(bid){var win=jsxc.gui.window.get(bid);win.data("composing-timeout")&&clearTimeout(win.data("composing-timeout"))},jsxc.xmpp.chatState._genComposingMsg=function(usersComposing){return usersComposing&&0!==usersComposing.length?usersComposing.length>1?usersComposing.join(", ")+$.t("_are_composing"):usersComposing[0]+$.t("_is_composing"):(jsxc.debug("usersComposing array is empty?"),"")},jsxc.xmpp.chatState.isDisabled=function(){var options=jsxc.options.get("chatState")||{};return!options.enable},$(document).on("attached.jsxc",jsxc.xmpp.chatState.init),jsxc.xmpp.httpUpload={conn:null,ready:!1,CONST:{NS:{HTTPUPLOAD:"urn:xmpp:http:upload"}}},jsxc.xmpp.httpUpload.init=function(o){var self=jsxc.xmpp.httpUpload;self.conn=jsxc.xmpp.conn;var fileTransferOptions=jsxc.options.get("fileTransfer")||{},options=o||jsxc.options.get("httpUpload");if(!fileTransferOptions.httpUpload.enable)return jsxc.debug("http upload disabled"),void jsxc.options.set("httpUpload",!1);if(options&&options.server)return void(self.ready=!0);var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;return caps&&domain&&"undefined"!=typeof caps._knownCapabilities[caps._jidVerIndex[domain]]?void(caps.hasFeatureByJid(domain,self.CONST.NS.HTTPUPLOAD)?self.discoverUploadService():jsxc.debug(domain+" does not support http upload")):(jsxc.debug("Waiting for server capabilities"),void $(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(self.init(),$(document).off("caps.strophe",onCaps))}))},jsxc.xmpp.httpUpload.discoverUploadService=function(){var self=jsxc.xmpp.httpUpload;jsxc.debug("discover http upload service"),self.queryItemForUploadService(self.conn.domain),self.conn.disco.items(self.conn.domain,null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid");return!self.ready&&void self.queryItemForUploadService(jid)})})},jsxc.xmpp.httpUpload.queryItemForUploadService=function(jid,cb){var self=jsxc.xmpp.httpUpload;jsxc.debug("query "+jid+" for upload service"),self.conn.disco.info(jid,null,function(info){var httpUploadFeature=$(info).find('feature[var="'+self.CONST.NS.HTTPUPLOAD+'"]'),httpUploadMaxSize=$(info).find('field[var="max-file-size"]');httpUploadFeature.length>0&&(jsxc.debug("http upload service found on "+jid),jsxc.options.set("httpUpload",{server:jid,name:$(info).find("identity").attr("name"),maxSize:parseInt(httpUploadMaxSize.text())}),self.ready=!0,"function"==typeof cb&&cb.call(info))})},jsxc.xmpp.httpUpload.sendFile=function(file,message){jsxc.debug("Send file via http upload");var self=jsxc.xmpp.httpUpload;message.encrypted=!1,self.requestSlot(file,function(data){data?data.error?(jsxc.warn('The xmpp server responded with an error of the type "'+data.error.type+'"'),message.getDOM().remove(),jsxc.gui.window.postMessage({bid:message.bid,direction:jsxc.Message.SYS,msg:data.error.text}),message.delete()):data.get&&data.put&&self.uploadFile(data.put,file,message,function(){var a=$("<a>");a.attr("href",data.get),a.attr("data-name",message.attachment.name),a.attr("data-type",message.attachment.type),a.attr("data-size",message.attachment.size),message.attachment.thumbnail&&a.attr("data-thumbnail",message.attachment.thumbnail),a.text(data.get),message.attachment.data=data.get,message.msg=$("<span>").append(a).html(),message.type=jsxc.Message.HTML,jsxc.gui.window.postMessage(message)}):jsxc.warn("Unknown error occured. Please check the debug log.")})},jsxc.xmpp.httpUpload.uploadFile=function(url,file,message,success_cb){$.ajax({url:url,type:"PUT",contentType:"application/octet-stream",data:file,processData:!1,xhr:function(){var xhr=$.ajaxSettings.xhr();return xhr.upload.onprogress=function(ev){ev.lengthComputable&&jsxc.gui.window.updateProgress(message,ev.loaded,ev.total)},xhr},success:function(){jsxc.debug("file successful uploaded"),jsxc.gui.window.updateProgress(message,1,1),success_cb&&success_cb()},error:function(){jsxc.warn("error while uploading file to "+url),message.error="Could not upload file",jsxc.gui.window.postMessage(message)}})},jsxc.xmpp.httpUpload.requestSlot=function(file,cb){var self=jsxc.xmpp.httpUpload,options=jsxc.options.get("httpUpload");if(!options||!options.server)return void jsxc.warn("could not request upload slot, because I am not aware of a server or http upload is disabled");var iq=$iq({to:options.server,type:"get"}).c("request",{xmlns:self.CONST.NS.HTTPUPLOAD}).c("filename").t(file.name).up().c("size").t(file.size);self.conn.sendIQ(iq,function(stanza){self.successfulRequestSlotCB(stanza,cb)},function(stanza){self.failedRequestSlotCB(stanza,cb)})},jsxc.xmpp.httpUpload.successfulRequestSlotCB=function(stanza,cb){var self=jsxc.xmpp.httpUpload,slot=$(stanza).find('slot[xmlns="'+self.CONST.NS.HTTPUPLOAD+'"]');if(slot.length>0){var put=slot.find("put").text(),get=slot.find("get").text();cb({put:put,get:get})}else self.failedRequestSlotCB(stanza,cb)},jsxc.xmpp.httpUpload.failedRequestSlotCB=function(stanza,cb){if($(stanza).find("error").length<=0)return jsxc.warn("response does not contain a slot element"),void cb();var error={type:$(stanza).find("error").attr("type")||"unknown",text:$(stanza).find("error text").text()};$(stanza).find("error not-acceptable")?error.reason="not-acceptable":$(stanza).find("error resource-constraint")?error.reason="resource-constraint":$(stanza).find("error not-allowed")&&(error.reason="not-allowed"),cb({error:error})},$(document).on("stateChange.jsxc",function(ev,state){state===jsxc.CONST.STATE.READY&&jsxc.xmpp.httpUpload.init()}),jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b><span data-var="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 <span data-var="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 class="jsxc_credits">\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>,\n <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>,\n <a href="http://www.picol.org/">Picol (Fullscreen icon)</a>, <a href="http://www.jabber.org/">Jabber Software Foundation (Jabber lightbulb logo)</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/strophe/strophejs-plugins/tree/master/chatstates">strophe.js/chatstates</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://i18next.com/">jquery-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), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\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> <span data-var="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.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 class="jsxc_hidden">\n <p data-i18n="To_verify_the_fingerprint_" class="jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="my_priv_fingerprint"/></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="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 class="form-horizontal jsxc_hidden">\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 class="form-horizontal jsxc_hidden">\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.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.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_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 <div class="jsxc_more"></div>\n <div class="jsxc_inner jsxc_menu">\n <ul>\n <li>\n <a class="jsxc_verification" href="#">\n <span data-i18n="Authentication"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_clear" href="#">\n <span data-i18n="clear_history"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_sendFile" href="#">\n <span data-i18n="Send_file"></span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_overlay">\n <div>\n <div class="jsxc_body" />\n <div class="jsxc_close" />\n </div>\n </div>\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_clear"></li>\n </ul>\n </div>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <textarea class="jsxc_textinput" data-i18n="[placeholder]Message"></textarea>\n </div>\n </div>\n</li>\n',
+jsxc.gui.template.confirmDialog='<p data-var="msg"></p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="jsxc_btn jsxc_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 class="jsxc_uppercase" data-var="my_priv_fingerprint"></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="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> <span data-var="bid_name" />?\n</p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="jsxc_btn jsxc_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" pattern="^[.-0-9a-zA-Z]+" />\n <p class="jsxc_inputinfo jsxc_server jsxc_hidden"></p>\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 <p class="jsxc_inputinfo jsxc_room" data-i18n="Rooms_are_loaded"></p>\n </div>\n </div>\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 jsxc_hidden">\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 <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" data-var="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.notification='<h3></h3>\n\n<p class="jsxc_msg"></p>\n\n<p class="jsxc_meta"></p>\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 jsxc_rosteritem" data-bid="own">\n <div id="jsxc_avatar" class="jsxc_avatar" />\n <div id="jsxc_menu">\n <span></span>\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_settings jsxc_settingsicon" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_addBuddy jsxc_contacticon" data-i18n="Add_buddy"></li>\n <li class="jsxc_onlineHelp jsxc_helpicon" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <div class="jsxc_inner">\n <ul></ul>\n </div>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Offline">Offline</span>\n <div class="jsxc_inner">\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>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li class="jsxc_rosteritem">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_more" />\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n <div class="jsxc_menu">\n <ul>\n <li><a class="jsxc_rename" href="#"><span class="jsxc_icon jsxc_editicon"></span><span data-i18n="rename_buddy"></span></a></li>\n <li><a class="jsxc_vcard" href=""><span class="jsxc_icon jsxc_infoicon"></span><span data-i18n="get_info"></span></a></li>\n <li><a class="jsxc_delete" href=""><span class="jsxc_icon jsxc_deleteicon"></span><span data-i18n="delete_buddy"></span></a></li>\n </ul>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <h3 data-i18n="Login_options"></h3>\n <p data-i18n="setting-explanation-xmpp"></p>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <h3 data-i18n="Priority"></h3>\n <p data-i18n="setting-explanation-priority"></p>\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 col-sm-6">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <h3 data-i18n="On_login"></h3>\n <p data-i18n="setting-explanation-login"></p>\n <div class="form-group">\n <div class="col-sm-12">\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-12">\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 col-sm-6" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Carbon_copy"></h3>\n <p data-i18n="setting-explanation-carbon"></p>\n <div class="form-group">\n <div class="col-sm-12">\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-12">\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 col-sm-6" data-onsubmit="xmpp.chatState.init">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Chat_state_notifications"></h3>\n <p data-i18n="setting-explanation-chat-state"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="chatState-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\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 data-var="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 id="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="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n <div class="jsxc_controlbar jsxc_visible">\n <div>\n <div class="jsxc_hangUp jsxc_videoControl" />\n <div class="jsxc_fullscreen jsxc_videoControl" />\n </div>\n </div>\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 data-var="msg"></h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" 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 4a15e5e..29d0c14 100644
--- a/build/js/jsxc/jsxc.min.js.map
+++ b/build/js/jsxc/jsxc.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepaliveInterval","reconnect","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","currentState","currentUIState","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","HIDDEN","SHOWN","STATE","INITIATING","PREVCONFOUND","SUSPEND","TRYTOINTERCEPT","INTERCEPTED","ESTABLISHING","READY","UISTATE","getFormattedTime","unixtime","msgDate","Date","parseInt","day","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","date","toLocaleDateString","time","toLocaleTimeString","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","changeState","loginForm","attachIfFound","ifFound","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","languages","length","substr","language","defaultLang","window","i18next","lng","fallbackLng","resources","I18next","interpolation","prefix","suffix","jqueryI18next","tName","i18nName","handleName","otr","addEventListener","onStorage","document","on","registerLogout","isStorageAttachParameters","isOptionsAttachParameters","xmpp","rid","sid","jid","isForceLoginForm","isLoginForm","removeItem","displayRosterMinimized","setUserItem","gui","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","off","ev","preventDefault","prepareLogin","settings","enabled","enable","onlogin","triggered","login","password","submitLoginForm","onMaster","checkMaster","start","args","arguments","conn","connected","one","onRidChange","_proto","apply","this","logoutElement","logout","stopPropagation","el_exists","pass","username","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","jidToBid","split","old","onSlave","removeClass","updateAvatar","restore","setItem","startKeepAlive","setTimeout","keepAlive","masterActions","authenticated","noti","notification","hasSupport","hasPermission","prepareRequest","createDSA","setInterval","timeout","role","next","keepBusyAlive","clearTimeout","clearInterval","ink","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","restoreRoster","buddies","add","loaded","trigger","empty","restoreWindows","windows","win","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","isExtraSmallDevice","width","state","Object","keys","changeUIState","url","attached","disconnected","onConnfail","onAuthFail","addNamespace","Connection","xmlInput","xmlOutput","nextValidRid","callback","status","condition","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","create","numOtr","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","initNewConnection","saveSessionParameter","onConnected","dialog","close","resume","addHandler","onRosterChanged","onChatMessage","onHeadlineMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","_knownCapabilities","_requestCapabilities","sendPres","remove","iq","$iq","type","xmlns","sendIQ","onRoster","nomJid","getResourceFromJid","removeUserElement","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","ready","location","attr","showAuthFail","name","sub","saveBuddy","res","rnd","bookmarks","load","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","resFriendReq","addBuddy","approve","description","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","body","htmlBody","XHTML","mid","delay","stamp","direction","Message","OUT","IN","postMessage","encrypted","request","chat","saveMessage","updateUserItem","$msg","id","attachment","httpUploadElement","size","thumbnail","undefined","receiveMsg","getDomainFromJid","subject","alias","removeBuddy","subscription","received","receivedId","sendMessage","htmlMsg","mucRoomNames","muc","roomNames","isMucBid","sendMsg","_sendMessage","isBar","xmlMsg","_uid","HTML","XHTML_IM","xmlElement","innerHTML","appendChild","chatstates","chatState","isDisabled","CHATSTATES","loadVcard","error_cb","vcard","result","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","fileTransfer","formatByte","byte","round","startGuiAction","httpUpload","showFileSelection","selectResource","success_cb","fileCapableRes","webrtc","getCapableRes","reqFileFeatures","hideOverlay","addClass","showOverlay","change","file","target","files","fileSelected","transportMethod","maxSize","fileSize","SYS","append","FileReader","img","appendTo","reader","onload","readAsDataURL","sess","sendFile","sender","sent","updateProgress","updateIcons","emotions","favicon","regShortNames","emoticonList","core",":klaus:",":jabber:",":xmpp:",":jsxc:",":owncloud:",":nextcloud:","emojione","emojioneList","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","showJoinChat","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","updatePresence","trust","info","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","handler_cb","vCard","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","hasClass","toggleClass","mouseleave","mouseenter","showLoginBox","alert","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","getUsers","list","uid","displayname","option","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","jquery","screen","height","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","switchClass","saveSettinsPermanent","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","showNotification","changePresence","external","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","shortnameToImage","shortname","filename","root","fname","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","bud","insert","rename","expandClick","scrollTo","history","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","parseFloat","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","resizeTextarea","outerHeight","scrollHeight","toggleTransfer","clear","textinputBlurTimeout","startComposing","shiftKey","endComposing","getSelection","resizable","handles","minHeight","minWidth","event","ui","stop","inArray","ins","restoreChat","outer","outer_height_diff","fullsize","viewport","getSize","highlight","parents","_show","innerWidth","outerWidth","position","left","scrollDown","_hide","is","effect","MSGSTATE_FINISHED","save","_postMessage","protocol","bidData","msgDiv","msgTsDiv","isReceived","persistent","first","getDOM","avatarDiv","prependTo","pop","map","receivedMessage","span","allowClose","smpRequest","question","p","abort","sm","verify","onSmpQuestion","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","localize","_received","PLAIN","prototype","delete","Image","sHeight","sWidth","sx","sy","dHeight","dWidth","canvas","ctx","getContext","drawImage","toDataURL","maxStorableSize","unshift","grep","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","discovered","mucFeature","MUC","mucIdentity","loadRoomList","listRooms","rjid","rnode","rname","errTextMsg","serverInputTimeout","error_handler","room","roomIndex","splice","rooms","discoReceived","roomName","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","tab","execMaster","own","onExited","roomdata","destroy","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","openWindow","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","onStatus","110","170","171","172","173","201","createInstantRoom","301","postReason","307","321","322","332","actor","reason","memberdata","ownBid","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","nid","now","closeAll","removeAll","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","withCredentials","iceServers","urls","w","h","screenMediaExtension","firefox","chrome","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","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","variable","Number","removeElement","re","newValue","oldValue","n","transferReq","cmd","MASTER","SLAVE","Array","execSlave","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMessage","onMediaFailure","proxy","onIncoming","onTerminated","onCallRinging","onReceivedFile","metadata","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","xhrFields","credential","dataType","features","available","browser","webrtcDetectedBrowser","a","updateIcon","capableRes","targetRes","startScreenSharing","startCall","setStatus","margin-left","display","animate","session","constructor","onIncomingFileTransfer","reqMedia","pc","remoteDescription","contents","senders","onIncomingCall","onIncomingStream","acceptIncomingStream","showVideoWindow","peerID","accept","onIceConnectionStateChanged","postScreenMessage","ring","decline","buddylist","receiver","postCallMessage","acceptIncomingCall","mediaready.jingle","stream","addStream","mediafailure.jingle","reqUserMedia","onCallTerminated","getTracks","tracks","forEach","track","closeVideoWindow","isVideoDevice","getVideoTracks","isAudioDevice","getAudioTracks","attachMediaStream","end","um","initiateOutgoingCall","initiate","hangUp","isEmptyObject","peers","terminate","initiateScreenSharing","showMinimizedVideoWindow","constraints","browserVersion","webrtcDetectedVersion","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","offerToReceiveAudio","offerToReceiveVideo","onSessionAccepted","filterUserMedia","devices","availableDevices","device","kind","filter","getUserMedia","getScreenMedia","mediaDevices","enumerateDevices","then","catch","MediaStreamTrack","getSources","video","screenMediaCallback","screenMediaAvailable","sessionStorage","getScreenMediaJSExtensionId","snapshot","createFileTransferSession","connectionState","ext","File","videoContainer","draggable","containment","videoElement","muted","volume","rv","lv","w_dialog","w_remote","scale","new_h","new_w","vc","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal","toComposingNotificationDelay","onComposing","onPaused","onActive","user","usersComposing","textarea","composingNotif","_genComposingMsg","durationValue","sendComposing","pauseComposing","sendPaused","HTTPUPLOAD","fileTransferOptions","discoverUploadService","httpUploadFeature","httpUploadMaxSize","requestSlot","put","uploadFile","contentType","processData","xhr","ajaxSettings","upload","onprogress","lengthComputable","successfulRequestSlotCB","failedRequestSlotCB","slot"],"mappings":"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","file":"jsxc.min.js"} \ No newline at end of file
+{"version":3,"sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepaliveInterval","reconnect","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","currentState","currentUIState","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","HIDDEN","SHOWN","STATE","INITIATING","PREVCONFOUND","SUSPEND","TRYTOINTERCEPT","INTERCEPTED","ESTABLISHING","READY","UISTATE","getFormattedTime","unixtime","msgDate","Date","parseInt","day","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","date","toLocaleDateString","time","toLocaleTimeString","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","changeState","loginForm","attachIfFound","ifFound","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","languages","length","substr","language","defaultLang","window","i18next","lng","fallbackLng","resources","I18next","interpolation","prefix","suffix","jqueryI18next","tName","i18nName","handleName","otr","addEventListener","onStorage","document","on","registerLogout","isStorageAttachParameters","isOptionsAttachParameters","xmpp","rid","sid","jid","isForceLoginForm","isLoginForm","removeItem","displayRosterMinimized","setUserItem","gui","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","off","ev","preventDefault","prepareLogin","settings","enabled","enable","onlogin","triggered","login","password","submitLoginForm","onMaster","checkMaster","start","args","arguments","conn","connected","one","onRidChange","_proto","apply","this","logoutElement","logout","stopPropagation","el_exists","pass","username","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","jidToBid","split","old","onSlave","removeClass","updateAvatar","restore","setItem","startKeepAlive","setTimeout","keepAlive","masterActions","authenticated","noti","notification","hasSupport","hasPermission","prepareRequest","createDSA","setInterval","timeout","role","next","keepBusyAlive","clearTimeout","clearInterval","ink","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","restoreRoster","buddies","add","loaded","trigger","empty","restoreWindows","windows","win","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","isExtraSmallDevice","width","state","Object","keys","changeUIState","url","attached","disconnected","onConnfail","onAuthFail","addNamespace","Connection","xmlInput","xmlOutput","nextValidRid","callback","status","condition","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","create","numOtr","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","initNewConnection","saveSessionParameter","onConnected","dialog","close","resume","addHandler","onRosterChanged","onChatMessage","onHeadlineMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","_knownCapabilities","_requestCapabilities","sendPres","remove","iq","$iq","type","xmlns","sendIQ","onRoster","nomJid","getResourceFromJid","removeUserElement","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","ready","location","attr","showAuthFail","name","sub","saveBuddy","res","rnd","bookmarks","load","iqSender","ownBareJid","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","resFriendReq","addBuddy","approve","description","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","originalSender","body","htmlBody","XHTML","mid","delay","stamp","direction","Message","OUT","IN","postMessage","encrypted","request","chat","saveMessage","updateUserItem","$msg","id","attachment","httpUploadElement","size","thumbnail","undefined","receiveMsg","getDomainFromJid","subject","alias","removeBuddy","subscription","received","receivedId","sendMessage","htmlMsg","mucRoomNames","muc","roomNames","isMucBid","sendMsg","_sendMessage","isBar","xmlMsg","_uid","HTML","XHTML_IM","xmlElement","innerHTML","appendChild","chatstates","chatState","isDisabled","CHATSTATES","loadVcard","error_cb","vcard","result","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","fileTransfer","formatByte","byte","round","startGuiAction","httpUpload","showFileSelection","selectResource","success_cb","fileCapableRes","webrtc","getCapableRes","reqFileFeatures","hideOverlay","addClass","showOverlay","change","file","target","files","fileSelected","transportMethod","maxSize","fileSize","SYS","append","FileReader","img","appendTo","reader","onload","readAsDataURL","sess","sendFile","sender","sent","updateProgress","updateIcons","emotions","favicon","regShortNames","emoticonList","core",":klaus:",":jabber:",":xmpp:",":jsxc:",":owncloud:",":nextcloud:","emojione","emojioneList","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","showJoinChat","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","updatePresence","trust","info","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","handler_cb","vCard","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","hasClass","toggleClass","mouseleave","mouseenter","showLoginBox","alert","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","getUsers","list","uid","displayname","option","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","jquery","screen","height","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","switchClass","saveSettinsPermanent","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","showNotification","changePresence","external","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","shortnameToImage","shortname","filename","root","fname","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","bud","insert","rename","expandClick","scrollTo","history","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","parseFloat","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","resizeTextarea","outerHeight","scrollHeight","toggleTransfer","clear","textinputBlurTimeout","startComposing","shiftKey","endComposing","getSelection","resizable","handles","minHeight","minWidth","event","ui","stop","inArray","ins","restoreChat","outer","outer_height_diff","fullsize","viewport","getSize","highlight","parents","_show","innerWidth","outerWidth","position","left","scrollDown","_hide","is","effect","MSGSTATE_FINISHED","save","_postMessage","protocol","bidData","msgDiv","msgTsDiv","isReceived","persistent","first","getDOM","avatarDiv","prependTo","pop","map","receivedMessage","span","allowClose","smpRequest","question","p","abort","sm","verify","onSmpQuestion","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","localize","_received","PLAIN","prototype","delete","Image","sHeight","sWidth","sx","sy","dHeight","dWidth","canvas","ctx","getContext","drawImage","toDataURL","maxStorableSize","unshift","grep","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","discovered","mucFeature","MUC","mucIdentity","loadRoomList","listRooms","rjid","rnode","rname","errTextMsg","serverInputTimeout","error_handler","room","roomIndex","splice","rooms","discoReceived","roomName","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","tab","execMaster","own","onExited","roomdata","destroy","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","openWindow","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","onStatus","110","170","171","172","173","201","createInstantRoom","301","postReason","307","321","322","332","actor","reason","memberdata","ownBid","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","nid","now","closeAll","removeAll","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","withCredentials","iceServers","urls","w","h","screenMediaExtension","firefox","chrome","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","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","variable","Number","removeElement","re","newValue","oldValue","n","transferReq","cmd","MASTER","SLAVE","Array","execSlave","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMessage","onMediaFailure","proxy","onIncoming","onTerminated","onCallRinging","onReceivedFile","metadata","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","xhrFields","credential","dataType","features","available","browser","webrtcDetectedBrowser","a","updateIcon","capableRes","targetRes","startScreenSharing","startCall","setStatus","margin-left","display","animate","session","constructor","onIncomingFileTransfer","reqMedia","pc","remoteDescription","contents","senders","onIncomingCall","onIncomingStream","acceptIncomingStream","showVideoWindow","peerID","accept","onIceConnectionStateChanged","postScreenMessage","ring","decline","buddylist","receiver","postCallMessage","acceptIncomingCall","mediaready.jingle","stream","addStream","mediafailure.jingle","reqUserMedia","onCallTerminated","getTracks","tracks","forEach","track","closeVideoWindow","isVideoDevice","getVideoTracks","isAudioDevice","getAudioTracks","attachMediaStream","end","um","initiateOutgoingCall","initiate","hangUp","isEmptyObject","peers","terminate","initiateScreenSharing","showMinimizedVideoWindow","constraints","browserVersion","webrtcDetectedVersion","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","offerToReceiveAudio","offerToReceiveVideo","onSessionAccepted","filterUserMedia","devices","availableDevices","device","kind","filter","getUserMedia","getScreenMedia","mediaDevices","enumerateDevices","then","catch","MediaStreamTrack","getSources","video","screenMediaCallback","screenMediaAvailable","sessionStorage","getScreenMediaJSExtensionId","snapshot","createFileTransferSession","connectionState","ext","File","videoContainer","draggable","containment","videoElement","muted","volume","rv","lv","w_dialog","w_remote","scale","new_h","new_w","vc","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal","toComposingNotificationDelay","onComposing","onPaused","onActive","user","usersComposing","textarea","composingNotif","_genComposingMsg","durationValue","sendComposing","pauseComposing","sendPaused","HTTPUPLOAD","fileTransferOptions","discoverUploadService","queryItemForUploadService","httpUploadFeature","httpUploadMaxSize","requestSlot","put","uploadFile","contentType","processData","xhr","ajaxSettings","upload","onprogress","lengthComputable","successfulRequestSlotCB","failedRequestSlotCB","slot"],"mappings":"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","file":"jsxc.min.js"} \ No newline at end of file
diff --git a/build/js/jsxc/lib/dsa-ww.js b/build/js/jsxc/lib/dsa-ww.js
deleted file mode 100644
index fe9dd51..0000000
--- a/build/js/jsxc/lib/dsa-ww.js
+++ /dev/null
@@ -1,50 +0,0 @@
-;
-(function(root) {
- "use strict";
-
- root.OTR = {}
- root.crypto = {}
- root.DSA = {};
-
- // default imports
- var imports = [
- 'build/dep/salsa20.js',
- 'build/dep/bigint.js',
- 'build/dep/crypto.js',
- 'build/dep/eventemitter.js',
- 'lib/const.js',
- 'lib/helpers.js',
- 'lib/dsa.js',
- ]
-
- function sendMsg(type, data) {
- postMessage({
- type: type,
- data: data,
- })
- }
-
- self.onmessage = function(e) {
- var data = e.data;
-
- root.crypto = {
- getRandomValues: function() {
- var buf = data.random;
- }
- };
-
- if (data.imports)
- imports = data.imports
-
- importScripts.apply(self, imports);
-
- sendMsg('debug', 'DSA key creation started')
-
- var dsa = new DSA()
-
- sendMsg('debug', 'DSA key creation finished')
-
- sendMsg('data', {key: dsa.packPrivate()})
- }
-
-}(this)) \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/lib/js/emojione.js b/build/js/jsxc/lib/emojione/lib/js/emojione.js
deleted file mode 100644
index 051bc9c..0000000
--- a/build/js/jsxc/lib/emojione/lib/js/emojione.js
+++ /dev/null
@@ -1,515 +0,0 @@
-/* jshint maxerr: 10000 */
-/* jslint unused: true */
-/* jshint shadow: true */
-/* jshint -W075 */
-(function(ns){
- // this list must be ordered from largest length of the value array, index 0, to the shortest
- ns.emojioneList = {":kiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": true},":couplekiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": false},":kiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": true},":couplekiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": false},":family_mmbb:":{"unicode":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],"fname":"1f468-1f468-1f466-1f466","uc":"1f468-200d-1f468-200d-1f466-200d-1f466","isCanonical": true},":family_mmgb:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],"fname":"1f468-1f468-1f467-1f466","uc":"1f468-200d-1f468-200d-1f467-200d-1f466","isCanonical": true},":family_mmgg:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],"fname":"1f468-1f468-1f467-1f467","uc":"1f468-200d-1f468-200d-1f467-200d-1f467","isCanonical": true},":family_mwbb:":{"unicode":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],"fname":"1f468-1f469-1f466-1f466","uc":"1f468-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_mwgb:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],"fname":"1f468-1f469-1f467-1f466","uc":"1f468-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_mwgg:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],"fname":"1f468-1f469-1f467-1f467","uc":"1f468-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":family_wwbb:":{"unicode":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],"fname":"1f469-1f469-1f466-1f466","uc":"1f469-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_wwgb:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],"fname":"1f469-1f469-1f467-1f466","uc":"1f469-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_wwgg:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],"fname":"1f469-1f469-1f467-1f467","uc":"1f469-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":couple_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": true},":couple_with_heart_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": false},":couple_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": true},":couple_with_heart_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": false},":family_mmb:":{"unicode":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],"fname":"1f468-1f468-1f466","uc":"1f468-200d-1f468-200d-1f466","isCanonical": true},":family_mmg:":{"unicode":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],"fname":"1f468-1f468-1f467","uc":"1f468-200d-1f468-200d-1f467","isCanonical": true},":family_mwg:":{"unicode":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],"fname":"1f468-1f469-1f467","uc":"1f468-200d-1f469-200d-1f467","isCanonical": true},":family_wwb:":{"unicode":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],"fname":"1f469-1f469-1f466","uc":"1f469-200d-1f469-200d-1f466","isCanonical": true},":family_wwg:":{"unicode":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],"fname":"1f469-1f469-1f467","uc":"1f469-200d-1f469-200d-1f467","isCanonical": true},":rainbow_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": true},":gay_pride_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": false},":eye_in_speech_bubble:":{"unicode":["1f441-200d-1f5e8","1f441-1f5e8"],"fname":"1f441-1f5e8","uc":"1f441-200d-1f5e8","isCanonical": true},":hash:":{"unicode":["0023-fe0f-20e3","0023-20e3"],"fname":"0023-20e3","uc":"0023-20e3","isCanonical": true},":zero:":{"unicode":["0030-fe0f-20e3","0030-20e3"],"fname":"0030-20e3","uc":"0030-20e3","isCanonical": true},":one:":{"unicode":["0031-fe0f-20e3","0031-20e3"],"fname":"0031-20e3","uc":"0031-20e3","isCanonical": true},":two:":{"unicode":["0032-fe0f-20e3","0032-20e3"],"fname":"0032-20e3","uc":"0032-20e3","isCanonical": true},":three:":{"unicode":["0033-fe0f-20e3","0033-20e3"],"fname":"0033-20e3","uc":"0033-20e3","isCanonical": true},":four:":{"unicode":["0034-fe0f-20e3","0034-20e3"],"fname":"0034-20e3","uc":"0034-20e3","isCanonical": true},":five:":{"unicode":["0035-fe0f-20e3","0035-20e3"],"fname":"0035-20e3","uc":"0035-20e3","isCanonical": true},":six:":{"unicode":["0036-fe0f-20e3","0036-20e3"],"fname":"0036-20e3","uc":"0036-20e3","isCanonical": true},":seven:":{"unicode":["0037-fe0f-20e3","0037-20e3"],"fname":"0037-20e3","uc":"0037-20e3","isCanonical": true},":eight:":{"unicode":["0038-fe0f-20e3","0038-20e3"],"fname":"0038-20e3","uc":"0038-20e3","isCanonical": true},":nine:":{"unicode":["0039-fe0f-20e3","0039-20e3"],"fname":"0039-20e3","uc":"0039-20e3","isCanonical": true},":asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": true},":keycap_asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": false},":handball_tone5:":{"unicode":["1f93e-1f3ff"],"fname":"1f93e-1f3ff","uc":"1f93e-1f3ff","isCanonical": true},":handball_tone4:":{"unicode":["1f93e-1f3fe"],"fname":"1f93e-1f3fe","uc":"1f93e-1f3fe","isCanonical": true},":handball_tone3:":{"unicode":["1f93e-1f3fd"],"fname":"1f93e-1f3fd","uc":"1f93e-1f3fd","isCanonical": true},":handball_tone2:":{"unicode":["1f93e-1f3fc"],"fname":"1f93e-1f3fc","uc":"1f93e-1f3fc","isCanonical": true},":handball_tone1:":{"unicode":["1f93e-1f3fb"],"fname":"1f93e-1f3fb","uc":"1f93e-1f3fb","isCanonical": true},":water_polo_tone5:":{"unicode":["1f93d-1f3ff"],"fname":"1f93d-1f3ff","uc":"1f93d-1f3ff","isCanonical": true},":water_polo_tone4:":{"unicode":["1f93d-1f3fe"],"fname":"1f93d-1f3fe","uc":"1f93d-1f3fe","isCanonical": true},":water_polo_tone3:":{"unicode":["1f93d-1f3fd"],"fname":"1f93d-1f3fd","uc":"1f93d-1f3fd","isCanonical": true},":water_polo_tone2:":{"unicode":["1f93d-1f3fc"],"fname":"1f93d-1f3fc","uc":"1f93d-1f3fc","isCanonical": true},":water_polo_tone1:":{"unicode":["1f93d-1f3fb"],"fname":"1f93d-1f3fb","uc":"1f93d-1f3fb","isCanonical": true},":wrestlers_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": true},":wrestling_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": false},":wrestlers_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": true},":wrestling_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": false},":wrestlers_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": true},":wrestling_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": false},":wrestlers_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": true},":wrestling_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": false},":wrestlers_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": true},":wrestling_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": false},":juggling_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": true},":juggler_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": false},":juggling_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": true},":juggler_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": false},":juggling_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": true},":juggler_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": false},":juggling_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": true},":juggler_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": false},":juggling_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": true},":juggler_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": false},":cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": true},":person_doing_cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": false},":cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": true},":person_doing_cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": false},":cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": true},":person_doing_cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": false},":cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": true},":person_doing_cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": false},":cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": true},":person_doing_cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": false},":shrug_tone5:":{"unicode":["1f937-1f3ff"],"fname":"1f937-1f3ff","uc":"1f937-1f3ff","isCanonical": true},":shrug_tone4:":{"unicode":["1f937-1f3fe"],"fname":"1f937-1f3fe","uc":"1f937-1f3fe","isCanonical": true},":shrug_tone3:":{"unicode":["1f937-1f3fd"],"fname":"1f937-1f3fd","uc":"1f937-1f3fd","isCanonical": true},":shrug_tone2:":{"unicode":["1f937-1f3fc"],"fname":"1f937-1f3fc","uc":"1f937-1f3fc","isCanonical": true},":shrug_tone1:":{"unicode":["1f937-1f3fb"],"fname":"1f937-1f3fb","uc":"1f937-1f3fb","isCanonical": true},":mrs_claus_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": true},":mother_christmas_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": false},":mrs_claus_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": true},":mother_christmas_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": false},":mrs_claus_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": true},":mother_christmas_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": false},":mrs_claus_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": true},":mother_christmas_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": false},":mrs_claus_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": true},":mother_christmas_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": false},":man_in_tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": true},":tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": false},":man_in_tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": true},":tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": false},":man_in_tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": true},":tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": false},":man_in_tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": true},":tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": false},":man_in_tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": true},":tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": false},":prince_tone5:":{"unicode":["1f934-1f3ff"],"fname":"1f934-1f3ff","uc":"1f934-1f3ff","isCanonical": true},":prince_tone4:":{"unicode":["1f934-1f3fe"],"fname":"1f934-1f3fe","uc":"1f934-1f3fe","isCanonical": true},":prince_tone3:":{"unicode":["1f934-1f3fd"],"fname":"1f934-1f3fd","uc":"1f934-1f3fd","isCanonical": true},":prince_tone2:":{"unicode":["1f934-1f3fc"],"fname":"1f934-1f3fc","uc":"1f934-1f3fc","isCanonical": true},":prince_tone1:":{"unicode":["1f934-1f3fb"],"fname":"1f934-1f3fb","uc":"1f934-1f3fb","isCanonical": true},":selfie_tone5:":{"unicode":["1f933-1f3ff"],"fname":"1f933-1f3ff","uc":"1f933-1f3ff","isCanonical": true},":selfie_tone4:":{"unicode":["1f933-1f3fe"],"fname":"1f933-1f3fe","uc":"1f933-1f3fe","isCanonical": true},":selfie_tone3:":{"unicode":["1f933-1f3fd"],"fname":"1f933-1f3fd","uc":"1f933-1f3fd","isCanonical": true},":selfie_tone2:":{"unicode":["1f933-1f3fc"],"fname":"1f933-1f3fc","uc":"1f933-1f3fc","isCanonical": true},":selfie_tone1:":{"unicode":["1f933-1f3fb"],"fname":"1f933-1f3fb","uc":"1f933-1f3fb","isCanonical": true},":pregnant_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": true},":expecting_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": false},":pregnant_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": true},":expecting_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": false},":pregnant_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": true},":expecting_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": false},":pregnant_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": true},":expecting_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": false},":pregnant_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": true},":expecting_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": false},":face_palm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": true},":facepalm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": false},":face_palm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": true},":facepalm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": false},":face_palm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": true},":facepalm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": false},":face_palm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": true},":facepalm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": false},":face_palm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": true},":facepalm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": false},":fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": false},":fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": false},":fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": false},":fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": false},":fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": false},":handshake_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": true},":shaking_hands_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": false},":handshake_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": true},":shaking_hands_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": false},":handshake_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": true},":shaking_hands_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": false},":handshake_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": true},":shaking_hands_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": false},":handshake_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": true},":shaking_hands_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": false},":right_facing_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": true},":right_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": false},":right_facing_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": true},":right_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": false},":right_facing_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": true},":right_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": false},":right_facing_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": true},":right_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": false},":right_facing_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": true},":right_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": false},":left_facing_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": true},":left_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": false},":left_facing_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": true},":left_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": false},":left_facing_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": true},":left_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": false},":left_facing_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": true},":left_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": false},":left_facing_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": true},":left_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": false},":raised_back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": true},":back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": false},":raised_back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": true},":back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": false},":raised_back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": true},":back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": false},":raised_back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": true},":back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": false},":raised_back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": true},":back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": false},":call_me_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": true},":call_me_hand_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": false},":call_me_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": true},":call_me_hand_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": false},":call_me_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": true},":call_me_hand_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": false},":call_me_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": true},":call_me_hand_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": false},":call_me_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": true},":call_me_hand_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": false},":metal_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": true},":sign_of_the_horns_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": false},":metal_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": true},":sign_of_the_horns_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": false},":metal_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": true},":sign_of_the_horns_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": false},":metal_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": true},":sign_of_the_horns_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": false},":metal_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": true},":sign_of_the_horns_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": false},":bath_tone5:":{"unicode":["1f6c0-1f3ff"],"fname":"1f6c0-1f3ff","uc":"1f6c0-1f3ff","isCanonical": true},":bath_tone4:":{"unicode":["1f6c0-1f3fe"],"fname":"1f6c0-1f3fe","uc":"1f6c0-1f3fe","isCanonical": true},":bath_tone3:":{"unicode":["1f6c0-1f3fd"],"fname":"1f6c0-1f3fd","uc":"1f6c0-1f3fd","isCanonical": true},":bath_tone2:":{"unicode":["1f6c0-1f3fc"],"fname":"1f6c0-1f3fc","uc":"1f6c0-1f3fc","isCanonical": true},":bath_tone1:":{"unicode":["1f6c0-1f3fb"],"fname":"1f6c0-1f3fb","uc":"1f6c0-1f3fb","isCanonical": true},":walking_tone5:":{"unicode":["1f6b6-1f3ff"],"fname":"1f6b6-1f3ff","uc":"1f6b6-1f3ff","isCanonical": true},":walking_tone4:":{"unicode":["1f6b6-1f3fe"],"fname":"1f6b6-1f3fe","uc":"1f6b6-1f3fe","isCanonical": true},":walking_tone3:":{"unicode":["1f6b6-1f3fd"],"fname":"1f6b6-1f3fd","uc":"1f6b6-1f3fd","isCanonical": true},":walking_tone2:":{"unicode":["1f6b6-1f3fc"],"fname":"1f6b6-1f3fc","uc":"1f6b6-1f3fc","isCanonical": true},":walking_tone1:":{"unicode":["1f6b6-1f3fb"],"fname":"1f6b6-1f3fb","uc":"1f6b6-1f3fb","isCanonical": true},":mountain_bicyclist_tone5:":{"unicode":["1f6b5-1f3ff"],"fname":"1f6b5-1f3ff","uc":"1f6b5-1f3ff","isCanonical": true},":mountain_bicyclist_tone4:":{"unicode":["1f6b5-1f3fe"],"fname":"1f6b5-1f3fe","uc":"1f6b5-1f3fe","isCanonical": true},":mountain_bicyclist_tone3:":{"unicode":["1f6b5-1f3fd"],"fname":"1f6b5-1f3fd","uc":"1f6b5-1f3fd","isCanonical": true},":mountain_bicyclist_tone2:":{"unicode":["1f6b5-1f3fc"],"fname":"1f6b5-1f3fc","uc":"1f6b5-1f3fc","isCanonical": true},":mountain_bicyclist_tone1:":{"unicode":["1f6b5-1f3fb"],"fname":"1f6b5-1f3fb","uc":"1f6b5-1f3fb","isCanonical": true},":bicyclist_tone5:":{"unicode":["1f6b4-1f3ff"],"fname":"1f6b4-1f3ff","uc":"1f6b4-1f3ff","isCanonical": true},":bicyclist_tone4:":{"unicode":["1f6b4-1f3fe"],"fname":"1f6b4-1f3fe","uc":"1f6b4-1f3fe","isCanonical": true},":bicyclist_tone3:":{"unicode":["1f6b4-1f3fd"],"fname":"1f6b4-1f3fd","uc":"1f6b4-1f3fd","isCanonical": true},":bicyclist_tone2:":{"unicode":["1f6b4-1f3fc"],"fname":"1f6b4-1f3fc","uc":"1f6b4-1f3fc","isCanonical": true},":bicyclist_tone1:":{"unicode":["1f6b4-1f3fb"],"fname":"1f6b4-1f3fb","uc":"1f6b4-1f3fb","isCanonical": true},":rowboat_tone5:":{"unicode":["1f6a3-1f3ff"],"fname":"1f6a3-1f3ff","uc":"1f6a3-1f3ff","isCanonical": true},":rowboat_tone4:":{"unicode":["1f6a3-1f3fe"],"fname":"1f6a3-1f3fe","uc":"1f6a3-1f3fe","isCanonical": true},":rowboat_tone3:":{"unicode":["1f6a3-1f3fd"],"fname":"1f6a3-1f3fd","uc":"1f6a3-1f3fd","isCanonical": true},":rowboat_tone2:":{"unicode":["1f6a3-1f3fc"],"fname":"1f6a3-1f3fc","uc":"1f6a3-1f3fc","isCanonical": true},":rowboat_tone1:":{"unicode":["1f6a3-1f3fb"],"fname":"1f6a3-1f3fb","uc":"1f6a3-1f3fb","isCanonical": true},":pray_tone5:":{"unicode":["1f64f-1f3ff"],"fname":"1f64f-1f3ff","uc":"1f64f-1f3ff","isCanonical": true},":pray_tone4:":{"unicode":["1f64f-1f3fe"],"fname":"1f64f-1f3fe","uc":"1f64f-1f3fe","isCanonical": true},":pray_tone3:":{"unicode":["1f64f-1f3fd"],"fname":"1f64f-1f3fd","uc":"1f64f-1f3fd","isCanonical": true},":pray_tone2:":{"unicode":["1f64f-1f3fc"],"fname":"1f64f-1f3fc","uc":"1f64f-1f3fc","isCanonical": true},":pray_tone1:":{"unicode":["1f64f-1f3fb"],"fname":"1f64f-1f3fb","uc":"1f64f-1f3fb","isCanonical": true},":person_with_pouting_face_tone5:":{"unicode":["1f64e-1f3ff"],"fname":"1f64e-1f3ff","uc":"1f64e-1f3ff","isCanonical": true},":person_with_pouting_face_tone4:":{"unicode":["1f64e-1f3fe"],"fname":"1f64e-1f3fe","uc":"1f64e-1f3fe","isCanonical": true},":person_with_pouting_face_tone3:":{"unicode":["1f64e-1f3fd"],"fname":"1f64e-1f3fd","uc":"1f64e-1f3fd","isCanonical": true},":person_with_pouting_face_tone2:":{"unicode":["1f64e-1f3fc"],"fname":"1f64e-1f3fc","uc":"1f64e-1f3fc","isCanonical": true},":person_with_pouting_face_tone1:":{"unicode":["1f64e-1f3fb"],"fname":"1f64e-1f3fb","uc":"1f64e-1f3fb","isCanonical": true},":person_frowning_tone5:":{"unicode":["1f64d-1f3ff"],"fname":"1f64d-1f3ff","uc":"1f64d-1f3ff","isCanonical": true},":person_frowning_tone4:":{"unicode":["1f64d-1f3fe"],"fname":"1f64d-1f3fe","uc":"1f64d-1f3fe","isCanonical": true},":person_frowning_tone3:":{"unicode":["1f64d-1f3fd"],"fname":"1f64d-1f3fd","uc":"1f64d-1f3fd","isCanonical": true},":person_frowning_tone2:":{"unicode":["1f64d-1f3fc"],"fname":"1f64d-1f3fc","uc":"1f64d-1f3fc","isCanonical": true},":person_frowning_tone1:":{"unicode":["1f64d-1f3fb"],"fname":"1f64d-1f3fb","uc":"1f64d-1f3fb","isCanonical": true},":raised_hands_tone5:":{"unicode":["1f64c-1f3ff"],"fname":"1f64c-1f3ff","uc":"1f64c-1f3ff","isCanonical": true},":raised_hands_tone4:":{"unicode":["1f64c-1f3fe"],"fname":"1f64c-1f3fe","uc":"1f64c-1f3fe","isCanonical": true},":raised_hands_tone3:":{"unicode":["1f64c-1f3fd"],"fname":"1f64c-1f3fd","uc":"1f64c-1f3fd","isCanonical": true},":raised_hands_tone2:":{"unicode":["1f64c-1f3fc"],"fname":"1f64c-1f3fc","uc":"1f64c-1f3fc","isCanonical": true},":raised_hands_tone1:":{"unicode":["1f64c-1f3fb"],"fname":"1f64c-1f3fb","uc":"1f64c-1f3fb","isCanonical": true},":raising_hand_tone5:":{"unicode":["1f64b-1f3ff"],"fname":"1f64b-1f3ff","uc":"1f64b-1f3ff","isCanonical": true},":raising_hand_tone4:":{"unicode":["1f64b-1f3fe"],"fname":"1f64b-1f3fe","uc":"1f64b-1f3fe","isCanonical": true},":raising_hand_tone3:":{"unicode":["1f64b-1f3fd"],"fname":"1f64b-1f3fd","uc":"1f64b-1f3fd","isCanonical": true},":raising_hand_tone2:":{"unicode":["1f64b-1f3fc"],"fname":"1f64b-1f3fc","uc":"1f64b-1f3fc","isCanonical": true},":raising_hand_tone1:":{"unicode":["1f64b-1f3fb"],"fname":"1f64b-1f3fb","uc":"1f64b-1f3fb","isCanonical": true},":bow_tone5:":{"unicode":["1f647-1f3ff"],"fname":"1f647-1f3ff","uc":"1f647-1f3ff","isCanonical": true},":bow_tone4:":{"unicode":["1f647-1f3fe"],"fname":"1f647-1f3fe","uc":"1f647-1f3fe","isCanonical": true},":bow_tone3:":{"unicode":["1f647-1f3fd"],"fname":"1f647-1f3fd","uc":"1f647-1f3fd","isCanonical": true},":bow_tone2:":{"unicode":["1f647-1f3fc"],"fname":"1f647-1f3fc","uc":"1f647-1f3fc","isCanonical": true},":bow_tone1:":{"unicode":["1f647-1f3fb"],"fname":"1f647-1f3fb","uc":"1f647-1f3fb","isCanonical": true},":ok_woman_tone5:":{"unicode":["1f646-1f3ff"],"fname":"1f646-1f3ff","uc":"1f646-1f3ff","isCanonical": true},":ok_woman_tone4:":{"unicode":["1f646-1f3fe"],"fname":"1f646-1f3fe","uc":"1f646-1f3fe","isCanonical": true},":ok_woman_tone3:":{"unicode":["1f646-1f3fd"],"fname":"1f646-1f3fd","uc":"1f646-1f3fd","isCanonical": true},":ok_woman_tone2:":{"unicode":["1f646-1f3fc"],"fname":"1f646-1f3fc","uc":"1f646-1f3fc","isCanonical": true},":ok_woman_tone1:":{"unicode":["1f646-1f3fb"],"fname":"1f646-1f3fb","uc":"1f646-1f3fb","isCanonical": true},":no_good_tone5:":{"unicode":["1f645-1f3ff"],"fname":"1f645-1f3ff","uc":"1f645-1f3ff","isCanonical": true},":no_good_tone4:":{"unicode":["1f645-1f3fe"],"fname":"1f645-1f3fe","uc":"1f645-1f3fe","isCanonical": true},":no_good_tone3:":{"unicode":["1f645-1f3fd"],"fname":"1f645-1f3fd","uc":"1f645-1f3fd","isCanonical": true},":no_good_tone2:":{"unicode":["1f645-1f3fc"],"fname":"1f645-1f3fc","uc":"1f645-1f3fc","isCanonical": true},":no_good_tone1:":{"unicode":["1f645-1f3fb"],"fname":"1f645-1f3fb","uc":"1f645-1f3fb","isCanonical": true},":vulcan_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": false},":vulcan_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": false},":vulcan_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": false},":vulcan_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": false},":vulcan_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": false},":middle_finger_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": false},":middle_finger_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": false},":middle_finger_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": false},":middle_finger_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": false},":middle_finger_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": false},":hand_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": true},":raised_hand_with_fingers_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": false},":hand_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": true},":raised_hand_with_fingers_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": false},":hand_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": true},":raised_hand_with_fingers_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": false},":hand_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": true},":raised_hand_with_fingers_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": false},":hand_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": true},":raised_hand_with_fingers_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": false},":man_dancing_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": true},":male_dancer_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": false},":man_dancing_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": true},":male_dancer_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": false},":man_dancing_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": true},":male_dancer_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": false},":man_dancing_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": true},":male_dancer_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": false},":man_dancing_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": true},":male_dancer_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": false},":spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": true},":sleuth_or_spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": false},":spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": true},":sleuth_or_spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": false},":spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": true},":sleuth_or_spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": false},":spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": true},":sleuth_or_spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": false},":spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": true},":sleuth_or_spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": false},":muscle_tone5:":{"unicode":["1f4aa-1f3ff"],"fname":"1f4aa-1f3ff","uc":"1f4aa-1f3ff","isCanonical": true},":muscle_tone4:":{"unicode":["1f4aa-1f3fe"],"fname":"1f4aa-1f3fe","uc":"1f4aa-1f3fe","isCanonical": true},":muscle_tone3:":{"unicode":["1f4aa-1f3fd"],"fname":"1f4aa-1f3fd","uc":"1f4aa-1f3fd","isCanonical": true},":muscle_tone2:":{"unicode":["1f4aa-1f3fc"],"fname":"1f4aa-1f3fc","uc":"1f4aa-1f3fc","isCanonical": true},":muscle_tone1:":{"unicode":["1f4aa-1f3fb"],"fname":"1f4aa-1f3fb","uc":"1f4aa-1f3fb","isCanonical": true},":haircut_tone5:":{"unicode":["1f487-1f3ff"],"fname":"1f487-1f3ff","uc":"1f487-1f3ff","isCanonical": true},":haircut_tone4:":{"unicode":["1f487-1f3fe"],"fname":"1f487-1f3fe","uc":"1f487-1f3fe","isCanonical": true},":haircut_tone3:":{"unicode":["1f487-1f3fd"],"fname":"1f487-1f3fd","uc":"1f487-1f3fd","isCanonical": true},":haircut_tone2:":{"unicode":["1f487-1f3fc"],"fname":"1f487-1f3fc","uc":"1f487-1f3fc","isCanonical": true},":haircut_tone1:":{"unicode":["1f487-1f3fb"],"fname":"1f487-1f3fb","uc":"1f487-1f3fb","isCanonical": true},":massage_tone5:":{"unicode":["1f486-1f3ff"],"fname":"1f486-1f3ff","uc":"1f486-1f3ff","isCanonical": true},":massage_tone4:":{"unicode":["1f486-1f3fe"],"fname":"1f486-1f3fe","uc":"1f486-1f3fe","isCanonical": true},":massage_tone3:":{"unicode":["1f486-1f3fd"],"fname":"1f486-1f3fd","uc":"1f486-1f3fd","isCanonical": true},":massage_tone2:":{"unicode":["1f486-1f3fc"],"fname":"1f486-1f3fc","uc":"1f486-1f3fc","isCanonical": true},":massage_tone1:":{"unicode":["1f486-1f3fb"],"fname":"1f486-1f3fb","uc":"1f486-1f3fb","isCanonical": true},":nail_care_tone5:":{"unicode":["1f485-1f3ff"],"fname":"1f485-1f3ff","uc":"1f485-1f3ff","isCanonical": true},":nail_care_tone4:":{"unicode":["1f485-1f3fe"],"fname":"1f485-1f3fe","uc":"1f485-1f3fe","isCanonical": true},":nail_care_tone3:":{"unicode":["1f485-1f3fd"],"fname":"1f485-1f3fd","uc":"1f485-1f3fd","isCanonical": true},":nail_care_tone2:":{"unicode":["1f485-1f3fc"],"fname":"1f485-1f3fc","uc":"1f485-1f3fc","isCanonical": true},":nail_care_tone1:":{"unicode":["1f485-1f3fb"],"fname":"1f485-1f3fb","uc":"1f485-1f3fb","isCanonical": true},":dancer_tone5:":{"unicode":["1f483-1f3ff"],"fname":"1f483-1f3ff","uc":"1f483-1f3ff","isCanonical": true},":dancer_tone4:":{"unicode":["1f483-1f3fe"],"fname":"1f483-1f3fe","uc":"1f483-1f3fe","isCanonical": true},":dancer_tone3:":{"unicode":["1f483-1f3fd"],"fname":"1f483-1f3fd","uc":"1f483-1f3fd","isCanonical": true},":dancer_tone2:":{"unicode":["1f483-1f3fc"],"fname":"1f483-1f3fc","uc":"1f483-1f3fc","isCanonical": true},":dancer_tone1:":{"unicode":["1f483-1f3fb"],"fname":"1f483-1f3fb","uc":"1f483-1f3fb","isCanonical": true},":guardsman_tone5:":{"unicode":["1f482-1f3ff"],"fname":"1f482-1f3ff","uc":"1f482-1f3ff","isCanonical": true},":guardsman_tone4:":{"unicode":["1f482-1f3fe"],"fname":"1f482-1f3fe","uc":"1f482-1f3fe","isCanonical": true},":guardsman_tone3:":{"unicode":["1f482-1f3fd"],"fname":"1f482-1f3fd","uc":"1f482-1f3fd","isCanonical": true},":guardsman_tone2:":{"unicode":["1f482-1f3fc"],"fname":"1f482-1f3fc","uc":"1f482-1f3fc","isCanonical": true},":guardsman_tone1:":{"unicode":["1f482-1f3fb"],"fname":"1f482-1f3fb","uc":"1f482-1f3fb","isCanonical": true},":information_desk_person_tone5:":{"unicode":["1f481-1f3ff"],"fname":"1f481-1f3ff","uc":"1f481-1f3ff","isCanonical": true},":information_desk_person_tone4:":{"unicode":["1f481-1f3fe"],"fname":"1f481-1f3fe","uc":"1f481-1f3fe","isCanonical": true},":information_desk_person_tone3:":{"unicode":["1f481-1f3fd"],"fname":"1f481-1f3fd","uc":"1f481-1f3fd","isCanonical": true},":information_desk_person_tone2:":{"unicode":["1f481-1f3fc"],"fname":"1f481-1f3fc","uc":"1f481-1f3fc","isCanonical": true},":information_desk_person_tone1:":{"unicode":["1f481-1f3fb"],"fname":"1f481-1f3fb","uc":"1f481-1f3fb","isCanonical": true},":angel_tone5:":{"unicode":["1f47c-1f3ff"],"fname":"1f47c-1f3ff","uc":"1f47c-1f3ff","isCanonical": true},":angel_tone4:":{"unicode":["1f47c-1f3fe"],"fname":"1f47c-1f3fe","uc":"1f47c-1f3fe","isCanonical": true},":angel_tone3:":{"unicode":["1f47c-1f3fd"],"fname":"1f47c-1f3fd","uc":"1f47c-1f3fd","isCanonical": true},":angel_tone2:":{"unicode":["1f47c-1f3fc"],"fname":"1f47c-1f3fc","uc":"1f47c-1f3fc","isCanonical": true},":angel_tone1:":{"unicode":["1f47c-1f3fb"],"fname":"1f47c-1f3fb","uc":"1f47c-1f3fb","isCanonical": true},":princess_tone5:":{"unicode":["1f478-1f3ff"],"fname":"1f478-1f3ff","uc":"1f478-1f3ff","isCanonical": true},":princess_tone4:":{"unicode":["1f478-1f3fe"],"fname":"1f478-1f3fe","uc":"1f478-1f3fe","isCanonical": true},":princess_tone3:":{"unicode":["1f478-1f3fd"],"fname":"1f478-1f3fd","uc":"1f478-1f3fd","isCanonical": true},":princess_tone2:":{"unicode":["1f478-1f3fc"],"fname":"1f478-1f3fc","uc":"1f478-1f3fc","isCanonical": true},":princess_tone1:":{"unicode":["1f478-1f3fb"],"fname":"1f478-1f3fb","uc":"1f478-1f3fb","isCanonical": true},":construction_worker_tone5:":{"unicode":["1f477-1f3ff"],"fname":"1f477-1f3ff","uc":"1f477-1f3ff","isCanonical": true},":construction_worker_tone4:":{"unicode":["1f477-1f3fe"],"fname":"1f477-1f3fe","uc":"1f477-1f3fe","isCanonical": true},":construction_worker_tone3:":{"unicode":["1f477-1f3fd"],"fname":"1f477-1f3fd","uc":"1f477-1f3fd","isCanonical": true},":construction_worker_tone2:":{"unicode":["1f477-1f3fc"],"fname":"1f477-1f3fc","uc":"1f477-1f3fc","isCanonical": true},":construction_worker_tone1:":{"unicode":["1f477-1f3fb"],"fname":"1f477-1f3fb","uc":"1f477-1f3fb","isCanonical": true},":baby_tone5:":{"unicode":["1f476-1f3ff"],"fname":"1f476-1f3ff","uc":"1f476-1f3ff","isCanonical": true},":baby_tone4:":{"unicode":["1f476-1f3fe"],"fname":"1f476-1f3fe","uc":"1f476-1f3fe","isCanonical": true},":baby_tone3:":{"unicode":["1f476-1f3fd"],"fname":"1f476-1f3fd","uc":"1f476-1f3fd","isCanonical": true},":baby_tone2:":{"unicode":["1f476-1f3fc"],"fname":"1f476-1f3fc","uc":"1f476-1f3fc","isCanonical": true},":baby_tone1:":{"unicode":["1f476-1f3fb"],"fname":"1f476-1f3fb","uc":"1f476-1f3fb","isCanonical": true},":older_woman_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": true},":grandma_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": false},":older_woman_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": true},":grandma_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": false},":older_woman_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": true},":grandma_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": false},":older_woman_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": true},":grandma_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": false},":older_woman_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": true},":grandma_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": false},":older_man_tone5:":{"unicode":["1f474-1f3ff"],"fname":"1f474-1f3ff","uc":"1f474-1f3ff","isCanonical": true},":older_man_tone4:":{"unicode":["1f474-1f3fe"],"fname":"1f474-1f3fe","uc":"1f474-1f3fe","isCanonical": true},":older_man_tone3:":{"unicode":["1f474-1f3fd"],"fname":"1f474-1f3fd","uc":"1f474-1f3fd","isCanonical": true},":older_man_tone2:":{"unicode":["1f474-1f3fc"],"fname":"1f474-1f3fc","uc":"1f474-1f3fc","isCanonical": true},":older_man_tone1:":{"unicode":["1f474-1f3fb"],"fname":"1f474-1f3fb","uc":"1f474-1f3fb","isCanonical": true},":man_with_turban_tone5:":{"unicode":["1f473-1f3ff"],"fname":"1f473-1f3ff","uc":"1f473-1f3ff","isCanonical": true},":man_with_turban_tone4:":{"unicode":["1f473-1f3fe"],"fname":"1f473-1f3fe","uc":"1f473-1f3fe","isCanonical": true},":man_with_turban_tone3:":{"unicode":["1f473-1f3fd"],"fname":"1f473-1f3fd","uc":"1f473-1f3fd","isCanonical": true},":man_with_turban_tone2:":{"unicode":["1f473-1f3fc"],"fname":"1f473-1f3fc","uc":"1f473-1f3fc","isCanonical": true},":man_with_turban_tone1:":{"unicode":["1f473-1f3fb"],"fname":"1f473-1f3fb","uc":"1f473-1f3fb","isCanonical": true},":man_with_gua_pi_mao_tone5:":{"unicode":["1f472-1f3ff"],"fname":"1f472-1f3ff","uc":"1f472-1f3ff","isCanonical": true},":man_with_gua_pi_mao_tone4:":{"unicode":["1f472-1f3fe"],"fname":"1f472-1f3fe","uc":"1f472-1f3fe","isCanonical": true},":man_with_gua_pi_mao_tone3:":{"unicode":["1f472-1f3fd"],"fname":"1f472-1f3fd","uc":"1f472-1f3fd","isCanonical": true},":man_with_gua_pi_mao_tone2:":{"unicode":["1f472-1f3fc"],"fname":"1f472-1f3fc","uc":"1f472-1f3fc","isCanonical": true},":man_with_gua_pi_mao_tone1:":{"unicode":["1f472-1f3fb"],"fname":"1f472-1f3fb","uc":"1f472-1f3fb","isCanonical": true},":person_with_blond_hair_tone5:":{"unicode":["1f471-1f3ff"],"fname":"1f471-1f3ff","uc":"1f471-1f3ff","isCanonical": true},":person_with_blond_hair_tone4:":{"unicode":["1f471-1f3fe"],"fname":"1f471-1f3fe","uc":"1f471-1f3fe","isCanonical": true},":person_with_blond_hair_tone3:":{"unicode":["1f471-1f3fd"],"fname":"1f471-1f3fd","uc":"1f471-1f3fd","isCanonical": true},":person_with_blond_hair_tone2:":{"unicode":["1f471-1f3fc"],"fname":"1f471-1f3fc","uc":"1f471-1f3fc","isCanonical": true},":person_with_blond_hair_tone1:":{"unicode":["1f471-1f3fb"],"fname":"1f471-1f3fb","uc":"1f471-1f3fb","isCanonical": true},":bride_with_veil_tone5:":{"unicode":["1f470-1f3ff"],"fname":"1f470-1f3ff","uc":"1f470-1f3ff","isCanonical": true},":bride_with_veil_tone4:":{"unicode":["1f470-1f3fe"],"fname":"1f470-1f3fe","uc":"1f470-1f3fe","isCanonical": true},":bride_with_veil_tone3:":{"unicode":["1f470-1f3fd"],"fname":"1f470-1f3fd","uc":"1f470-1f3fd","isCanonical": true},":bride_with_veil_tone2:":{"unicode":["1f470-1f3fc"],"fname":"1f470-1f3fc","uc":"1f470-1f3fc","isCanonical": true},":bride_with_veil_tone1:":{"unicode":["1f470-1f3fb"],"fname":"1f470-1f3fb","uc":"1f470-1f3fb","isCanonical": true},":cop_tone5:":{"unicode":["1f46e-1f3ff"],"fname":"1f46e-1f3ff","uc":"1f46e-1f3ff","isCanonical": true},":cop_tone4:":{"unicode":["1f46e-1f3fe"],"fname":"1f46e-1f3fe","uc":"1f46e-1f3fe","isCanonical": true},":cop_tone3:":{"unicode":["1f46e-1f3fd"],"fname":"1f46e-1f3fd","uc":"1f46e-1f3fd","isCanonical": true},":cop_tone2:":{"unicode":["1f46e-1f3fc"],"fname":"1f46e-1f3fc","uc":"1f46e-1f3fc","isCanonical": true},":cop_tone1:":{"unicode":["1f46e-1f3fb"],"fname":"1f46e-1f3fb","uc":"1f46e-1f3fb","isCanonical": true},":woman_tone5:":{"unicode":["1f469-1f3ff"],"fname":"1f469-1f3ff","uc":"1f469-1f3ff","isCanonical": true},":woman_tone4:":{"unicode":["1f469-1f3fe"],"fname":"1f469-1f3fe","uc":"1f469-1f3fe","isCanonical": true},":woman_tone3:":{"unicode":["1f469-1f3fd"],"fname":"1f469-1f3fd","uc":"1f469-1f3fd","isCanonical": true},":woman_tone2:":{"unicode":["1f469-1f3fc"],"fname":"1f469-1f3fc","uc":"1f469-1f3fc","isCanonical": true},":woman_tone1:":{"unicode":["1f469-1f3fb"],"fname":"1f469-1f3fb","uc":"1f469-1f3fb","isCanonical": true},":man_tone5:":{"unicode":["1f468-1f3ff"],"fname":"1f468-1f3ff","uc":"1f468-1f3ff","isCanonical": true},":man_tone4:":{"unicode":["1f468-1f3fe"],"fname":"1f468-1f3fe","uc":"1f468-1f3fe","isCanonical": true},":man_tone3:":{"unicode":["1f468-1f3fd"],"fname":"1f468-1f3fd","uc":"1f468-1f3fd","isCanonical": true},":man_tone2:":{"unicode":["1f468-1f3fc"],"fname":"1f468-1f3fc","uc":"1f468-1f3fc","isCanonical": true},":man_tone1:":{"unicode":["1f468-1f3fb"],"fname":"1f468-1f3fb","uc":"1f468-1f3fb","isCanonical": true},":girl_tone5:":{"unicode":["1f467-1f3ff"],"fname":"1f467-1f3ff","uc":"1f467-1f3ff","isCanonical": true},":girl_tone4:":{"unicode":["1f467-1f3fe"],"fname":"1f467-1f3fe","uc":"1f467-1f3fe","isCanonical": true},":girl_tone3:":{"unicode":["1f467-1f3fd"],"fname":"1f467-1f3fd","uc":"1f467-1f3fd","isCanonical": true},":girl_tone2:":{"unicode":["1f467-1f3fc"],"fname":"1f467-1f3fc","uc":"1f467-1f3fc","isCanonical": true},":girl_tone1:":{"unicode":["1f467-1f3fb"],"fname":"1f467-1f3fb","uc":"1f467-1f3fb","isCanonical": true},":boy_tone5:":{"unicode":["1f466-1f3ff"],"fname":"1f466-1f3ff","uc":"1f466-1f3ff","isCanonical": true},":boy_tone4:":{"unicode":["1f466-1f3fe"],"fname":"1f466-1f3fe","uc":"1f466-1f3fe","isCanonical": true},":boy_tone3:":{"unicode":["1f466-1f3fd"],"fname":"1f466-1f3fd","uc":"1f466-1f3fd","isCanonical": true},":boy_tone2:":{"unicode":["1f466-1f3fc"],"fname":"1f466-1f3fc","uc":"1f466-1f3fc","isCanonical": true},":boy_tone1:":{"unicode":["1f466-1f3fb"],"fname":"1f466-1f3fb","uc":"1f466-1f3fb","isCanonical": true},":open_hands_tone5:":{"unicode":["1f450-1f3ff"],"fname":"1f450-1f3ff","uc":"1f450-1f3ff","isCanonical": true},":open_hands_tone4:":{"unicode":["1f450-1f3fe"],"fname":"1f450-1f3fe","uc":"1f450-1f3fe","isCanonical": true},":open_hands_tone3:":{"unicode":["1f450-1f3fd"],"fname":"1f450-1f3fd","uc":"1f450-1f3fd","isCanonical": true},":open_hands_tone2:":{"unicode":["1f450-1f3fc"],"fname":"1f450-1f3fc","uc":"1f450-1f3fc","isCanonical": true},":open_hands_tone1:":{"unicode":["1f450-1f3fb"],"fname":"1f450-1f3fb","uc":"1f450-1f3fb","isCanonical": true},":clap_tone5:":{"unicode":["1f44f-1f3ff"],"fname":"1f44f-1f3ff","uc":"1f44f-1f3ff","isCanonical": true},":clap_tone4:":{"unicode":["1f44f-1f3fe"],"fname":"1f44f-1f3fe","uc":"1f44f-1f3fe","isCanonical": true},":clap_tone3:":{"unicode":["1f44f-1f3fd"],"fname":"1f44f-1f3fd","uc":"1f44f-1f3fd","isCanonical": true},":clap_tone2:":{"unicode":["1f44f-1f3fc"],"fname":"1f44f-1f3fc","uc":"1f44f-1f3fc","isCanonical": true},":clap_tone1:":{"unicode":["1f44f-1f3fb"],"fname":"1f44f-1f3fb","uc":"1f44f-1f3fb","isCanonical": true},":thumbsdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": true},":-1_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbsdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": true},":-1_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbsdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": true},":-1_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbsdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": true},":-1_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbsdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": true},":-1_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbsup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": true},":+1_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbsup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": true},":+1_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbsup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": true},":+1_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbsup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": true},":+1_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbsup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": true},":+1_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":thumbup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":ok_hand_tone5:":{"unicode":["1f44c-1f3ff"],"fname":"1f44c-1f3ff","uc":"1f44c-1f3ff","isCanonical": true},":ok_hand_tone4:":{"unicode":["1f44c-1f3fe"],"fname":"1f44c-1f3fe","uc":"1f44c-1f3fe","isCanonical": true},":ok_hand_tone3:":{"unicode":["1f44c-1f3fd"],"fname":"1f44c-1f3fd","uc":"1f44c-1f3fd","isCanonical": true},":ok_hand_tone2:":{"unicode":["1f44c-1f3fc"],"fname":"1f44c-1f3fc","uc":"1f44c-1f3fc","isCanonical": true},":ok_hand_tone1:":{"unicode":["1f44c-1f3fb"],"fname":"1f44c-1f3fb","uc":"1f44c-1f3fb","isCanonical": true},":wave_tone5:":{"unicode":["1f44b-1f3ff"],"fname":"1f44b-1f3ff","uc":"1f44b-1f3ff","isCanonical": true},":wave_tone4:":{"unicode":["1f44b-1f3fe"],"fname":"1f44b-1f3fe","uc":"1f44b-1f3fe","isCanonical": true},":wave_tone3:":{"unicode":["1f44b-1f3fd"],"fname":"1f44b-1f3fd","uc":"1f44b-1f3fd","isCanonical": true},":wave_tone2:":{"unicode":["1f44b-1f3fc"],"fname":"1f44b-1f3fc","uc":"1f44b-1f3fc","isCanonical": true},":wave_tone1:":{"unicode":["1f44b-1f3fb"],"fname":"1f44b-1f3fb","uc":"1f44b-1f3fb","isCanonical": true},":punch_tone5:":{"unicode":["1f44a-1f3ff"],"fname":"1f44a-1f3ff","uc":"1f44a-1f3ff","isCanonical": true},":punch_tone4:":{"unicode":["1f44a-1f3fe"],"fname":"1f44a-1f3fe","uc":"1f44a-1f3fe","isCanonical": true},":punch_tone3:":{"unicode":["1f44a-1f3fd"],"fname":"1f44a-1f3fd","uc":"1f44a-1f3fd","isCanonical": true},":punch_tone2:":{"unicode":["1f44a-1f3fc"],"fname":"1f44a-1f3fc","uc":"1f44a-1f3fc","isCanonical": true},":punch_tone1:":{"unicode":["1f44a-1f3fb"],"fname":"1f44a-1f3fb","uc":"1f44a-1f3fb","isCanonical": true},":point_right_tone5:":{"unicode":["1f449-1f3ff"],"fname":"1f449-1f3ff","uc":"1f449-1f3ff","isCanonical": true},":point_right_tone4:":{"unicode":["1f449-1f3fe"],"fname":"1f449-1f3fe","uc":"1f449-1f3fe","isCanonical": true},":point_right_tone3:":{"unicode":["1f449-1f3fd"],"fname":"1f449-1f3fd","uc":"1f449-1f3fd","isCanonical": true},":point_right_tone2:":{"unicode":["1f449-1f3fc"],"fname":"1f449-1f3fc","uc":"1f449-1f3fc","isCanonical": true},":point_right_tone1:":{"unicode":["1f449-1f3fb"],"fname":"1f449-1f3fb","uc":"1f449-1f3fb","isCanonical": true},":point_left_tone5:":{"unicode":["1f448-1f3ff"],"fname":"1f448-1f3ff","uc":"1f448-1f3ff","isCanonical": true},":point_left_tone4:":{"unicode":["1f448-1f3fe"],"fname":"1f448-1f3fe","uc":"1f448-1f3fe","isCanonical": true},":point_left_tone3:":{"unicode":["1f448-1f3fd"],"fname":"1f448-1f3fd","uc":"1f448-1f3fd","isCanonical": true},":point_left_tone2:":{"unicode":["1f448-1f3fc"],"fname":"1f448-1f3fc","uc":"1f448-1f3fc","isCanonical": true},":point_left_tone1:":{"unicode":["1f448-1f3fb"],"fname":"1f448-1f3fb","uc":"1f448-1f3fb","isCanonical": true},":point_down_tone5:":{"unicode":["1f447-1f3ff"],"fname":"1f447-1f3ff","uc":"1f447-1f3ff","isCanonical": true},":point_down_tone4:":{"unicode":["1f447-1f3fe"],"fname":"1f447-1f3fe","uc":"1f447-1f3fe","isCanonical": true},":point_down_tone3:":{"unicode":["1f447-1f3fd"],"fname":"1f447-1f3fd","uc":"1f447-1f3fd","isCanonical": true},":point_down_tone2:":{"unicode":["1f447-1f3fc"],"fname":"1f447-1f3fc","uc":"1f447-1f3fc","isCanonical": true},":point_down_tone1:":{"unicode":["1f447-1f3fb"],"fname":"1f447-1f3fb","uc":"1f447-1f3fb","isCanonical": true},":point_up_2_tone5:":{"unicode":["1f446-1f3ff"],"fname":"1f446-1f3ff","uc":"1f446-1f3ff","isCanonical": true},":point_up_2_tone4:":{"unicode":["1f446-1f3fe"],"fname":"1f446-1f3fe","uc":"1f446-1f3fe","isCanonical": true},":point_up_2_tone3:":{"unicode":["1f446-1f3fd"],"fname":"1f446-1f3fd","uc":"1f446-1f3fd","isCanonical": true},":point_up_2_tone2:":{"unicode":["1f446-1f3fc"],"fname":"1f446-1f3fc","uc":"1f446-1f3fc","isCanonical": true},":point_up_2_tone1:":{"unicode":["1f446-1f3fb"],"fname":"1f446-1f3fb","uc":"1f446-1f3fb","isCanonical": true},":nose_tone5:":{"unicode":["1f443-1f3ff"],"fname":"1f443-1f3ff","uc":"1f443-1f3ff","isCanonical": true},":nose_tone4:":{"unicode":["1f443-1f3fe"],"fname":"1f443-1f3fe","uc":"1f443-1f3fe","isCanonical": true},":nose_tone3:":{"unicode":["1f443-1f3fd"],"fname":"1f443-1f3fd","uc":"1f443-1f3fd","isCanonical": true},":nose_tone2:":{"unicode":["1f443-1f3fc"],"fname":"1f443-1f3fc","uc":"1f443-1f3fc","isCanonical": true},":nose_tone1:":{"unicode":["1f443-1f3fb"],"fname":"1f443-1f3fb","uc":"1f443-1f3fb","isCanonical": true},":ear_tone5:":{"unicode":["1f442-1f3ff"],"fname":"1f442-1f3ff","uc":"1f442-1f3ff","isCanonical": true},":ear_tone4:":{"unicode":["1f442-1f3fe"],"fname":"1f442-1f3fe","uc":"1f442-1f3fe","isCanonical": true},":ear_tone3:":{"unicode":["1f442-1f3fd"],"fname":"1f442-1f3fd","uc":"1f442-1f3fd","isCanonical": true},":ear_tone2:":{"unicode":["1f442-1f3fc"],"fname":"1f442-1f3fc","uc":"1f442-1f3fc","isCanonical": true},":ear_tone1:":{"unicode":["1f442-1f3fb"],"fname":"1f442-1f3fb","uc":"1f442-1f3fb","isCanonical": true},":lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": true},":weight_lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": false},":lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": true},":weight_lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": false},":lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": true},":weight_lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": false},":lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": true},":weight_lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": false},":lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": true},":weight_lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": false},":swimmer_tone5:":{"unicode":["1f3ca-1f3ff"],"fname":"1f3ca-1f3ff","uc":"1f3ca-1f3ff","isCanonical": true},":swimmer_tone4:":{"unicode":["1f3ca-1f3fe"],"fname":"1f3ca-1f3fe","uc":"1f3ca-1f3fe","isCanonical": true},":swimmer_tone3:":{"unicode":["1f3ca-1f3fd"],"fname":"1f3ca-1f3fd","uc":"1f3ca-1f3fd","isCanonical": true},":swimmer_tone2:":{"unicode":["1f3ca-1f3fc"],"fname":"1f3ca-1f3fc","uc":"1f3ca-1f3fc","isCanonical": true},":swimmer_tone1:":{"unicode":["1f3ca-1f3fb"],"fname":"1f3ca-1f3fb","uc":"1f3ca-1f3fb","isCanonical": true},":horse_racing_tone5:":{"unicode":["1f3c7-1f3ff"],"fname":"1f3c7-1f3ff","uc":"1f3c7-1f3ff","isCanonical": true},":horse_racing_tone4:":{"unicode":["1f3c7-1f3fe"],"fname":"1f3c7-1f3fe","uc":"1f3c7-1f3fe","isCanonical": true},":horse_racing_tone3:":{"unicode":["1f3c7-1f3fd"],"fname":"1f3c7-1f3fd","uc":"1f3c7-1f3fd","isCanonical": true},":horse_racing_tone2:":{"unicode":["1f3c7-1f3fc"],"fname":"1f3c7-1f3fc","uc":"1f3c7-1f3fc","isCanonical": true},":horse_racing_tone1:":{"unicode":["1f3c7-1f3fb"],"fname":"1f3c7-1f3fb","uc":"1f3c7-1f3fb","isCanonical": true},":surfer_tone5:":{"unicode":["1f3c4-1f3ff"],"fname":"1f3c4-1f3ff","uc":"1f3c4-1f3ff","isCanonical": true},":surfer_tone4:":{"unicode":["1f3c4-1f3fe"],"fname":"1f3c4-1f3fe","uc":"1f3c4-1f3fe","isCanonical": true},":surfer_tone3:":{"unicode":["1f3c4-1f3fd"],"fname":"1f3c4-1f3fd","uc":"1f3c4-1f3fd","isCanonical": true},":surfer_tone2:":{"unicode":["1f3c4-1f3fc"],"fname":"1f3c4-1f3fc","uc":"1f3c4-1f3fc","isCanonical": true},":surfer_tone1:":{"unicode":["1f3c4-1f3fb"],"fname":"1f3c4-1f3fb","uc":"1f3c4-1f3fb","isCanonical": true},":runner_tone5:":{"unicode":["1f3c3-1f3ff"],"fname":"1f3c3-1f3ff","uc":"1f3c3-1f3ff","isCanonical": true},":runner_tone4:":{"unicode":["1f3c3-1f3fe"],"fname":"1f3c3-1f3fe","uc":"1f3c3-1f3fe","isCanonical": true},":runner_tone3:":{"unicode":["1f3c3-1f3fd"],"fname":"1f3c3-1f3fd","uc":"1f3c3-1f3fd","isCanonical": true},":runner_tone2:":{"unicode":["1f3c3-1f3fc"],"fname":"1f3c3-1f3fc","uc":"1f3c3-1f3fc","isCanonical": true},":runner_tone1:":{"unicode":["1f3c3-1f3fb"],"fname":"1f3c3-1f3fb","uc":"1f3c3-1f3fb","isCanonical": true},":santa_tone5:":{"unicode":["1f385-1f3ff"],"fname":"1f385-1f3ff","uc":"1f385-1f3ff","isCanonical": true},":santa_tone4:":{"unicode":["1f385-1f3fe"],"fname":"1f385-1f3fe","uc":"1f385-1f3fe","isCanonical": true},":santa_tone3:":{"unicode":["1f385-1f3fd"],"fname":"1f385-1f3fd","uc":"1f385-1f3fd","isCanonical": true},":santa_tone2:":{"unicode":["1f385-1f3fc"],"fname":"1f385-1f3fc","uc":"1f385-1f3fc","isCanonical": true},":santa_tone1:":{"unicode":["1f385-1f3fb"],"fname":"1f385-1f3fb","uc":"1f385-1f3fb","isCanonical": true},":flag_zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": true},":zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": false},":flag_zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": true},":zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": false},":flag_za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": true},":za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": false},":flag_yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": true},":yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": false},":flag_ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": true},":ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": false},":flag_xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": true},":xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": false},":flag_ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": true},":ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": false},":flag_wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": true},":wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": false},":flag_vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": true},":vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": false},":flag_vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": true},":vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": false},":flag_vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": true},":vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": false},":flag_vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": true},":vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": false},":flag_ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": true},":ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": false},":flag_vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": true},":vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": false},":flag_va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": true},":va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": false},":flag_uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": true},":uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": false},":flag_uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": true},":uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": false},":flag_us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": true},":us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": false},":flag_um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": true},":um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": false},":flag_ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": true},":ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": false},":flag_ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": true},":ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": false},":flag_tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": true},":tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": false},":flag_tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": true},":tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": false},":flag_tv:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": true},":tuvalu:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": false},":flag_tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": true},":tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": false},":flag_tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": true},":tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": false},":flag_to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": true},":to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": false},":flag_tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": true},":tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": false},":flag_tm:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": true},":turkmenistan:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": false},":flag_tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": true},":tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": false},":flag_tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": true},":tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": false},":flag_tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": true},":tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": false},":flag_th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": true},":th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": false},":flag_tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": true},":tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": false},":flag_tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": true},":tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": false},":flag_td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": true},":td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": false},":flag_tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": true},":tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": false},":flag_ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": true},":ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": false},":flag_sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": true},":sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": false},":flag_sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": true},":sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": false},":flag_sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": true},":sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": false},":flag_sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": true},":sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": false},":flag_st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": true},":st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": false},":flag_ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": true},":ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": false},":flag_sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": true},":sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": false},":flag_so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": true},":so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": false},":flag_sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": true},":sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": false},":flag_sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": true},":sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": false},":flag_sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": true},":sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": false},":flag_sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": true},":sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": false},":flag_sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": true},":sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": false},":flag_si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": true},":si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": false},":flag_sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": true},":sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": false},":flag_sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": true},":sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": false},":flag_se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": true},":se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": false},":flag_sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": true},":sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": false},":flag_sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": true},":sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": false},":flag_sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": true},":sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": false},":flag_sa:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": true},":saudiarabia:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":saudi:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":flag_rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": true},":rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": false},":flag_ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": true},":ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": false},":flag_rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": true},":rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": false},":flag_ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": true},":ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": false},":flag_re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": true},":re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": false},":flag_qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": true},":qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": false},":flag_py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": true},":py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": false},":flag_pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": true},":pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": false},":flag_pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": true},":pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": false},":flag_ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": true},":ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": false},":flag_pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": true},":pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": false},":flag_pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": true},":pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": false},":flag_pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": true},":pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": false},":flag_pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": true},":pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": false},":flag_pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": true},":pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": false},":flag_ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": true},":ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": false},":flag_pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": true},":pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": false},":flag_pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": true},":pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": false},":flag_pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": true},":pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": false},":flag_pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": true},":pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": false},":flag_om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": true},":om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": false},":flag_nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": true},":nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": false},":flag_nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": true},":nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": false},":flag_nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": true},":nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": false},":flag_np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": true},":np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": false},":flag_no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": true},":no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": false},":flag_nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": true},":nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": false},":flag_ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": true},":ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": false},":flag_ng:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": true},":nigeria:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": false},":flag_nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": true},":nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": false},":flag_ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": true},":ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": false},":flag_nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": true},":nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": false},":flag_na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": true},":na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": false},":flag_mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": true},":mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": false},":flag_my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": true},":my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": false},":flag_mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": true},":mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": false},":flag_mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": true},":mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": false},":flag_mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": true},":mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": false},":flag_mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": true},":mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": false},":flag_mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": true},":mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": false},":flag_ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": true},":ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": false},":flag_mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": true},":mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": false},":flag_mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": true},":mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": false},":flag_mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": true},":mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": false},":flag_mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": true},":mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": false},":flag_mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": true},":mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": false},":flag_mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": true},":mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": false},":flag_ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": true},":ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": false},":flag_mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": true},":mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": false},":flag_mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": true},":mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": false},":flag_mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": true},":mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": false},":flag_mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": true},":mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": false},":flag_me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": true},":me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": false},":flag_md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": true},":md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": false},":flag_mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": true},":mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": false},":flag_ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": true},":ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": false},":flag_ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": true},":ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": false},":flag_lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": true},":lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": false},":flag_lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": true},":lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": false},":flag_lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": true},":lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": false},":flag_ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": true},":ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": false},":flag_lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": true},":lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": false},":flag_lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": true},":lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": false},":flag_li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": true},":li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": false},":flag_lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": true},":lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": false},":flag_lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": true},":lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": false},":flag_la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": true},":la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": false},":flag_kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": true},":kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": false},":flag_ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": true},":ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": false},":flag_kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": true},":kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": false},":flag_kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": true},":kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": false},":flag_kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": true},":kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": false},":flag_kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": true},":kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": false},":flag_km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": true},":km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": false},":flag_ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": true},":ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": false},":flag_kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": true},":kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": false},":flag_kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": true},":kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": false},":flag_ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": true},":ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": false},":flag_jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": true},":jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": false},":flag_jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": true},":jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": false},":flag_jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": true},":jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": false},":flag_je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": true},":je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": false},":flag_it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": true},":it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": false},":flag_is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": true},":is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": false},":flag_ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": true},":ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": false},":flag_iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": true},":iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": false},":flag_io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": true},":io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": false},":flag_in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": true},":in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": false},":flag_im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": true},":im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": false},":flag_il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": true},":il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": false},":flag_ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": true},":ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": false},":flag_id:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": true},":indonesia:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": false},":flag_ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": true},":ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": false},":flag_hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": true},":hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": false},":flag_ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": true},":ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": false},":flag_hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": true},":hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": false},":flag_hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": true},":hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": false},":flag_hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": true},":hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": false},":flag_hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": true},":hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": false},":flag_gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": true},":gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": false},":flag_gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": true},":gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": false},":flag_gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": true},":gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": false},":flag_gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": true},":gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": false},":flag_gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": true},":gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": false},":flag_gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": true},":gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": false},":flag_gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": true},":gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": false},":flag_gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": true},":gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": false},":flag_gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": true},":gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": false},":flag_gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": true},":gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": false},":flag_gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": true},":gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": false},":flag_gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": true},":gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": false},":flag_gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": true},":gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": false},":flag_gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": true},":gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": false},":flag_gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": true},":gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": false},":flag_ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": true},":ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": false},":flag_gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": true},":gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": false},":flag_gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": true},":gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": false},":flag_ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": true},":ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": false},":flag_fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": true},":fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": false},":flag_fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": true},":fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": false},":flag_fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": true},":fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": false},":flag_fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": true},":fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": false},":flag_fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": true},":fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": false},":flag_fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": true},":fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": false},":flag_eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": true},":eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": false},":flag_et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": true},":et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": false},":flag_es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": true},":es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": false},":flag_er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": true},":er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": false},":flag_eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": true},":eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": false},":flag_eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": true},":eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": false},":flag_ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": true},":ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": false},":flag_ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": true},":ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": false},":flag_ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": true},":ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": false},":flag_dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": true},":dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": false},":flag_do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": true},":do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": false},":flag_dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": true},":dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": false},":flag_dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": true},":dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": false},":flag_dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": true},":dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": false},":flag_dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": true},":dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": false},":flag_de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": true},":de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": false},":flag_cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": true},":cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": false},":flag_cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": true},":cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": false},":flag_cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": true},":cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": false},":flag_cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": true},":cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": false},":flag_cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": true},":cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": false},":flag_cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": true},":cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": false},":flag_cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": true},":cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": false},":flag_cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": true},":cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": false},":flag_co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": true},":co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": false},":flag_cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": true},":cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": false},":flag_cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": true},":cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": false},":flag_cl:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": true},":chile:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": false},":flag_ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": true},":ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": false},":flag_ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": true},":ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": false},":flag_ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": true},":ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": false},":flag_cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": true},":cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": false},":flag_cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": true},":cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": false},":flag_cd:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": true},":congo:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": false},":flag_cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": true},":cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": false},":flag_ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": true},":ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": false},":flag_bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": true},":bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": false},":flag_by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": true},":by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": false},":flag_bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": true},":bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": false},":flag_bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": true},":bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": false},":flag_bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": true},":bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": false},":flag_bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": true},":bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": false},":flag_br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": true},":br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": false},":flag_bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": true},":bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": false},":flag_bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": true},":bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": false},":flag_bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": true},":bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": false},":flag_bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": true},":bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": false},":flag_bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": true},":bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": false},":flag_bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": true},":bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": false},":flag_bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": true},":bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": false},":flag_bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": true},":bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": false},":flag_bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": true},":bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": false},":flag_bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": true},":bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": false},":flag_be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": true},":be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": false},":flag_bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": true},":bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": false},":flag_bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": true},":bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": false},":flag_ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": true},":ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": false},":flag_az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": true},":az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": false},":flag_ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": true},":ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": false},":flag_aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": true},":aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": false},":flag_au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": true},":au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": false},":flag_at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": true},":at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": false},":flag_as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": true},":as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": false},":flag_ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": true},":ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": false},":flag_aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": true},":aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": false},":flag_ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": true},":ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": false},":flag_am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": true},":am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": false},":flag_al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": true},":al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": false},":flag_ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": true},":ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": false},":flag_ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": true},":ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": false},":flag_af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": true},":af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": false},":flag_ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": true},":ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": false},":flag_ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": true},":ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": false},":flag_ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": true},":ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": false},":mahjong:":{"unicode":["1f004-fe0f","1f004"],"fname":"1f004","uc":"1f004","isCanonical": true},":parking:":{"unicode":["1f17f-fe0f","1f17f"],"fname":"1f17f","uc":"1f17f","isCanonical": true},":sa:":{"unicode":["1f202-fe0f","1f202"],"fname":"1f202","uc":"1f202","isCanonical": true},":u7121:":{"unicode":["1f21a-fe0f","1f21a"],"fname":"1f21a","uc":"1f21a","isCanonical": true},":u6307:":{"unicode":["1f22f-fe0f","1f22f"],"fname":"1f22f","uc":"1f22f","isCanonical": true},":u6708:":{"unicode":["1f237-fe0f","1f237"],"fname":"1f237","uc":"1f237","isCanonical": true},":film_frames:":{"unicode":["1f39e-fe0f","1f39e"],"fname":"1f39e","uc":"1f39e","isCanonical": true},":tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": true},":admission_tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": false},":lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": true},":weight_lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": false},":golfer:":{"unicode":["1f3cc-fe0f","1f3cc"],"fname":"1f3cc","uc":"1f3cc","isCanonical": true},":motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": true},":racing_motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": false},":race_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": true},":racing_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": false},":military_medal:":{"unicode":["1f396-fe0f","1f396"],"fname":"1f396","uc":"1f396","isCanonical": true},":reminder_ribbon:":{"unicode":["1f397-fe0f","1f397"],"fname":"1f397","uc":"1f397","isCanonical": true},":hot_pepper:":{"unicode":["1f336-fe0f","1f336"],"fname":"1f336","uc":"1f336","isCanonical": true},":cloud_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": true},":cloud_with_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": false},":cloud_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": true},":cloud_with_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": false},":cloud_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": true},":cloud_with_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": false},":cloud_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": true},":cloud_with_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": false},":fog:":{"unicode":["1f32b-fe0f","1f32b"],"fname":"1f32b","uc":"1f32b","isCanonical": true},":wind_blowing_face:":{"unicode":["1f32c-fe0f","1f32c"],"fname":"1f32c","uc":"1f32c","isCanonical": true},":chipmunk:":{"unicode":["1f43f-fe0f","1f43f"],"fname":"1f43f","uc":"1f43f","isCanonical": true},":spider:":{"unicode":["1f577-fe0f","1f577"],"fname":"1f577","uc":"1f577","isCanonical": true},":spider_web:":{"unicode":["1f578-fe0f","1f578"],"fname":"1f578","uc":"1f578","isCanonical": true},":thermometer:":{"unicode":["1f321-fe0f","1f321"],"fname":"1f321","uc":"1f321","isCanonical": true},":microphone2:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": true},":studio_microphone:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": false},":level_slider:":{"unicode":["1f39a-fe0f","1f39a"],"fname":"1f39a","uc":"1f39a","isCanonical": true},":control_knobs:":{"unicode":["1f39b-fe0f","1f39b"],"fname":"1f39b","uc":"1f39b","isCanonical": true},":flag_white:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": true},":waving_white_flag:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": false},":rosette:":{"unicode":["1f3f5-fe0f","1f3f5"],"fname":"1f3f5","uc":"1f3f5","isCanonical": true},":label:":{"unicode":["1f3f7-fe0f","1f3f7"],"fname":"1f3f7","uc":"1f3f7","isCanonical": true},":projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": true},":film_projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": false},":om_symbol:":{"unicode":["1f549-fe0f","1f549"],"fname":"1f549","uc":"1f549","isCanonical": true},":dove:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": true},":dove_of_peace:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": false},":candle:":{"unicode":["1f56f-fe0f","1f56f"],"fname":"1f56f","uc":"1f56f","isCanonical": true},":clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": true},":mantlepiece_clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": false},":hole:":{"unicode":["1f573-fe0f","1f573"],"fname":"1f573","uc":"1f573","isCanonical": true},":dark_sunglasses:":{"unicode":["1f576-fe0f","1f576"],"fname":"1f576","uc":"1f576","isCanonical": true},":joystick:":{"unicode":["1f579-fe0f","1f579"],"fname":"1f579","uc":"1f579","isCanonical": true},":paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": true},":linked_paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": false},":pen_ballpoint:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": true},":lower_left_ballpoint_pen:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": false},":pen_fountain:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": true},":lower_left_fountain_pen:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": false},":paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": true},":lower_left_paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": false},":crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": true},":lower_left_crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": false},":desktop:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": true},":desktop_computer:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": false},":printer:":{"unicode":["1f5a8-fe0f","1f5a8"],"fname":"1f5a8","uc":"1f5a8","isCanonical": true},":trackball:":{"unicode":["1f5b2-fe0f","1f5b2"],"fname":"1f5b2","uc":"1f5b2","isCanonical": true},":frame_photo:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": true},":frame_with_picture:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": false},":dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": true},":card_index_dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": false},":card_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": true},":card_file_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": false},":file_cabinet:":{"unicode":["1f5c4-fe0f","1f5c4"],"fname":"1f5c4","uc":"1f5c4","isCanonical": true},":wastebasket:":{"unicode":["1f5d1-fe0f","1f5d1"],"fname":"1f5d1","uc":"1f5d1","isCanonical": true},":notepad_spiral:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": true},":spiral_note_pad:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": false},":calendar_spiral:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": true},":spiral_calendar_pad:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": false},":compression:":{"unicode":["1f5dc-fe0f","1f5dc"],"fname":"1f5dc","uc":"1f5dc","isCanonical": true},":key2:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": true},":old_key:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": false},":newspaper2:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": true},":rolled_up_newspaper:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": false},":dagger:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": true},":dagger_knife:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": false},":speaking_head:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": true},":speaking_head_in_silhouette:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": false},":speech_left:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": true},":left_speech_bubble:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": false},":anger_right:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": true},":right_anger_bubble:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": false},":ballot_box:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": true},":ballot_box_with_ballot:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": false},":map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": true},":world_map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": false},":tools:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": true},":hammer_and_wrench:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": false},":shield:":{"unicode":["1f6e1-fe0f","1f6e1"],"fname":"1f6e1","uc":"1f6e1","isCanonical": true},":oil:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": true},":oil_drum:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": false},":satellite_orbital:":{"unicode":["1f6f0-fe0f","1f6f0"],"fname":"1f6f0","uc":"1f6f0","isCanonical": true},":fork_knife_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": true},":fork_and_knife_with_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": false},":eye:":{"unicode":["1f441-fe0f","1f441"],"fname":"1f441","uc":"1f441","isCanonical": true},":levitate:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": true},":man_in_business_suit_levitating:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": false},":spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": true},":sleuth_or_spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": false},":hand_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": true},":raised_hand_with_fingers_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": false},":mountain_snow:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": true},":snow_capped_mountain:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": false},":camping:":{"unicode":["1f3d5-fe0f","1f3d5"],"fname":"1f3d5","uc":"1f3d5","isCanonical": true},":beach:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": true},":beach_with_umbrella:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": false},":construction_site:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": true},":building_construction:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": false},":homes:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": true},":house_buildings:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": false},":cityscape:":{"unicode":["1f3d9-fe0f","1f3d9"],"fname":"1f3d9","uc":"1f3d9","isCanonical": true},":house_abandoned:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": true},":derelict_house_building:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": false},":classical_building:":{"unicode":["1f3db-fe0f","1f3db"],"fname":"1f3db","uc":"1f3db","isCanonical": true},":desert:":{"unicode":["1f3dc-fe0f","1f3dc"],"fname":"1f3dc","uc":"1f3dc","isCanonical": true},":island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": true},":desert_island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": false},":park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": true},":national_park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": false},":stadium:":{"unicode":["1f3df-fe0f","1f3df"],"fname":"1f3df","uc":"1f3df","isCanonical": true},":couch:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": true},":couch_and_lamp:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": false},":shopping_bags:":{"unicode":["1f6cd-fe0f","1f6cd"],"fname":"1f6cd","uc":"1f6cd","isCanonical": true},":bellhop:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": true},":bellhop_bell:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": false},":bed:":{"unicode":["1f6cf-fe0f","1f6cf"],"fname":"1f6cf","uc":"1f6cf","isCanonical": true},":motorway:":{"unicode":["1f6e3-fe0f","1f6e3"],"fname":"1f6e3","uc":"1f6e3","isCanonical": true},":railway_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": true},":railroad_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": false},":motorboat:":{"unicode":["1f6e5-fe0f","1f6e5"],"fname":"1f6e5","uc":"1f6e5","isCanonical": true},":airplane_small:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": true},":small_airplane:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": false},":cruise_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": true},":passenger_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": false},":white_sun_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": true},":white_sun_with_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": false},":white_sun_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": true},":white_sun_behind_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": false},":white_sun_rain_cloud:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": true},":white_sun_behind_cloud_with_rain:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": false},":mouse_three_button:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": true},":three_button_mouse:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": false},":point_up_tone1:":{"unicode":["261d-1f3fb"],"fname":"261d-1f3fb","uc":"261d-1f3fb","isCanonical": true},":point_up_tone2:":{"unicode":["261d-1f3fc"],"fname":"261d-1f3fc","uc":"261d-1f3fc","isCanonical": true},":point_up_tone3:":{"unicode":["261d-1f3fd"],"fname":"261d-1f3fd","uc":"261d-1f3fd","isCanonical": true},":point_up_tone4:":{"unicode":["261d-1f3fe"],"fname":"261d-1f3fe","uc":"261d-1f3fe","isCanonical": true},":point_up_tone5:":{"unicode":["261d-1f3ff"],"fname":"261d-1f3ff","uc":"261d-1f3ff","isCanonical": true},":v_tone1:":{"unicode":["270c-1f3fb"],"fname":"270c-1f3fb","uc":"270c-1f3fb","isCanonical": true},":v_tone2:":{"unicode":["270c-1f3fc"],"fname":"270c-1f3fc","uc":"270c-1f3fc","isCanonical": true},":v_tone3:":{"unicode":["270c-1f3fd"],"fname":"270c-1f3fd","uc":"270c-1f3fd","isCanonical": true},":v_tone4:":{"unicode":["270c-1f3fe"],"fname":"270c-1f3fe","uc":"270c-1f3fe","isCanonical": true},":v_tone5:":{"unicode":["270c-1f3ff"],"fname":"270c-1f3ff","uc":"270c-1f3ff","isCanonical": true},":fist_tone1:":{"unicode":["270a-1f3fb"],"fname":"270a-1f3fb","uc":"270a-1f3fb","isCanonical": true},":fist_tone2:":{"unicode":["270a-1f3fc"],"fname":"270a-1f3fc","uc":"270a-1f3fc","isCanonical": true},":fist_tone3:":{"unicode":["270a-1f3fd"],"fname":"270a-1f3fd","uc":"270a-1f3fd","isCanonical": true},":fist_tone4:":{"unicode":["270a-1f3fe"],"fname":"270a-1f3fe","uc":"270a-1f3fe","isCanonical": true},":fist_tone5:":{"unicode":["270a-1f3ff"],"fname":"270a-1f3ff","uc":"270a-1f3ff","isCanonical": true},":raised_hand_tone1:":{"unicode":["270b-1f3fb"],"fname":"270b-1f3fb","uc":"270b-1f3fb","isCanonical": true},":raised_hand_tone2:":{"unicode":["270b-1f3fc"],"fname":"270b-1f3fc","uc":"270b-1f3fc","isCanonical": true},":raised_hand_tone3:":{"unicode":["270b-1f3fd"],"fname":"270b-1f3fd","uc":"270b-1f3fd","isCanonical": true},":raised_hand_tone4:":{"unicode":["270b-1f3fe"],"fname":"270b-1f3fe","uc":"270b-1f3fe","isCanonical": true},":raised_hand_tone5:":{"unicode":["270b-1f3ff"],"fname":"270b-1f3ff","uc":"270b-1f3ff","isCanonical": true},":writing_hand_tone1:":{"unicode":["270d-1f3fb"],"fname":"270d-1f3fb","uc":"270d-1f3fb","isCanonical": true},":writing_hand_tone2:":{"unicode":["270d-1f3fc"],"fname":"270d-1f3fc","uc":"270d-1f3fc","isCanonical": true},":writing_hand_tone3:":{"unicode":["270d-1f3fd"],"fname":"270d-1f3fd","uc":"270d-1f3fd","isCanonical": true},":writing_hand_tone4:":{"unicode":["270d-1f3fe"],"fname":"270d-1f3fe","uc":"270d-1f3fe","isCanonical": true},":writing_hand_tone5:":{"unicode":["270d-1f3ff"],"fname":"270d-1f3ff","uc":"270d-1f3ff","isCanonical": true},":basketball_player_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": true},":person_with_ball_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": false},":basketball_player_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": true},":person_with_ball_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": false},":basketball_player_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": true},":person_with_ball_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": false},":basketball_player_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": true},":person_with_ball_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": false},":basketball_player_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": true},":person_with_ball_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": false},":copyright:":{"unicode":["00a9-fe0f","00a9"],"fname":"00a9","uc":"00a9","isCanonical": true},":registered:":{"unicode":["00ae-fe0f","00ae"],"fname":"00ae","uc":"00ae","isCanonical": true},":bangbang:":{"unicode":["203c-fe0f","203c"],"fname":"203c","uc":"203c","isCanonical": true},":interrobang:":{"unicode":["2049-fe0f","2049"],"fname":"2049","uc":"2049","isCanonical": true},":tm:":{"unicode":["2122-fe0f","2122"],"fname":"2122","uc":"2122","isCanonical": true},":information_source:":{"unicode":["2139-fe0f","2139"],"fname":"2139","uc":"2139","isCanonical": true},":left_right_arrow:":{"unicode":["2194-fe0f","2194"],"fname":"2194","uc":"2194","isCanonical": true},":arrow_up_down:":{"unicode":["2195-fe0f","2195"],"fname":"2195","uc":"2195","isCanonical": true},":arrow_upper_left:":{"unicode":["2196-fe0f","2196"],"fname":"2196","uc":"2196","isCanonical": true},":arrow_upper_right:":{"unicode":["2197-fe0f","2197"],"fname":"2197","uc":"2197","isCanonical": true},":arrow_lower_right:":{"unicode":["2198-fe0f","2198"],"fname":"2198","uc":"2198","isCanonical": true},":arrow_lower_left:":{"unicode":["2199-fe0f","2199"],"fname":"2199","uc":"2199","isCanonical": true},":leftwards_arrow_with_hook:":{"unicode":["21a9-fe0f","21a9"],"fname":"21a9","uc":"21a9","isCanonical": true},":arrow_right_hook:":{"unicode":["21aa-fe0f","21aa"],"fname":"21aa","uc":"21aa","isCanonical": true},":watch:":{"unicode":["231a-fe0f","231a"],"fname":"231a","uc":"231a","isCanonical": true},":hourglass:":{"unicode":["231b-fe0f","231b"],"fname":"231b","uc":"231b","isCanonical": true},":m:":{"unicode":["24c2-fe0f","24c2"],"fname":"24c2","uc":"24c2","isCanonical": true},":black_small_square:":{"unicode":["25aa-fe0f","25aa"],"fname":"25aa","uc":"25aa","isCanonical": true},":white_small_square:":{"unicode":["25ab-fe0f","25ab"],"fname":"25ab","uc":"25ab","isCanonical": true},":arrow_forward:":{"unicode":["25b6-fe0f","25b6"],"fname":"25b6","uc":"25b6","isCanonical": true},":arrow_backward:":{"unicode":["25c0-fe0f","25c0"],"fname":"25c0","uc":"25c0","isCanonical": true},":white_medium_square:":{"unicode":["25fb-fe0f","25fb"],"fname":"25fb","uc":"25fb","isCanonical": true},":black_medium_square:":{"unicode":["25fc-fe0f","25fc"],"fname":"25fc","uc":"25fc","isCanonical": true},":white_medium_small_square:":{"unicode":["25fd-fe0f","25fd"],"fname":"25fd","uc":"25fd","isCanonical": true},":black_medium_small_square:":{"unicode":["25fe-fe0f","25fe"],"fname":"25fe","uc":"25fe","isCanonical": true},":sunny:":{"unicode":["2600-fe0f","2600"],"fname":"2600","uc":"2600","isCanonical": true},":cloud:":{"unicode":["2601-fe0f","2601"],"fname":"2601","uc":"2601","isCanonical": true},":telephone:":{"unicode":["260e-fe0f","260e"],"fname":"260e","uc":"260e","isCanonical": true},":ballot_box_with_check:":{"unicode":["2611-fe0f","2611"],"fname":"2611","uc":"2611","isCanonical": true},":umbrella:":{"unicode":["2614-fe0f","2614"],"fname":"2614","uc":"2614","isCanonical": true},":coffee:":{"unicode":["2615-fe0f","2615"],"fname":"2615","uc":"2615","isCanonical": true},":point_up:":{"unicode":["261d-fe0f","261d"],"fname":"261d","uc":"261d","isCanonical": true},":relaxed:":{"unicode":["263a-fe0f","263a"],"fname":"263a","uc":"263a","isCanonical": true},":aries:":{"unicode":["2648-fe0f","2648"],"fname":"2648","uc":"2648","isCanonical": true},":taurus:":{"unicode":["2649-fe0f","2649"],"fname":"2649","uc":"2649","isCanonical": true},":gemini:":{"unicode":["264a-fe0f","264a"],"fname":"264a","uc":"264a","isCanonical": true},":cancer:":{"unicode":["264b-fe0f","264b"],"fname":"264b","uc":"264b","isCanonical": true},":leo:":{"unicode":["264c-fe0f","264c"],"fname":"264c","uc":"264c","isCanonical": true},":virgo:":{"unicode":["264d-fe0f","264d"],"fname":"264d","uc":"264d","isCanonical": true},":libra:":{"unicode":["264e-fe0f","264e"],"fname":"264e","uc":"264e","isCanonical": true},":scorpius:":{"unicode":["264f-fe0f","264f"],"fname":"264f","uc":"264f","isCanonical": true},":sagittarius:":{"unicode":["2650-fe0f","2650"],"fname":"2650","uc":"2650","isCanonical": true},":capricorn:":{"unicode":["2651-fe0f","2651"],"fname":"2651","uc":"2651","isCanonical": true},":aquarius:":{"unicode":["2652-fe0f","2652"],"fname":"2652","uc":"2652","isCanonical": true},":pisces:":{"unicode":["2653-fe0f","2653"],"fname":"2653","uc":"2653","isCanonical": true},":spades:":{"unicode":["2660-fe0f","2660"],"fname":"2660","uc":"2660","isCanonical": true},":clubs:":{"unicode":["2663-fe0f","2663"],"fname":"2663","uc":"2663","isCanonical": true},":hearts:":{"unicode":["2665-fe0f","2665"],"fname":"2665","uc":"2665","isCanonical": true},":diamonds:":{"unicode":["2666-fe0f","2666"],"fname":"2666","uc":"2666","isCanonical": true},":hotsprings:":{"unicode":["2668-fe0f","2668"],"fname":"2668","uc":"2668","isCanonical": true},":recycle:":{"unicode":["267b-fe0f","267b"],"fname":"267b","uc":"267b","isCanonical": true},":wheelchair:":{"unicode":["267f-fe0f","267f"],"fname":"267f","uc":"267f","isCanonical": true},":anchor:":{"unicode":["2693-fe0f","2693"],"fname":"2693","uc":"2693","isCanonical": true},":warning:":{"unicode":["26a0-fe0f","26a0"],"fname":"26a0","uc":"26a0","isCanonical": true},":zap:":{"unicode":["26a1-fe0f","26a1"],"fname":"26a1","uc":"26a1","isCanonical": true},":white_circle:":{"unicode":["26aa-fe0f","26aa"],"fname":"26aa","uc":"26aa","isCanonical": true},":black_circle:":{"unicode":["26ab-fe0f","26ab"],"fname":"26ab","uc":"26ab","isCanonical": true},":soccer:":{"unicode":["26bd-fe0f","26bd"],"fname":"26bd","uc":"26bd","isCanonical": true},":baseball:":{"unicode":["26be-fe0f","26be"],"fname":"26be","uc":"26be","isCanonical": true},":snowman:":{"unicode":["26c4-fe0f","26c4"],"fname":"26c4","uc":"26c4","isCanonical": true},":partly_sunny:":{"unicode":["26c5-fe0f","26c5"],"fname":"26c5","uc":"26c5","isCanonical": true},":no_entry:":{"unicode":["26d4-fe0f","26d4"],"fname":"26d4","uc":"26d4","isCanonical": true},":church:":{"unicode":["26ea-fe0f","26ea"],"fname":"26ea","uc":"26ea","isCanonical": true},":fountain:":{"unicode":["26f2-fe0f","26f2"],"fname":"26f2","uc":"26f2","isCanonical": true},":golf:":{"unicode":["26f3-fe0f","26f3"],"fname":"26f3","uc":"26f3","isCanonical": true},":sailboat:":{"unicode":["26f5-fe0f","26f5"],"fname":"26f5","uc":"26f5","isCanonical": true},":tent:":{"unicode":["26fa-fe0f","26fa"],"fname":"26fa","uc":"26fa","isCanonical": true},":fuelpump:":{"unicode":["26fd-fe0f","26fd"],"fname":"26fd","uc":"26fd","isCanonical": true},":scissors:":{"unicode":["2702-fe0f","2702"],"fname":"2702","uc":"2702","isCanonical": true},":airplane:":{"unicode":["2708-fe0f","2708"],"fname":"2708","uc":"2708","isCanonical": true},":envelope:":{"unicode":["2709-fe0f","2709"],"fname":"2709","uc":"2709","isCanonical": true},":v:":{"unicode":["270c-fe0f","270c"],"fname":"270c","uc":"270c","isCanonical": true},":pencil2:":{"unicode":["270f-fe0f","270f"],"fname":"270f","uc":"270f","isCanonical": true},":black_nib:":{"unicode":["2712-fe0f","2712"],"fname":"2712","uc":"2712","isCanonical": true},":heavy_check_mark:":{"unicode":["2714-fe0f","2714"],"fname":"2714","uc":"2714","isCanonical": true},":heavy_multiplication_x:":{"unicode":["2716-fe0f","2716"],"fname":"2716","uc":"2716","isCanonical": true},":eight_spoked_asterisk:":{"unicode":["2733-fe0f","2733"],"fname":"2733","uc":"2733","isCanonical": true},":eight_pointed_black_star:":{"unicode":["2734-fe0f","2734"],"fname":"2734","uc":"2734","isCanonical": true},":snowflake:":{"unicode":["2744-fe0f","2744"],"fname":"2744","uc":"2744","isCanonical": true},":sparkle:":{"unicode":["2747-fe0f","2747"],"fname":"2747","uc":"2747","isCanonical": true},":exclamation:":{"unicode":["2757-fe0f","2757"],"fname":"2757","uc":"2757","isCanonical": true},":heart:":{"unicode":["2764-fe0f","2764"],"fname":"2764","uc":"2764","isCanonical": true},":arrow_right:":{"unicode":["27a1-fe0f","27a1"],"fname":"27a1","uc":"27a1","isCanonical": true},":arrow_heading_up:":{"unicode":["2934-fe0f","2934"],"fname":"2934","uc":"2934","isCanonical": true},":arrow_heading_down:":{"unicode":["2935-fe0f","2935"],"fname":"2935","uc":"2935","isCanonical": true},":arrow_left:":{"unicode":["2b05-fe0f","2b05"],"fname":"2b05","uc":"2b05","isCanonical": true},":arrow_up:":{"unicode":["2b06-fe0f","2b06"],"fname":"2b06","uc":"2b06","isCanonical": true},":arrow_down:":{"unicode":["2b07-fe0f","2b07"],"fname":"2b07","uc":"2b07","isCanonical": true},":black_large_square:":{"unicode":["2b1b-fe0f","2b1b"],"fname":"2b1b","uc":"2b1b","isCanonical": true},":white_large_square:":{"unicode":["2b1c-fe0f","2b1c"],"fname":"2b1c","uc":"2b1c","isCanonical": true},":star:":{"unicode":["2b50-fe0f","2b50"],"fname":"2b50","uc":"2b50","isCanonical": true},":o:":{"unicode":["2b55-fe0f","2b55"],"fname":"2b55","uc":"2b55","isCanonical": true},":wavy_dash:":{"unicode":["3030-fe0f","3030"],"fname":"3030","uc":"3030","isCanonical": true},":part_alternation_mark:":{"unicode":["303d-fe0f","303d"],"fname":"303d","uc":"303d","isCanonical": true},":congratulations:":{"unicode":["3297-fe0f","3297"],"fname":"3297","uc":"3297","isCanonical": true},":secret:":{"unicode":["3299-fe0f","3299"],"fname":"3299","uc":"3299","isCanonical": true},":cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": true},":latin_cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": false},":keyboard:":{"unicode":["2328-fe0f","2328"],"fname":"2328","uc":"2328","isCanonical": true},":writing_hand:":{"unicode":["270d-fe0f","270d"],"fname":"270d","uc":"270d","isCanonical": true},":eject:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": true},":eject_symbol:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": false},":track_next:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": true},":next_track:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": false},":track_previous:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": true},":previous_track:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": false},":play_pause:":{"unicode":["23ef-fe0f","23ef"],"fname":"23ef","uc":"23ef","isCanonical": true},":stopwatch:":{"unicode":["23f1-fe0f","23f1"],"fname":"23f1","uc":"23f1","isCanonical": true},":timer:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": true},":timer_clock:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": false},":pause_button:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": true},":double_vertical_bar:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": false},":stop_button:":{"unicode":["23f9-fe0f","23f9"],"fname":"23f9","uc":"23f9","isCanonical": true},":record_button:":{"unicode":["23fa-fe0f","23fa"],"fname":"23fa","uc":"23fa","isCanonical": true},":umbrella2:":{"unicode":["2602-fe0f","2602"],"fname":"2602","uc":"2602","isCanonical": true},":snowman2:":{"unicode":["2603-fe0f","2603"],"fname":"2603","uc":"2603","isCanonical": true},":comet:":{"unicode":["2604-fe0f","2604"],"fname":"2604","uc":"2604","isCanonical": true},":shamrock:":{"unicode":["2618-fe0f","2618"],"fname":"2618","uc":"2618","isCanonical": true},":skull_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": true},":skull_and_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": false},":radioactive:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": true},":radioactive_sign:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": false},":biohazard:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": true},":biohazard_sign:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": false},":orthodox_cross:":{"unicode":["2626-fe0f","2626"],"fname":"2626","uc":"2626","isCanonical": true},":star_and_crescent:":{"unicode":["262a-fe0f","262a"],"fname":"262a","uc":"262a","isCanonical": true},":peace:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": true},":peace_symbol:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": false},":yin_yang:":{"unicode":["262f-fe0f","262f"],"fname":"262f","uc":"262f","isCanonical": true},":wheel_of_dharma:":{"unicode":["2638-fe0f","2638"],"fname":"2638","uc":"2638","isCanonical": true},":frowning2:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": true},":white_frowning_face:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": false},":hammer_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": true},":hammer_and_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": false},":crossed_swords:":{"unicode":["2694-fe0f","2694"],"fname":"2694","uc":"2694","isCanonical": true},":scales:":{"unicode":["2696-fe0f","2696"],"fname":"2696","uc":"2696","isCanonical": true},":alembic:":{"unicode":["2697-fe0f","2697"],"fname":"2697","uc":"2697","isCanonical": true},":gear:":{"unicode":["2699-fe0f","2699"],"fname":"2699","uc":"2699","isCanonical": true},":atom:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": true},":atom_symbol:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": false},":fleur-de-lis:":{"unicode":["269c-fe0f","269c"],"fname":"269c","uc":"269c","isCanonical": true},":coffin:":{"unicode":["26b0-fe0f","26b0"],"fname":"26b0","uc":"26b0","isCanonical": true},":urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": true},":funeral_urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": false},":thunder_cloud_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": true},":thunder_cloud_and_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": false},":pick:":{"unicode":["26cf-fe0f","26cf"],"fname":"26cf","uc":"26cf","isCanonical": true},":helmet_with_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": true},":helmet_with_white_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": false},":chains:":{"unicode":["26d3-fe0f","26d3"],"fname":"26d3","uc":"26d3","isCanonical": true},":shinto_shrine:":{"unicode":["26e9-fe0f","26e9"],"fname":"26e9","uc":"26e9","isCanonical": true},":mountain:":{"unicode":["26f0-fe0f","26f0"],"fname":"26f0","uc":"26f0","isCanonical": true},":beach_umbrella:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": true},":umbrella_on_ground:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": false},":ferry:":{"unicode":["26f4-fe0f","26f4"],"fname":"26f4","uc":"26f4","isCanonical": true},":skier:":{"unicode":["26f7-fe0f","26f7"],"fname":"26f7","uc":"26f7","isCanonical": true},":ice_skate:":{"unicode":["26f8-fe0f","26f8"],"fname":"26f8","uc":"26f8","isCanonical": true},":basketball_player:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": true},":person_with_ball:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": false},":star_of_david:":{"unicode":["2721-fe0f","2721"],"fname":"2721","uc":"2721","isCanonical": true},":heart_exclamation:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": true},":heavy_heart_exclamation_mark_ornament:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": false},":third_place:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": true},":third_place_medal:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": false},":second_place:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": true},":second_place_medal:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": false},":first_place:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": true},":first_place_medal:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": false},":fencer:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": true},":fencing:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": false},":goal:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": true},":goal_net:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": false},":handball:":{"unicode":["1f93e"],"fname":"1f93e","uc":"1f93e","isCanonical": true},":regional_indicator_z:":{"unicode":["1f1ff"],"fname":"1f1ff","uc":"1f1ff","isCanonical": true},":water_polo:":{"unicode":["1f93d"],"fname":"1f93d","uc":"1f93d","isCanonical": true},":martial_arts_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": true},":karate_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": false},":boxing_glove:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": true},":boxing_gloves:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": false},":wrestlers:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": true},":wrestling:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": false},":juggling:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": true},":juggler:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": false},":cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": true},":person_doing_cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": false},":canoe:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": true},":kayak:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": false},":motor_scooter:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": true},":motorbike:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": false},":scooter:":{"unicode":["1f6f4"],"fname":"1f6f4","uc":"1f6f4","isCanonical": true},":shopping_cart:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": true},":shopping_trolley:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": false},":black_joker:":{"unicode":["1f0cf"],"fname":"1f0cf","uc":"1f0cf","isCanonical": true},":a:":{"unicode":["1f170"],"fname":"1f170","uc":"1f170","isCanonical": true},":b:":{"unicode":["1f171"],"fname":"1f171","uc":"1f171","isCanonical": true},":o2:":{"unicode":["1f17e"],"fname":"1f17e","uc":"1f17e","isCanonical": true},":octagonal_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": true},":stop_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": false},":ab:":{"unicode":["1f18e"],"fname":"1f18e","uc":"1f18e","isCanonical": true},":cl:":{"unicode":["1f191"],"fname":"1f191","uc":"1f191","isCanonical": true},":regional_indicator_y:":{"unicode":["1f1fe"],"fname":"1f1fe","uc":"1f1fe","isCanonical": true},":cool:":{"unicode":["1f192"],"fname":"1f192","uc":"1f192","isCanonical": true},":free:":{"unicode":["1f193"],"fname":"1f193","uc":"1f193","isCanonical": true},":id:":{"unicode":["1f194"],"fname":"1f194","uc":"1f194","isCanonical": true},":new:":{"unicode":["1f195"],"fname":"1f195","uc":"1f195","isCanonical": true},":ng:":{"unicode":["1f196"],"fname":"1f196","uc":"1f196","isCanonical": true},":ok:":{"unicode":["1f197"],"fname":"1f197","uc":"1f197","isCanonical": true},":sos:":{"unicode":["1f198"],"fname":"1f198","uc":"1f198","isCanonical": true},":spoon:":{"unicode":["1f944"],"fname":"1f944","uc":"1f944","isCanonical": true},":up:":{"unicode":["1f199"],"fname":"1f199","uc":"1f199","isCanonical": true},":vs:":{"unicode":["1f19a"],"fname":"1f19a","uc":"1f19a","isCanonical": true},":champagne_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": true},":clinking_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": false},":tumbler_glass:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": true},":whisky:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": false},":koko:":{"unicode":["1f201"],"fname":"1f201","uc":"1f201","isCanonical": true},":stuffed_flatbread:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": true},":stuffed_pita:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": false},":u7981:":{"unicode":["1f232"],"fname":"1f232","uc":"1f232","isCanonical": true},":u7a7a:":{"unicode":["1f233"],"fname":"1f233","uc":"1f233","isCanonical": true},":u5408:":{"unicode":["1f234"],"fname":"1f234","uc":"1f234","isCanonical": true},":u6e80:":{"unicode":["1f235"],"fname":"1f235","uc":"1f235","isCanonical": true},":u6709:":{"unicode":["1f236"],"fname":"1f236","uc":"1f236","isCanonical": true},":shallow_pan_of_food:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": true},":paella:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": false},":u7533:":{"unicode":["1f238"],"fname":"1f238","uc":"1f238","isCanonical": true},":u5272:":{"unicode":["1f239"],"fname":"1f239","uc":"1f239","isCanonical": true},":salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": true},":green_salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": false},":u55b6:":{"unicode":["1f23a"],"fname":"1f23a","uc":"1f23a","isCanonical": true},":ideograph_advantage:":{"unicode":["1f250"],"fname":"1f250","uc":"1f250","isCanonical": true},":accept:":{"unicode":["1f251"],"fname":"1f251","uc":"1f251","isCanonical": true},":cyclone:":{"unicode":["1f300"],"fname":"1f300","uc":"1f300","isCanonical": true},":french_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": true},":baguette_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": false},":foggy:":{"unicode":["1f301"],"fname":"1f301","uc":"1f301","isCanonical": true},":closed_umbrella:":{"unicode":["1f302"],"fname":"1f302","uc":"1f302","isCanonical": true},":night_with_stars:":{"unicode":["1f303"],"fname":"1f303","uc":"1f303","isCanonical": true},":sunrise_over_mountains:":{"unicode":["1f304"],"fname":"1f304","uc":"1f304","isCanonical": true},":sunrise:":{"unicode":["1f305"],"fname":"1f305","uc":"1f305","isCanonical": true},":city_dusk:":{"unicode":["1f306"],"fname":"1f306","uc":"1f306","isCanonical": true},":carrot:":{"unicode":["1f955"],"fname":"1f955","uc":"1f955","isCanonical": true},":city_sunset:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": true},":city_sunrise:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": false},":rainbow:":{"unicode":["1f308"],"fname":"1f308","uc":"1f308","isCanonical": true},":potato:":{"unicode":["1f954"],"fname":"1f954","uc":"1f954","isCanonical": true},":bridge_at_night:":{"unicode":["1f309"],"fname":"1f309","uc":"1f309","isCanonical": true},":ocean:":{"unicode":["1f30a"],"fname":"1f30a","uc":"1f30a","isCanonical": true},":volcano:":{"unicode":["1f30b"],"fname":"1f30b","uc":"1f30b","isCanonical": true},":milky_way:":{"unicode":["1f30c"],"fname":"1f30c","uc":"1f30c","isCanonical": true},":earth_asia:":{"unicode":["1f30f"],"fname":"1f30f","uc":"1f30f","isCanonical": true},":new_moon:":{"unicode":["1f311"],"fname":"1f311","uc":"1f311","isCanonical": true},":bacon:":{"unicode":["1f953"],"fname":"1f953","uc":"1f953","isCanonical": true},":first_quarter_moon:":{"unicode":["1f313"],"fname":"1f313","uc":"1f313","isCanonical": true},":waxing_gibbous_moon:":{"unicode":["1f314"],"fname":"1f314","uc":"1f314","isCanonical": true},":full_moon:":{"unicode":["1f315"],"fname":"1f315","uc":"1f315","isCanonical": true},":crescent_moon:":{"unicode":["1f319"],"fname":"1f319","uc":"1f319","isCanonical": true},":first_quarter_moon_with_face:":{"unicode":["1f31b"],"fname":"1f31b","uc":"1f31b","isCanonical": true},":star2:":{"unicode":["1f31f"],"fname":"1f31f","uc":"1f31f","isCanonical": true},":cucumber:":{"unicode":["1f952"],"fname":"1f952","uc":"1f952","isCanonical": true},":stars:":{"unicode":["1f320"],"fname":"1f320","uc":"1f320","isCanonical": true},":chestnut:":{"unicode":["1f330"],"fname":"1f330","uc":"1f330","isCanonical": true},":avocado:":{"unicode":["1f951"],"fname":"1f951","uc":"1f951","isCanonical": true},":seedling:":{"unicode":["1f331"],"fname":"1f331","uc":"1f331","isCanonical": true},":palm_tree:":{"unicode":["1f334"],"fname":"1f334","uc":"1f334","isCanonical": true},":cactus:":{"unicode":["1f335"],"fname":"1f335","uc":"1f335","isCanonical": true},":tulip:":{"unicode":["1f337"],"fname":"1f337","uc":"1f337","isCanonical": true},":cherry_blossom:":{"unicode":["1f338"],"fname":"1f338","uc":"1f338","isCanonical": true},":rose:":{"unicode":["1f339"],"fname":"1f339","uc":"1f339","isCanonical": true},":hibiscus:":{"unicode":["1f33a"],"fname":"1f33a","uc":"1f33a","isCanonical": true},":sunflower:":{"unicode":["1f33b"],"fname":"1f33b","uc":"1f33b","isCanonical": true},":blossom:":{"unicode":["1f33c"],"fname":"1f33c","uc":"1f33c","isCanonical": true},":corn:":{"unicode":["1f33d"],"fname":"1f33d","uc":"1f33d","isCanonical": true},":croissant:":{"unicode":["1f950"],"fname":"1f950","uc":"1f950","isCanonical": true},":ear_of_rice:":{"unicode":["1f33e"],"fname":"1f33e","uc":"1f33e","isCanonical": true},":herb:":{"unicode":["1f33f"],"fname":"1f33f","uc":"1f33f","isCanonical": true},":four_leaf_clover:":{"unicode":["1f340"],"fname":"1f340","uc":"1f340","isCanonical": true},":maple_leaf:":{"unicode":["1f341"],"fname":"1f341","uc":"1f341","isCanonical": true},":fallen_leaf:":{"unicode":["1f342"],"fname":"1f342","uc":"1f342","isCanonical": true},":leaves:":{"unicode":["1f343"],"fname":"1f343","uc":"1f343","isCanonical": true},":mushroom:":{"unicode":["1f344"],"fname":"1f344","uc":"1f344","isCanonical": true},":tomato:":{"unicode":["1f345"],"fname":"1f345","uc":"1f345","isCanonical": true},":eggplant:":{"unicode":["1f346"],"fname":"1f346","uc":"1f346","isCanonical": true},":grapes:":{"unicode":["1f347"],"fname":"1f347","uc":"1f347","isCanonical": true},":melon:":{"unicode":["1f348"],"fname":"1f348","uc":"1f348","isCanonical": true},":watermelon:":{"unicode":["1f349"],"fname":"1f349","uc":"1f349","isCanonical": true},":tangerine:":{"unicode":["1f34a"],"fname":"1f34a","uc":"1f34a","isCanonical": true},":wilted_rose:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": true},":wilted_flower:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": false},":banana:":{"unicode":["1f34c"],"fname":"1f34c","uc":"1f34c","isCanonical": true},":pineapple:":{"unicode":["1f34d"],"fname":"1f34d","uc":"1f34d","isCanonical": true},":apple:":{"unicode":["1f34e"],"fname":"1f34e","uc":"1f34e","isCanonical": true},":green_apple:":{"unicode":["1f34f"],"fname":"1f34f","uc":"1f34f","isCanonical": true},":peach:":{"unicode":["1f351"],"fname":"1f351","uc":"1f351","isCanonical": true},":cherries:":{"unicode":["1f352"],"fname":"1f352","uc":"1f352","isCanonical": true},":strawberry:":{"unicode":["1f353"],"fname":"1f353","uc":"1f353","isCanonical": true},":rhino:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": true},":rhinoceros:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": false},":hamburger:":{"unicode":["1f354"],"fname":"1f354","uc":"1f354","isCanonical": true},":pizza:":{"unicode":["1f355"],"fname":"1f355","uc":"1f355","isCanonical": true},":meat_on_bone:":{"unicode":["1f356"],"fname":"1f356","uc":"1f356","isCanonical": true},":lizard:":{"unicode":["1f98e"],"fname":"1f98e","uc":"1f98e","isCanonical": true},":poultry_leg:":{"unicode":["1f357"],"fname":"1f357","uc":"1f357","isCanonical": true},":rice_cracker:":{"unicode":["1f358"],"fname":"1f358","uc":"1f358","isCanonical": true},":rice_ball:":{"unicode":["1f359"],"fname":"1f359","uc":"1f359","isCanonical": true},":gorilla:":{"unicode":["1f98d"],"fname":"1f98d","uc":"1f98d","isCanonical": true},":rice:":{"unicode":["1f35a"],"fname":"1f35a","uc":"1f35a","isCanonical": true},":curry:":{"unicode":["1f35b"],"fname":"1f35b","uc":"1f35b","isCanonical": true},":deer:":{"unicode":["1f98c"],"fname":"1f98c","uc":"1f98c","isCanonical": true},":ramen:":{"unicode":["1f35c"],"fname":"1f35c","uc":"1f35c","isCanonical": true},":spaghetti:":{"unicode":["1f35d"],"fname":"1f35d","uc":"1f35d","isCanonical": true},":bread:":{"unicode":["1f35e"],"fname":"1f35e","uc":"1f35e","isCanonical": true},":fries:":{"unicode":["1f35f"],"fname":"1f35f","uc":"1f35f","isCanonical": true},":butterfly:":{"unicode":["1f98b"],"fname":"1f98b","uc":"1f98b","isCanonical": true},":sweet_potato:":{"unicode":["1f360"],"fname":"1f360","uc":"1f360","isCanonical": true},":dango:":{"unicode":["1f361"],"fname":"1f361","uc":"1f361","isCanonical": true},":fox:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": true},":fox_face:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": false},":oden:":{"unicode":["1f362"],"fname":"1f362","uc":"1f362","isCanonical": true},":sushi:":{"unicode":["1f363"],"fname":"1f363","uc":"1f363","isCanonical": true},":owl:":{"unicode":["1f989"],"fname":"1f989","uc":"1f989","isCanonical": true},":fried_shrimp:":{"unicode":["1f364"],"fname":"1f364","uc":"1f364","isCanonical": true},":fish_cake:":{"unicode":["1f365"],"fname":"1f365","uc":"1f365","isCanonical": true},":shark:":{"unicode":["1f988"],"fname":"1f988","uc":"1f988","isCanonical": true},":icecream:":{"unicode":["1f366"],"fname":"1f366","uc":"1f366","isCanonical": true},":bat:":{"unicode":["1f987"],"fname":"1f987","uc":"1f987","isCanonical": true},":shaved_ice:":{"unicode":["1f367"],"fname":"1f367","uc":"1f367","isCanonical": true},":regional_indicator_x:":{"unicode":["1f1fd"],"fname":"1f1fd","uc":"1f1fd","isCanonical": true},":ice_cream:":{"unicode":["1f368"],"fname":"1f368","uc":"1f368","isCanonical": true},":duck:":{"unicode":["1f986"],"fname":"1f986","uc":"1f986","isCanonical": true},":doughnut:":{"unicode":["1f369"],"fname":"1f369","uc":"1f369","isCanonical": true},":eagle:":{"unicode":["1f985"],"fname":"1f985","uc":"1f985","isCanonical": true},":cookie:":{"unicode":["1f36a"],"fname":"1f36a","uc":"1f36a","isCanonical": true},":black_heart:":{"unicode":["1f5a4"],"fname":"1f5a4","uc":"1f5a4","isCanonical": true},":chocolate_bar:":{"unicode":["1f36b"],"fname":"1f36b","uc":"1f36b","isCanonical": true},":candy:":{"unicode":["1f36c"],"fname":"1f36c","uc":"1f36c","isCanonical": true},":lollipop:":{"unicode":["1f36d"],"fname":"1f36d","uc":"1f36d","isCanonical": true},":custard:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": true},":pudding:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":flan:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":honey_pot:":{"unicode":["1f36f"],"fname":"1f36f","uc":"1f36f","isCanonical": true},":fingers_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": true},":hand_with_index_and_middle_finger_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": false},":cake:":{"unicode":["1f370"],"fname":"1f370","uc":"1f370","isCanonical": true},":bento:":{"unicode":["1f371"],"fname":"1f371","uc":"1f371","isCanonical": true},":stew:":{"unicode":["1f372"],"fname":"1f372","uc":"1f372","isCanonical": true},":handshake:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": true},":shaking_hands:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": false},":cooking:":{"unicode":["1f373"],"fname":"1f373","uc":"1f373","isCanonical": true},":fork_and_knife:":{"unicode":["1f374"],"fname":"1f374","uc":"1f374","isCanonical": true},":tea:":{"unicode":["1f375"],"fname":"1f375","uc":"1f375","isCanonical": true},":sake:":{"unicode":["1f376"],"fname":"1f376","uc":"1f376","isCanonical": true},":wine_glass:":{"unicode":["1f377"],"fname":"1f377","uc":"1f377","isCanonical": true},":cocktail:":{"unicode":["1f378"],"fname":"1f378","uc":"1f378","isCanonical": true},":tropical_drink:":{"unicode":["1f379"],"fname":"1f379","uc":"1f379","isCanonical": true},":beer:":{"unicode":["1f37a"],"fname":"1f37a","uc":"1f37a","isCanonical": true},":beers:":{"unicode":["1f37b"],"fname":"1f37b","uc":"1f37b","isCanonical": true},":ribbon:":{"unicode":["1f380"],"fname":"1f380","uc":"1f380","isCanonical": true},":gift:":{"unicode":["1f381"],"fname":"1f381","uc":"1f381","isCanonical": true},":birthday:":{"unicode":["1f382"],"fname":"1f382","uc":"1f382","isCanonical": true},":jack_o_lantern:":{"unicode":["1f383"],"fname":"1f383","uc":"1f383","isCanonical": true},":left_facing_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": true},":left_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": false},":right_facing_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": true},":right_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": false},":christmas_tree:":{"unicode":["1f384"],"fname":"1f384","uc":"1f384","isCanonical": true},":santa:":{"unicode":["1f385"],"fname":"1f385","uc":"1f385","isCanonical": true},":fireworks:":{"unicode":["1f386"],"fname":"1f386","uc":"1f386","isCanonical": true},":raised_back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": true},":back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": false},":sparkler:":{"unicode":["1f387"],"fname":"1f387","uc":"1f387","isCanonical": true},":balloon:":{"unicode":["1f388"],"fname":"1f388","uc":"1f388","isCanonical": true},":tada:":{"unicode":["1f389"],"fname":"1f389","uc":"1f389","isCanonical": true},":confetti_ball:":{"unicode":["1f38a"],"fname":"1f38a","uc":"1f38a","isCanonical": true},":tanabata_tree:":{"unicode":["1f38b"],"fname":"1f38b","uc":"1f38b","isCanonical": true},":crossed_flags:":{"unicode":["1f38c"],"fname":"1f38c","uc":"1f38c","isCanonical": true},":call_me:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": true},":call_me_hand:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": false},":bamboo:":{"unicode":["1f38d"],"fname":"1f38d","uc":"1f38d","isCanonical": true},":man_dancing:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": true},":male_dancer:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": false},":dolls:":{"unicode":["1f38e"],"fname":"1f38e","uc":"1f38e","isCanonical": true},":selfie:":{"unicode":["1f933"],"fname":"1f933","uc":"1f933","isCanonical": true},":flags:":{"unicode":["1f38f"],"fname":"1f38f","uc":"1f38f","isCanonical": true},":pregnant_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": true},":expecting_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": false},":wind_chime:":{"unicode":["1f390"],"fname":"1f390","uc":"1f390","isCanonical": true},":face_palm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": true},":facepalm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": false},":shrug:":{"unicode":["1f937"],"fname":"1f937","uc":"1f937","isCanonical": true},":rice_scene:":{"unicode":["1f391"],"fname":"1f391","uc":"1f391","isCanonical": true},":school_satchel:":{"unicode":["1f392"],"fname":"1f392","uc":"1f392","isCanonical": true},":mortar_board:":{"unicode":["1f393"],"fname":"1f393","uc":"1f393","isCanonical": true},":carousel_horse:":{"unicode":["1f3a0"],"fname":"1f3a0","uc":"1f3a0","isCanonical": true},":ferris_wheel:":{"unicode":["1f3a1"],"fname":"1f3a1","uc":"1f3a1","isCanonical": true},":roller_coaster:":{"unicode":["1f3a2"],"fname":"1f3a2","uc":"1f3a2","isCanonical": true},":fishing_pole_and_fish:":{"unicode":["1f3a3"],"fname":"1f3a3","uc":"1f3a3","isCanonical": true},":microphone:":{"unicode":["1f3a4"],"fname":"1f3a4","uc":"1f3a4","isCanonical": true},":movie_camera:":{"unicode":["1f3a5"],"fname":"1f3a5","uc":"1f3a5","isCanonical": true},":cinema:":{"unicode":["1f3a6"],"fname":"1f3a6","uc":"1f3a6","isCanonical": true},":headphones:":{"unicode":["1f3a7"],"fname":"1f3a7","uc":"1f3a7","isCanonical": true},":mrs_claus:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": true},":mother_christmas:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": false},":art:":{"unicode":["1f3a8"],"fname":"1f3a8","uc":"1f3a8","isCanonical": true},":man_in_tuxedo:":{"unicode":["1f935"],"fname":"1f935","uc":"1f935","isCanonical": true},":tophat:":{"unicode":["1f3a9"],"fname":"1f3a9","uc":"1f3a9","isCanonical": true},":circus_tent:":{"unicode":["1f3aa"],"fname":"1f3aa","uc":"1f3aa","isCanonical": true},":prince:":{"unicode":["1f934"],"fname":"1f934","uc":"1f934","isCanonical": true},":ticket:":{"unicode":["1f3ab"],"fname":"1f3ab","uc":"1f3ab","isCanonical": true},":clapper:":{"unicode":["1f3ac"],"fname":"1f3ac","uc":"1f3ac","isCanonical": true},":performing_arts:":{"unicode":["1f3ad"],"fname":"1f3ad","uc":"1f3ad","isCanonical": true},":sneezing_face:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": true},":sneeze:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": false},":video_game:":{"unicode":["1f3ae"],"fname":"1f3ae","uc":"1f3ae","isCanonical": true},":dart:":{"unicode":["1f3af"],"fname":"1f3af","uc":"1f3af","isCanonical": true},":slot_machine:":{"unicode":["1f3b0"],"fname":"1f3b0","uc":"1f3b0","isCanonical": true},":8ball:":{"unicode":["1f3b1"],"fname":"1f3b1","uc":"1f3b1","isCanonical": true},":game_die:":{"unicode":["1f3b2"],"fname":"1f3b2","uc":"1f3b2","isCanonical": true},":bowling:":{"unicode":["1f3b3"],"fname":"1f3b3","uc":"1f3b3","isCanonical": true},":flower_playing_cards:":{"unicode":["1f3b4"],"fname":"1f3b4","uc":"1f3b4","isCanonical": true},":lying_face:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": true},":liar:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": false},":musical_note:":{"unicode":["1f3b5"],"fname":"1f3b5","uc":"1f3b5","isCanonical": true},":notes:":{"unicode":["1f3b6"],"fname":"1f3b6","uc":"1f3b6","isCanonical": true},":saxophone:":{"unicode":["1f3b7"],"fname":"1f3b7","uc":"1f3b7","isCanonical": true},":drooling_face:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": true},":drool:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": false},":guitar:":{"unicode":["1f3b8"],"fname":"1f3b8","uc":"1f3b8","isCanonical": true},":musical_keyboard:":{"unicode":["1f3b9"],"fname":"1f3b9","uc":"1f3b9","isCanonical": true},":trumpet:":{"unicode":["1f3ba"],"fname":"1f3ba","uc":"1f3ba","isCanonical": true},":rofl:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": true},":rolling_on_the_floor_laughing:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": false},":violin:":{"unicode":["1f3bb"],"fname":"1f3bb","uc":"1f3bb","isCanonical": true},":musical_score:":{"unicode":["1f3bc"],"fname":"1f3bc","uc":"1f3bc","isCanonical": true},":running_shirt_with_sash:":{"unicode":["1f3bd"],"fname":"1f3bd","uc":"1f3bd","isCanonical": true},":nauseated_face:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": true},":sick:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": false},":tennis:":{"unicode":["1f3be"],"fname":"1f3be","uc":"1f3be","isCanonical": true},":ski:":{"unicode":["1f3bf"],"fname":"1f3bf","uc":"1f3bf","isCanonical": true},":basketball:":{"unicode":["1f3c0"],"fname":"1f3c0","uc":"1f3c0","isCanonical": true},":checkered_flag:":{"unicode":["1f3c1"],"fname":"1f3c1","uc":"1f3c1","isCanonical": true},":clown:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": true},":clown_face:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": false},":snowboarder:":{"unicode":["1f3c2"],"fname":"1f3c2","uc":"1f3c2","isCanonical": true},":runner:":{"unicode":["1f3c3"],"fname":"1f3c3","uc":"1f3c3","isCanonical": true},":surfer:":{"unicode":["1f3c4"],"fname":"1f3c4","uc":"1f3c4","isCanonical": true},":trophy:":{"unicode":["1f3c6"],"fname":"1f3c6","uc":"1f3c6","isCanonical": true},":football:":{"unicode":["1f3c8"],"fname":"1f3c8","uc":"1f3c8","isCanonical": true},":swimmer:":{"unicode":["1f3ca"],"fname":"1f3ca","uc":"1f3ca","isCanonical": true},":house:":{"unicode":["1f3e0"],"fname":"1f3e0","uc":"1f3e0","isCanonical": true},":house_with_garden:":{"unicode":["1f3e1"],"fname":"1f3e1","uc":"1f3e1","isCanonical": true},":office:":{"unicode":["1f3e2"],"fname":"1f3e2","uc":"1f3e2","isCanonical": true},":post_office:":{"unicode":["1f3e3"],"fname":"1f3e3","uc":"1f3e3","isCanonical": true},":hospital:":{"unicode":["1f3e5"],"fname":"1f3e5","uc":"1f3e5","isCanonical": true},":bank:":{"unicode":["1f3e6"],"fname":"1f3e6","uc":"1f3e6","isCanonical": true},":atm:":{"unicode":["1f3e7"],"fname":"1f3e7","uc":"1f3e7","isCanonical": true},":hotel:":{"unicode":["1f3e8"],"fname":"1f3e8","uc":"1f3e8","isCanonical": true},":love_hotel:":{"unicode":["1f3e9"],"fname":"1f3e9","uc":"1f3e9","isCanonical": true},":convenience_store:":{"unicode":["1f3ea"],"fname":"1f3ea","uc":"1f3ea","isCanonical": true},":school:":{"unicode":["1f3eb"],"fname":"1f3eb","uc":"1f3eb","isCanonical": true},":department_store:":{"unicode":["1f3ec"],"fname":"1f3ec","uc":"1f3ec","isCanonical": true},":cowboy:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": true},":face_with_cowboy_hat:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": false},":factory:":{"unicode":["1f3ed"],"fname":"1f3ed","uc":"1f3ed","isCanonical": true},":izakaya_lantern:":{"unicode":["1f3ee"],"fname":"1f3ee","uc":"1f3ee","isCanonical": true},":japanese_castle:":{"unicode":["1f3ef"],"fname":"1f3ef","uc":"1f3ef","isCanonical": true},":european_castle:":{"unicode":["1f3f0"],"fname":"1f3f0","uc":"1f3f0","isCanonical": true},":snail:":{"unicode":["1f40c"],"fname":"1f40c","uc":"1f40c","isCanonical": true},":snake:":{"unicode":["1f40d"],"fname":"1f40d","uc":"1f40d","isCanonical": true},":racehorse:":{"unicode":["1f40e"],"fname":"1f40e","uc":"1f40e","isCanonical": true},":sheep:":{"unicode":["1f411"],"fname":"1f411","uc":"1f411","isCanonical": true},":monkey:":{"unicode":["1f412"],"fname":"1f412","uc":"1f412","isCanonical": true},":chicken:":{"unicode":["1f414"],"fname":"1f414","uc":"1f414","isCanonical": true},":boar:":{"unicode":["1f417"],"fname":"1f417","uc":"1f417","isCanonical": true},":elephant:":{"unicode":["1f418"],"fname":"1f418","uc":"1f418","isCanonical": true},":octopus:":{"unicode":["1f419"],"fname":"1f419","uc":"1f419","isCanonical": true},":shell:":{"unicode":["1f41a"],"fname":"1f41a","uc":"1f41a","isCanonical": true},":bug:":{"unicode":["1f41b"],"fname":"1f41b","uc":"1f41b","isCanonical": true},":ant:":{"unicode":["1f41c"],"fname":"1f41c","uc":"1f41c","isCanonical": true},":bee:":{"unicode":["1f41d"],"fname":"1f41d","uc":"1f41d","isCanonical": true},":beetle:":{"unicode":["1f41e"],"fname":"1f41e","uc":"1f41e","isCanonical": true},":fish:":{"unicode":["1f41f"],"fname":"1f41f","uc":"1f41f","isCanonical": true},":tropical_fish:":{"unicode":["1f420"],"fname":"1f420","uc":"1f420","isCanonical": true},":blowfish:":{"unicode":["1f421"],"fname":"1f421","uc":"1f421","isCanonical": true},":turtle:":{"unicode":["1f422"],"fname":"1f422","uc":"1f422","isCanonical": true},":hatching_chick:":{"unicode":["1f423"],"fname":"1f423","uc":"1f423","isCanonical": true},":baby_chick:":{"unicode":["1f424"],"fname":"1f424","uc":"1f424","isCanonical": true},":hatched_chick:":{"unicode":["1f425"],"fname":"1f425","uc":"1f425","isCanonical": true},":bird:":{"unicode":["1f426"],"fname":"1f426","uc":"1f426","isCanonical": true},":penguin:":{"unicode":["1f427"],"fname":"1f427","uc":"1f427","isCanonical": true},":koala:":{"unicode":["1f428"],"fname":"1f428","uc":"1f428","isCanonical": true},":poodle:":{"unicode":["1f429"],"fname":"1f429","uc":"1f429","isCanonical": true},":camel:":{"unicode":["1f42b"],"fname":"1f42b","uc":"1f42b","isCanonical": true},":dolphin:":{"unicode":["1f42c"],"fname":"1f42c","uc":"1f42c","isCanonical": true},":mouse:":{"unicode":["1f42d"],"fname":"1f42d","uc":"1f42d","isCanonical": true},":cow:":{"unicode":["1f42e"],"fname":"1f42e","uc":"1f42e","isCanonical": true},":tiger:":{"unicode":["1f42f"],"fname":"1f42f","uc":"1f42f","isCanonical": true},":rabbit:":{"unicode":["1f430"],"fname":"1f430","uc":"1f430","isCanonical": true},":cat:":{"unicode":["1f431"],"fname":"1f431","uc":"1f431","isCanonical": true},":dragon_face:":{"unicode":["1f432"],"fname":"1f432","uc":"1f432","isCanonical": true},":whale:":{"unicode":["1f433"],"fname":"1f433","uc":"1f433","isCanonical": true},":horse:":{"unicode":["1f434"],"fname":"1f434","uc":"1f434","isCanonical": true},":monkey_face:":{"unicode":["1f435"],"fname":"1f435","uc":"1f435","isCanonical": true},":dog:":{"unicode":["1f436"],"fname":"1f436","uc":"1f436","isCanonical": true},":pig:":{"unicode":["1f437"],"fname":"1f437","uc":"1f437","isCanonical": true},":frog:":{"unicode":["1f438"],"fname":"1f438","uc":"1f438","isCanonical": true},":hamster:":{"unicode":["1f439"],"fname":"1f439","uc":"1f439","isCanonical": true},":wolf:":{"unicode":["1f43a"],"fname":"1f43a","uc":"1f43a","isCanonical": true},":bear:":{"unicode":["1f43b"],"fname":"1f43b","uc":"1f43b","isCanonical": true},":panda_face:":{"unicode":["1f43c"],"fname":"1f43c","uc":"1f43c","isCanonical": true},":pig_nose:":{"unicode":["1f43d"],"fname":"1f43d","uc":"1f43d","isCanonical": true},":feet:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": true},":paw_prints:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": false},":eyes:":{"unicode":["1f440"],"fname":"1f440","uc":"1f440","isCanonical": true},":ear:":{"unicode":["1f442"],"fname":"1f442","uc":"1f442","isCanonical": true},":nose:":{"unicode":["1f443"],"fname":"1f443","uc":"1f443","isCanonical": true},":lips:":{"unicode":["1f444"],"fname":"1f444","uc":"1f444","isCanonical": true},":tongue:":{"unicode":["1f445"],"fname":"1f445","uc":"1f445","isCanonical": true},":point_up_2:":{"unicode":["1f446"],"fname":"1f446","uc":"1f446","isCanonical": true},":point_down:":{"unicode":["1f447"],"fname":"1f447","uc":"1f447","isCanonical": true},":point_left:":{"unicode":["1f448"],"fname":"1f448","uc":"1f448","isCanonical": true},":point_right:":{"unicode":["1f449"],"fname":"1f449","uc":"1f449","isCanonical": true},":punch:":{"unicode":["1f44a"],"fname":"1f44a","uc":"1f44a","isCanonical": true},":wave:":{"unicode":["1f44b"],"fname":"1f44b","uc":"1f44b","isCanonical": true},":ok_hand:":{"unicode":["1f44c"],"fname":"1f44c","uc":"1f44c","isCanonical": true},":thumbsup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": true},":+1:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbsdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": true},":-1:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":thumbdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":clap:":{"unicode":["1f44f"],"fname":"1f44f","uc":"1f44f","isCanonical": true},":open_hands:":{"unicode":["1f450"],"fname":"1f450","uc":"1f450","isCanonical": true},":crown:":{"unicode":["1f451"],"fname":"1f451","uc":"1f451","isCanonical": true},":womans_hat:":{"unicode":["1f452"],"fname":"1f452","uc":"1f452","isCanonical": true},":eyeglasses:":{"unicode":["1f453"],"fname":"1f453","uc":"1f453","isCanonical": true},":necktie:":{"unicode":["1f454"],"fname":"1f454","uc":"1f454","isCanonical": true},":shirt:":{"unicode":["1f455"],"fname":"1f455","uc":"1f455","isCanonical": true},":jeans:":{"unicode":["1f456"],"fname":"1f456","uc":"1f456","isCanonical": true},":dress:":{"unicode":["1f457"],"fname":"1f457","uc":"1f457","isCanonical": true},":kimono:":{"unicode":["1f458"],"fname":"1f458","uc":"1f458","isCanonical": true},":bikini:":{"unicode":["1f459"],"fname":"1f459","uc":"1f459","isCanonical": true},":womans_clothes:":{"unicode":["1f45a"],"fname":"1f45a","uc":"1f45a","isCanonical": true},":purse:":{"unicode":["1f45b"],"fname":"1f45b","uc":"1f45b","isCanonical": true},":handbag:":{"unicode":["1f45c"],"fname":"1f45c","uc":"1f45c","isCanonical": true},":pouch:":{"unicode":["1f45d"],"fname":"1f45d","uc":"1f45d","isCanonical": true},":mans_shoe:":{"unicode":["1f45e"],"fname":"1f45e","uc":"1f45e","isCanonical": true},":athletic_shoe:":{"unicode":["1f45f"],"fname":"1f45f","uc":"1f45f","isCanonical": true},":high_heel:":{"unicode":["1f460"],"fname":"1f460","uc":"1f460","isCanonical": true},":sandal:":{"unicode":["1f461"],"fname":"1f461","uc":"1f461","isCanonical": true},":boot:":{"unicode":["1f462"],"fname":"1f462","uc":"1f462","isCanonical": true},":footprints:":{"unicode":["1f463"],"fname":"1f463","uc":"1f463","isCanonical": true},":bust_in_silhouette:":{"unicode":["1f464"],"fname":"1f464","uc":"1f464","isCanonical": true},":boy:":{"unicode":["1f466"],"fname":"1f466","uc":"1f466","isCanonical": true},":girl:":{"unicode":["1f467"],"fname":"1f467","uc":"1f467","isCanonical": true},":man:":{"unicode":["1f468"],"fname":"1f468","uc":"1f468","isCanonical": true},":woman:":{"unicode":["1f469"],"fname":"1f469","uc":"1f469","isCanonical": true},":family:":{"unicode":["1f46a"],"fname":"1f46a","uc":"1f46a","isCanonical": true},":couple:":{"unicode":["1f46b"],"fname":"1f46b","uc":"1f46b","isCanonical": true},":cop:":{"unicode":["1f46e"],"fname":"1f46e","uc":"1f46e","isCanonical": true},":dancers:":{"unicode":["1f46f"],"fname":"1f46f","uc":"1f46f","isCanonical": true},":bride_with_veil:":{"unicode":["1f470"],"fname":"1f470","uc":"1f470","isCanonical": true},":person_with_blond_hair:":{"unicode":["1f471"],"fname":"1f471","uc":"1f471","isCanonical": true},":man_with_gua_pi_mao:":{"unicode":["1f472"],"fname":"1f472","uc":"1f472","isCanonical": true},":man_with_turban:":{"unicode":["1f473"],"fname":"1f473","uc":"1f473","isCanonical": true},":older_man:":{"unicode":["1f474"],"fname":"1f474","uc":"1f474","isCanonical": true},":older_woman:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": true},":grandma:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": false},":baby:":{"unicode":["1f476"],"fname":"1f476","uc":"1f476","isCanonical": true},":construction_worker:":{"unicode":["1f477"],"fname":"1f477","uc":"1f477","isCanonical": true},":princess:":{"unicode":["1f478"],"fname":"1f478","uc":"1f478","isCanonical": true},":japanese_ogre:":{"unicode":["1f479"],"fname":"1f479","uc":"1f479","isCanonical": true},":japanese_goblin:":{"unicode":["1f47a"],"fname":"1f47a","uc":"1f47a","isCanonical": true},":ghost:":{"unicode":["1f47b"],"fname":"1f47b","uc":"1f47b","isCanonical": true},":angel:":{"unicode":["1f47c"],"fname":"1f47c","uc":"1f47c","isCanonical": true},":alien:":{"unicode":["1f47d"],"fname":"1f47d","uc":"1f47d","isCanonical": true},":space_invader:":{"unicode":["1f47e"],"fname":"1f47e","uc":"1f47e","isCanonical": true},":imp:":{"unicode":["1f47f"],"fname":"1f47f","uc":"1f47f","isCanonical": true},":skull:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": true},":skeleton:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": false},":card_index:":{"unicode":["1f4c7"],"fname":"1f4c7","uc":"1f4c7","isCanonical": true},":information_desk_person:":{"unicode":["1f481"],"fname":"1f481","uc":"1f481","isCanonical": true},":guardsman:":{"unicode":["1f482"],"fname":"1f482","uc":"1f482","isCanonical": true},":dancer:":{"unicode":["1f483"],"fname":"1f483","uc":"1f483","isCanonical": true},":lipstick:":{"unicode":["1f484"],"fname":"1f484","uc":"1f484","isCanonical": true},":nail_care:":{"unicode":["1f485"],"fname":"1f485","uc":"1f485","isCanonical": true},":ledger:":{"unicode":["1f4d2"],"fname":"1f4d2","uc":"1f4d2","isCanonical": true},":massage:":{"unicode":["1f486"],"fname":"1f486","uc":"1f486","isCanonical": true},":notebook:":{"unicode":["1f4d3"],"fname":"1f4d3","uc":"1f4d3","isCanonical": true},":haircut:":{"unicode":["1f487"],"fname":"1f487","uc":"1f487","isCanonical": true},":notebook_with_decorative_cover:":{"unicode":["1f4d4"],"fname":"1f4d4","uc":"1f4d4","isCanonical": true},":barber:":{"unicode":["1f488"],"fname":"1f488","uc":"1f488","isCanonical": true},":closed_book:":{"unicode":["1f4d5"],"fname":"1f4d5","uc":"1f4d5","isCanonical": true},":syringe:":{"unicode":["1f489"],"fname":"1f489","uc":"1f489","isCanonical": true},":book:":{"unicode":["1f4d6"],"fname":"1f4d6","uc":"1f4d6","isCanonical": true},":pill:":{"unicode":["1f48a"],"fname":"1f48a","uc":"1f48a","isCanonical": true},":green_book:":{"unicode":["1f4d7"],"fname":"1f4d7","uc":"1f4d7","isCanonical": true},":kiss:":{"unicode":["1f48b"],"fname":"1f48b","uc":"1f48b","isCanonical": true},":blue_book:":{"unicode":["1f4d8"],"fname":"1f4d8","uc":"1f4d8","isCanonical": true},":love_letter:":{"unicode":["1f48c"],"fname":"1f48c","uc":"1f48c","isCanonical": true},":orange_book:":{"unicode":["1f4d9"],"fname":"1f4d9","uc":"1f4d9","isCanonical": true},":ring:":{"unicode":["1f48d"],"fname":"1f48d","uc":"1f48d","isCanonical": true},":books:":{"unicode":["1f4da"],"fname":"1f4da","uc":"1f4da","isCanonical": true},":gem:":{"unicode":["1f48e"],"fname":"1f48e","uc":"1f48e","isCanonical": true},":name_badge:":{"unicode":["1f4db"],"fname":"1f4db","uc":"1f4db","isCanonical": true},":couplekiss:":{"unicode":["1f48f"],"fname":"1f48f","uc":"1f48f","isCanonical": true},":scroll:":{"unicode":["1f4dc"],"fname":"1f4dc","uc":"1f4dc","isCanonical": true},":bouquet:":{"unicode":["1f490"],"fname":"1f490","uc":"1f490","isCanonical": true},":pencil:":{"unicode":["1f4dd"],"fname":"1f4dd","uc":"1f4dd","isCanonical": true},":couple_with_heart:":{"unicode":["1f491"],"fname":"1f491","uc":"1f491","isCanonical": true},":telephone_receiver:":{"unicode":["1f4de"],"fname":"1f4de","uc":"1f4de","isCanonical": true},":wedding:":{"unicode":["1f492"],"fname":"1f492","uc":"1f492","isCanonical": true},":pager:":{"unicode":["1f4df"],"fname":"1f4df","uc":"1f4df","isCanonical": true},":fax:":{"unicode":["1f4e0"],"fname":"1f4e0","uc":"1f4e0","isCanonical": true},":heartbeat:":{"unicode":["1f493"],"fname":"1f493","uc":"1f493","isCanonical": true},":satellite:":{"unicode":["1f4e1"],"fname":"1f4e1","uc":"1f4e1","isCanonical": true},":loudspeaker:":{"unicode":["1f4e2"],"fname":"1f4e2","uc":"1f4e2","isCanonical": true},":broken_heart:":{"unicode":["1f494"],"fname":"1f494","uc":"1f494","isCanonical": true},":mega:":{"unicode":["1f4e3"],"fname":"1f4e3","uc":"1f4e3","isCanonical": true},":outbox_tray:":{"unicode":["1f4e4"],"fname":"1f4e4","uc":"1f4e4","isCanonical": true},":two_hearts:":{"unicode":["1f495"],"fname":"1f495","uc":"1f495","isCanonical": true},":inbox_tray:":{"unicode":["1f4e5"],"fname":"1f4e5","uc":"1f4e5","isCanonical": true},":package:":{"unicode":["1f4e6"],"fname":"1f4e6","uc":"1f4e6","isCanonical": true},":sparkling_heart:":{"unicode":["1f496"],"fname":"1f496","uc":"1f496","isCanonical": true},":e-mail:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": true},":email:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": false},":incoming_envelope:":{"unicode":["1f4e8"],"fname":"1f4e8","uc":"1f4e8","isCanonical": true},":heartpulse:":{"unicode":["1f497"],"fname":"1f497","uc":"1f497","isCanonical": true},":envelope_with_arrow:":{"unicode":["1f4e9"],"fname":"1f4e9","uc":"1f4e9","isCanonical": true},":mailbox_closed:":{"unicode":["1f4ea"],"fname":"1f4ea","uc":"1f4ea","isCanonical": true},":cupid:":{"unicode":["1f498"],"fname":"1f498","uc":"1f498","isCanonical": true},":mailbox:":{"unicode":["1f4eb"],"fname":"1f4eb","uc":"1f4eb","isCanonical": true},":postbox:":{"unicode":["1f4ee"],"fname":"1f4ee","uc":"1f4ee","isCanonical": true},":blue_heart:":{"unicode":["1f499"],"fname":"1f499","uc":"1f499","isCanonical": true},":newspaper:":{"unicode":["1f4f0"],"fname":"1f4f0","uc":"1f4f0","isCanonical": true},":iphone:":{"unicode":["1f4f1"],"fname":"1f4f1","uc":"1f4f1","isCanonical": true},":green_heart:":{"unicode":["1f49a"],"fname":"1f49a","uc":"1f49a","isCanonical": true},":calling:":{"unicode":["1f4f2"],"fname":"1f4f2","uc":"1f4f2","isCanonical": true},":vibration_mode:":{"unicode":["1f4f3"],"fname":"1f4f3","uc":"1f4f3","isCanonical": true},":yellow_heart:":{"unicode":["1f49b"],"fname":"1f49b","uc":"1f49b","isCanonical": true},":mobile_phone_off:":{"unicode":["1f4f4"],"fname":"1f4f4","uc":"1f4f4","isCanonical": true},":signal_strength:":{"unicode":["1f4f6"],"fname":"1f4f6","uc":"1f4f6","isCanonical": true},":purple_heart:":{"unicode":["1f49c"],"fname":"1f49c","uc":"1f49c","isCanonical": true},":camera:":{"unicode":["1f4f7"],"fname":"1f4f7","uc":"1f4f7","isCanonical": true},":video_camera:":{"unicode":["1f4f9"],"fname":"1f4f9","uc":"1f4f9","isCanonical": true},":gift_heart:":{"unicode":["1f49d"],"fname":"1f49d","uc":"1f49d","isCanonical": true},":tv:":{"unicode":["1f4fa"],"fname":"1f4fa","uc":"1f4fa","isCanonical": true},":radio:":{"unicode":["1f4fb"],"fname":"1f4fb","uc":"1f4fb","isCanonical": true},":revolving_hearts:":{"unicode":["1f49e"],"fname":"1f49e","uc":"1f49e","isCanonical": true},":vhs:":{"unicode":["1f4fc"],"fname":"1f4fc","uc":"1f4fc","isCanonical": true},":arrows_clockwise:":{"unicode":["1f503"],"fname":"1f503","uc":"1f503","isCanonical": true},":heart_decoration:":{"unicode":["1f49f"],"fname":"1f49f","uc":"1f49f","isCanonical": true},":loud_sound:":{"unicode":["1f50a"],"fname":"1f50a","uc":"1f50a","isCanonical": true},":battery:":{"unicode":["1f50b"],"fname":"1f50b","uc":"1f50b","isCanonical": true},":diamond_shape_with_a_dot_inside:":{"unicode":["1f4a0"],"fname":"1f4a0","uc":"1f4a0","isCanonical": true},":electric_plug:":{"unicode":["1f50c"],"fname":"1f50c","uc":"1f50c","isCanonical": true},":mag:":{"unicode":["1f50d"],"fname":"1f50d","uc":"1f50d","isCanonical": true},":bulb:":{"unicode":["1f4a1"],"fname":"1f4a1","uc":"1f4a1","isCanonical": true},":mag_right:":{"unicode":["1f50e"],"fname":"1f50e","uc":"1f50e","isCanonical": true},":lock_with_ink_pen:":{"unicode":["1f50f"],"fname":"1f50f","uc":"1f50f","isCanonical": true},":anger:":{"unicode":["1f4a2"],"fname":"1f4a2","uc":"1f4a2","isCanonical": true},":closed_lock_with_key:":{"unicode":["1f510"],"fname":"1f510","uc":"1f510","isCanonical": true},":key:":{"unicode":["1f511"],"fname":"1f511","uc":"1f511","isCanonical": true},":bomb:":{"unicode":["1f4a3"],"fname":"1f4a3","uc":"1f4a3","isCanonical": true},":lock:":{"unicode":["1f512"],"fname":"1f512","uc":"1f512","isCanonical": true},":unlock:":{"unicode":["1f513"],"fname":"1f513","uc":"1f513","isCanonical": true},":zzz:":{"unicode":["1f4a4"],"fname":"1f4a4","uc":"1f4a4","isCanonical": true},":bell:":{"unicode":["1f514"],"fname":"1f514","uc":"1f514","isCanonical": true},":bookmark:":{"unicode":["1f516"],"fname":"1f516","uc":"1f516","isCanonical": true},":boom:":{"unicode":["1f4a5"],"fname":"1f4a5","uc":"1f4a5","isCanonical": true},":link:":{"unicode":["1f517"],"fname":"1f517","uc":"1f517","isCanonical": true},":radio_button:":{"unicode":["1f518"],"fname":"1f518","uc":"1f518","isCanonical": true},":sweat_drops:":{"unicode":["1f4a6"],"fname":"1f4a6","uc":"1f4a6","isCanonical": true},":back:":{"unicode":["1f519"],"fname":"1f519","uc":"1f519","isCanonical": true},":end:":{"unicode":["1f51a"],"fname":"1f51a","uc":"1f51a","isCanonical": true},":droplet:":{"unicode":["1f4a7"],"fname":"1f4a7","uc":"1f4a7","isCanonical": true},":on:":{"unicode":["1f51b"],"fname":"1f51b","uc":"1f51b","isCanonical": true},":soon:":{"unicode":["1f51c"],"fname":"1f51c","uc":"1f51c","isCanonical": true},":dash:":{"unicode":["1f4a8"],"fname":"1f4a8","uc":"1f4a8","isCanonical": true},":top:":{"unicode":["1f51d"],"fname":"1f51d","uc":"1f51d","isCanonical": true},":underage:":{"unicode":["1f51e"],"fname":"1f51e","uc":"1f51e","isCanonical": true},":poop:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": true},":shit:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":hankey:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":poo:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":keycap_ten:":{"unicode":["1f51f"],"fname":"1f51f","uc":"1f51f","isCanonical": true},":muscle:":{"unicode":["1f4aa"],"fname":"1f4aa","uc":"1f4aa","isCanonical": true},":capital_abcd:":{"unicode":["1f520"],"fname":"1f520","uc":"1f520","isCanonical": true},":abcd:":{"unicode":["1f521"],"fname":"1f521","uc":"1f521","isCanonical": true},":dizzy:":{"unicode":["1f4ab"],"fname":"1f4ab","uc":"1f4ab","isCanonical": true},":1234:":{"unicode":["1f522"],"fname":"1f522","uc":"1f522","isCanonical": true},":symbols:":{"unicode":["1f523"],"fname":"1f523","uc":"1f523","isCanonical": true},":speech_balloon:":{"unicode":["1f4ac"],"fname":"1f4ac","uc":"1f4ac","isCanonical": true},":abc:":{"unicode":["1f524"],"fname":"1f524","uc":"1f524","isCanonical": true},":fire:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": true},":flame:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": false},":white_flower:":{"unicode":["1f4ae"],"fname":"1f4ae","uc":"1f4ae","isCanonical": true},":flashlight:":{"unicode":["1f526"],"fname":"1f526","uc":"1f526","isCanonical": true},":wrench:":{"unicode":["1f527"],"fname":"1f527","uc":"1f527","isCanonical": true},":100:":{"unicode":["1f4af"],"fname":"1f4af","uc":"1f4af","isCanonical": true},":hammer:":{"unicode":["1f528"],"fname":"1f528","uc":"1f528","isCanonical": true},":nut_and_bolt:":{"unicode":["1f529"],"fname":"1f529","uc":"1f529","isCanonical": true},":moneybag:":{"unicode":["1f4b0"],"fname":"1f4b0","uc":"1f4b0","isCanonical": true},":knife:":{"unicode":["1f52a"],"fname":"1f52a","uc":"1f52a","isCanonical": true},":gun:":{"unicode":["1f52b"],"fname":"1f52b","uc":"1f52b","isCanonical": true},":currency_exchange:":{"unicode":["1f4b1"],"fname":"1f4b1","uc":"1f4b1","isCanonical": true},":crystal_ball:":{"unicode":["1f52e"],"fname":"1f52e","uc":"1f52e","isCanonical": true},":heavy_dollar_sign:":{"unicode":["1f4b2"],"fname":"1f4b2","uc":"1f4b2","isCanonical": true},":six_pointed_star:":{"unicode":["1f52f"],"fname":"1f52f","uc":"1f52f","isCanonical": true},":credit_card:":{"unicode":["1f4b3"],"fname":"1f4b3","uc":"1f4b3","isCanonical": true},":beginner:":{"unicode":["1f530"],"fname":"1f530","uc":"1f530","isCanonical": true},":trident:":{"unicode":["1f531"],"fname":"1f531","uc":"1f531","isCanonical": true},":yen:":{"unicode":["1f4b4"],"fname":"1f4b4","uc":"1f4b4","isCanonical": true},":black_square_button:":{"unicode":["1f532"],"fname":"1f532","uc":"1f532","isCanonical": true},":white_square_button:":{"unicode":["1f533"],"fname":"1f533","uc":"1f533","isCanonical": true},":dollar:":{"unicode":["1f4b5"],"fname":"1f4b5","uc":"1f4b5","isCanonical": true},":red_circle:":{"unicode":["1f534"],"fname":"1f534","uc":"1f534","isCanonical": true},":blue_circle:":{"unicode":["1f535"],"fname":"1f535","uc":"1f535","isCanonical": true},":money_with_wings:":{"unicode":["1f4b8"],"fname":"1f4b8","uc":"1f4b8","isCanonical": true},":large_orange_diamond:":{"unicode":["1f536"],"fname":"1f536","uc":"1f536","isCanonical": true},":large_blue_diamond:":{"unicode":["1f537"],"fname":"1f537","uc":"1f537","isCanonical": true},":chart:":{"unicode":["1f4b9"],"fname":"1f4b9","uc":"1f4b9","isCanonical": true},":small_orange_diamond:":{"unicode":["1f538"],"fname":"1f538","uc":"1f538","isCanonical": true},":small_blue_diamond:":{"unicode":["1f539"],"fname":"1f539","uc":"1f539","isCanonical": true},":seat:":{"unicode":["1f4ba"],"fname":"1f4ba","uc":"1f4ba","isCanonical": true},":small_red_triangle:":{"unicode":["1f53a"],"fname":"1f53a","uc":"1f53a","isCanonical": true},":small_red_triangle_down:":{"unicode":["1f53b"],"fname":"1f53b","uc":"1f53b","isCanonical": true},":computer:":{"unicode":["1f4bb"],"fname":"1f4bb","uc":"1f4bb","isCanonical": true},":arrow_up_small:":{"unicode":["1f53c"],"fname":"1f53c","uc":"1f53c","isCanonical": true},":briefcase:":{"unicode":["1f4bc"],"fname":"1f4bc","uc":"1f4bc","isCanonical": true},":arrow_down_small:":{"unicode":["1f53d"],"fname":"1f53d","uc":"1f53d","isCanonical": true},":clock1:":{"unicode":["1f550"],"fname":"1f550","uc":"1f550","isCanonical": true},":minidisc:":{"unicode":["1f4bd"],"fname":"1f4bd","uc":"1f4bd","isCanonical": true},":clock2:":{"unicode":["1f551"],"fname":"1f551","uc":"1f551","isCanonical": true},":floppy_disk:":{"unicode":["1f4be"],"fname":"1f4be","uc":"1f4be","isCanonical": true},":clock3:":{"unicode":["1f552"],"fname":"1f552","uc":"1f552","isCanonical": true},":cd:":{"unicode":["1f4bf"],"fname":"1f4bf","uc":"1f4bf","isCanonical": true},":clock4:":{"unicode":["1f553"],"fname":"1f553","uc":"1f553","isCanonical": true},":dvd:":{"unicode":["1f4c0"],"fname":"1f4c0","uc":"1f4c0","isCanonical": true},":clock5:":{"unicode":["1f554"],"fname":"1f554","uc":"1f554","isCanonical": true},":clock6:":{"unicode":["1f555"],"fname":"1f555","uc":"1f555","isCanonical": true},":file_folder:":{"unicode":["1f4c1"],"fname":"1f4c1","uc":"1f4c1","isCanonical": true},":clock7:":{"unicode":["1f556"],"fname":"1f556","uc":"1f556","isCanonical": true},":clock8:":{"unicode":["1f557"],"fname":"1f557","uc":"1f557","isCanonical": true},":open_file_folder:":{"unicode":["1f4c2"],"fname":"1f4c2","uc":"1f4c2","isCanonical": true},":clock9:":{"unicode":["1f558"],"fname":"1f558","uc":"1f558","isCanonical": true},":clock10:":{"unicode":["1f559"],"fname":"1f559","uc":"1f559","isCanonical": true},":page_with_curl:":{"unicode":["1f4c3"],"fname":"1f4c3","uc":"1f4c3","isCanonical": true},":clock11:":{"unicode":["1f55a"],"fname":"1f55a","uc":"1f55a","isCanonical": true},":clock12:":{"unicode":["1f55b"],"fname":"1f55b","uc":"1f55b","isCanonical": true},":page_facing_up:":{"unicode":["1f4c4"],"fname":"1f4c4","uc":"1f4c4","isCanonical": true},":mount_fuji:":{"unicode":["1f5fb"],"fname":"1f5fb","uc":"1f5fb","isCanonical": true},":tokyo_tower:":{"unicode":["1f5fc"],"fname":"1f5fc","uc":"1f5fc","isCanonical": true},":date:":{"unicode":["1f4c5"],"fname":"1f4c5","uc":"1f4c5","isCanonical": true},":statue_of_liberty:":{"unicode":["1f5fd"],"fname":"1f5fd","uc":"1f5fd","isCanonical": true},":japan:":{"unicode":["1f5fe"],"fname":"1f5fe","uc":"1f5fe","isCanonical": true},":calendar:":{"unicode":["1f4c6"],"fname":"1f4c6","uc":"1f4c6","isCanonical": true},":moyai:":{"unicode":["1f5ff"],"fname":"1f5ff","uc":"1f5ff","isCanonical": true},":grin:":{"unicode":["1f601"],"fname":"1f601","uc":"1f601","isCanonical": true},":joy:":{"unicode":["1f602"],"fname":"1f602","uc":"1f602","isCanonical": true},":smiley:":{"unicode":["1f603"],"fname":"1f603","uc":"1f603","isCanonical": true},":chart_with_upwards_trend:":{"unicode":["1f4c8"],"fname":"1f4c8","uc":"1f4c8","isCanonical": true},":smile:":{"unicode":["1f604"],"fname":"1f604","uc":"1f604","isCanonical": true},":sweat_smile:":{"unicode":["1f605"],"fname":"1f605","uc":"1f605","isCanonical": true},":chart_with_downwards_trend:":{"unicode":["1f4c9"],"fname":"1f4c9","uc":"1f4c9","isCanonical": true},":laughing:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": true},":satisfied:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": false},":wink:":{"unicode":["1f609"],"fname":"1f609","uc":"1f609","isCanonical": true},":bar_chart:":{"unicode":["1f4ca"],"fname":"1f4ca","uc":"1f4ca","isCanonical": true},":blush:":{"unicode":["1f60a"],"fname":"1f60a","uc":"1f60a","isCanonical": true},":yum:":{"unicode":["1f60b"],"fname":"1f60b","uc":"1f60b","isCanonical": true},":clipboard:":{"unicode":["1f4cb"],"fname":"1f4cb","uc":"1f4cb","isCanonical": true},":relieved:":{"unicode":["1f60c"],"fname":"1f60c","uc":"1f60c","isCanonical": true},":heart_eyes:":{"unicode":["1f60d"],"fname":"1f60d","uc":"1f60d","isCanonical": true},":pushpin:":{"unicode":["1f4cc"],"fname":"1f4cc","uc":"1f4cc","isCanonical": true},":smirk:":{"unicode":["1f60f"],"fname":"1f60f","uc":"1f60f","isCanonical": true},":unamused:":{"unicode":["1f612"],"fname":"1f612","uc":"1f612","isCanonical": true},":round_pushpin:":{"unicode":["1f4cd"],"fname":"1f4cd","uc":"1f4cd","isCanonical": true},":sweat:":{"unicode":["1f613"],"fname":"1f613","uc":"1f613","isCanonical": true},":pensive:":{"unicode":["1f614"],"fname":"1f614","uc":"1f614","isCanonical": true},":paperclip:":{"unicode":["1f4ce"],"fname":"1f4ce","uc":"1f4ce","isCanonical": true},":confounded:":{"unicode":["1f616"],"fname":"1f616","uc":"1f616","isCanonical": true},":kissing_heart:":{"unicode":["1f618"],"fname":"1f618","uc":"1f618","isCanonical": true},":straight_ruler:":{"unicode":["1f4cf"],"fname":"1f4cf","uc":"1f4cf","isCanonical": true},":kissing_closed_eyes:":{"unicode":["1f61a"],"fname":"1f61a","uc":"1f61a","isCanonical": true},":stuck_out_tongue_winking_eye:":{"unicode":["1f61c"],"fname":"1f61c","uc":"1f61c","isCanonical": true},":triangular_ruler:":{"unicode":["1f4d0"],"fname":"1f4d0","uc":"1f4d0","isCanonical": true},":stuck_out_tongue_closed_eyes:":{"unicode":["1f61d"],"fname":"1f61d","uc":"1f61d","isCanonical": true},":disappointed:":{"unicode":["1f61e"],"fname":"1f61e","uc":"1f61e","isCanonical": true},":bookmark_tabs:":{"unicode":["1f4d1"],"fname":"1f4d1","uc":"1f4d1","isCanonical": true},":angry:":{"unicode":["1f620"],"fname":"1f620","uc":"1f620","isCanonical": true},":rage:":{"unicode":["1f621"],"fname":"1f621","uc":"1f621","isCanonical": true},":cry:":{"unicode":["1f622"],"fname":"1f622","uc":"1f622","isCanonical": true},":persevere:":{"unicode":["1f623"],"fname":"1f623","uc":"1f623","isCanonical": true},":triumph:":{"unicode":["1f624"],"fname":"1f624","uc":"1f624","isCanonical": true},":disappointed_relieved:":{"unicode":["1f625"],"fname":"1f625","uc":"1f625","isCanonical": true},":fearful:":{"unicode":["1f628"],"fname":"1f628","uc":"1f628","isCanonical": true},":weary:":{"unicode":["1f629"],"fname":"1f629","uc":"1f629","isCanonical": true},":sleepy:":{"unicode":["1f62a"],"fname":"1f62a","uc":"1f62a","isCanonical": true},":tired_face:":{"unicode":["1f62b"],"fname":"1f62b","uc":"1f62b","isCanonical": true},":sob:":{"unicode":["1f62d"],"fname":"1f62d","uc":"1f62d","isCanonical": true},":cold_sweat:":{"unicode":["1f630"],"fname":"1f630","uc":"1f630","isCanonical": true},":scream:":{"unicode":["1f631"],"fname":"1f631","uc":"1f631","isCanonical": true},":astonished:":{"unicode":["1f632"],"fname":"1f632","uc":"1f632","isCanonical": true},":flushed:":{"unicode":["1f633"],"fname":"1f633","uc":"1f633","isCanonical": true},":dizzy_face:":{"unicode":["1f635"],"fname":"1f635","uc":"1f635","isCanonical": true},":mask:":{"unicode":["1f637"],"fname":"1f637","uc":"1f637","isCanonical": true},":smile_cat:":{"unicode":["1f638"],"fname":"1f638","uc":"1f638","isCanonical": true},":joy_cat:":{"unicode":["1f639"],"fname":"1f639","uc":"1f639","isCanonical": true},":smiley_cat:":{"unicode":["1f63a"],"fname":"1f63a","uc":"1f63a","isCanonical": true},":heart_eyes_cat:":{"unicode":["1f63b"],"fname":"1f63b","uc":"1f63b","isCanonical": true},":smirk_cat:":{"unicode":["1f63c"],"fname":"1f63c","uc":"1f63c","isCanonical": true},":kissing_cat:":{"unicode":["1f63d"],"fname":"1f63d","uc":"1f63d","isCanonical": true},":pouting_cat:":{"unicode":["1f63e"],"fname":"1f63e","uc":"1f63e","isCanonical": true},":crying_cat_face:":{"unicode":["1f63f"],"fname":"1f63f","uc":"1f63f","isCanonical": true},":scream_cat:":{"unicode":["1f640"],"fname":"1f640","uc":"1f640","isCanonical": true},":no_good:":{"unicode":["1f645"],"fname":"1f645","uc":"1f645","isCanonical": true},":ok_woman:":{"unicode":["1f646"],"fname":"1f646","uc":"1f646","isCanonical": true},":bow:":{"unicode":["1f647"],"fname":"1f647","uc":"1f647","isCanonical": true},":see_no_evil:":{"unicode":["1f648"],"fname":"1f648","uc":"1f648","isCanonical": true},":hear_no_evil:":{"unicode":["1f649"],"fname":"1f649","uc":"1f649","isCanonical": true},":speak_no_evil:":{"unicode":["1f64a"],"fname":"1f64a","uc":"1f64a","isCanonical": true},":raising_hand:":{"unicode":["1f64b"],"fname":"1f64b","uc":"1f64b","isCanonical": true},":raised_hands:":{"unicode":["1f64c"],"fname":"1f64c","uc":"1f64c","isCanonical": true},":person_frowning:":{"unicode":["1f64d"],"fname":"1f64d","uc":"1f64d","isCanonical": true},":person_with_pouting_face:":{"unicode":["1f64e"],"fname":"1f64e","uc":"1f64e","isCanonical": true},":pray:":{"unicode":["1f64f"],"fname":"1f64f","uc":"1f64f","isCanonical": true},":rocket:":{"unicode":["1f680"],"fname":"1f680","uc":"1f680","isCanonical": true},":railway_car:":{"unicode":["1f683"],"fname":"1f683","uc":"1f683","isCanonical": true},":bullettrain_side:":{"unicode":["1f684"],"fname":"1f684","uc":"1f684","isCanonical": true},":bullettrain_front:":{"unicode":["1f685"],"fname":"1f685","uc":"1f685","isCanonical": true},":metro:":{"unicode":["1f687"],"fname":"1f687","uc":"1f687","isCanonical": true},":station:":{"unicode":["1f689"],"fname":"1f689","uc":"1f689","isCanonical": true},":bus:":{"unicode":["1f68c"],"fname":"1f68c","uc":"1f68c","isCanonical": true},":busstop:":{"unicode":["1f68f"],"fname":"1f68f","uc":"1f68f","isCanonical": true},":ambulance:":{"unicode":["1f691"],"fname":"1f691","uc":"1f691","isCanonical": true},":fire_engine:":{"unicode":["1f692"],"fname":"1f692","uc":"1f692","isCanonical": true},":police_car:":{"unicode":["1f693"],"fname":"1f693","uc":"1f693","isCanonical": true},":taxi:":{"unicode":["1f695"],"fname":"1f695","uc":"1f695","isCanonical": true},":red_car:":{"unicode":["1f697"],"fname":"1f697","uc":"1f697","isCanonical": true},":blue_car:":{"unicode":["1f699"],"fname":"1f699","uc":"1f699","isCanonical": true},":truck:":{"unicode":["1f69a"],"fname":"1f69a","uc":"1f69a","isCanonical": true},":ship:":{"unicode":["1f6a2"],"fname":"1f6a2","uc":"1f6a2","isCanonical": true},":speedboat:":{"unicode":["1f6a4"],"fname":"1f6a4","uc":"1f6a4","isCanonical": true},":traffic_light:":{"unicode":["1f6a5"],"fname":"1f6a5","uc":"1f6a5","isCanonical": true},":construction:":{"unicode":["1f6a7"],"fname":"1f6a7","uc":"1f6a7","isCanonical": true},":rotating_light:":{"unicode":["1f6a8"],"fname":"1f6a8","uc":"1f6a8","isCanonical": true},":triangular_flag_on_post:":{"unicode":["1f6a9"],"fname":"1f6a9","uc":"1f6a9","isCanonical": true},":door:":{"unicode":["1f6aa"],"fname":"1f6aa","uc":"1f6aa","isCanonical": true},":no_entry_sign:":{"unicode":["1f6ab"],"fname":"1f6ab","uc":"1f6ab","isCanonical": true},":smoking:":{"unicode":["1f6ac"],"fname":"1f6ac","uc":"1f6ac","isCanonical": true},":no_smoking:":{"unicode":["1f6ad"],"fname":"1f6ad","uc":"1f6ad","isCanonical": true},":bike:":{"unicode":["1f6b2"],"fname":"1f6b2","uc":"1f6b2","isCanonical": true},":walking:":{"unicode":["1f6b6"],"fname":"1f6b6","uc":"1f6b6","isCanonical": true},":mens:":{"unicode":["1f6b9"],"fname":"1f6b9","uc":"1f6b9","isCanonical": true},":womens:":{"unicode":["1f6ba"],"fname":"1f6ba","uc":"1f6ba","isCanonical": true},":restroom:":{"unicode":["1f6bb"],"fname":"1f6bb","uc":"1f6bb","isCanonical": true},":baby_symbol:":{"unicode":["1f6bc"],"fname":"1f6bc","uc":"1f6bc","isCanonical": true},":toilet:":{"unicode":["1f6bd"],"fname":"1f6bd","uc":"1f6bd","isCanonical": true},":wc:":{"unicode":["1f6be"],"fname":"1f6be","uc":"1f6be","isCanonical": true},":bath:":{"unicode":["1f6c0"],"fname":"1f6c0","uc":"1f6c0","isCanonical": true},":metal:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": true},":sign_of_the_horns:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": false},":grinning:":{"unicode":["1f600"],"fname":"1f600","uc":"1f600","isCanonical": true},":innocent:":{"unicode":["1f607"],"fname":"1f607","uc":"1f607","isCanonical": true},":smiling_imp:":{"unicode":["1f608"],"fname":"1f608","uc":"1f608","isCanonical": true},":sunglasses:":{"unicode":["1f60e"],"fname":"1f60e","uc":"1f60e","isCanonical": true},":neutral_face:":{"unicode":["1f610"],"fname":"1f610","uc":"1f610","isCanonical": true},":expressionless:":{"unicode":["1f611"],"fname":"1f611","uc":"1f611","isCanonical": true},":confused:":{"unicode":["1f615"],"fname":"1f615","uc":"1f615","isCanonical": true},":kissing:":{"unicode":["1f617"],"fname":"1f617","uc":"1f617","isCanonical": true},":kissing_smiling_eyes:":{"unicode":["1f619"],"fname":"1f619","uc":"1f619","isCanonical": true},":stuck_out_tongue:":{"unicode":["1f61b"],"fname":"1f61b","uc":"1f61b","isCanonical": true},":worried:":{"unicode":["1f61f"],"fname":"1f61f","uc":"1f61f","isCanonical": true},":frowning:":{"unicode":["1f626"],"fname":"1f626","uc":"1f626","isCanonical": true},":anguished:":{"unicode":["1f627"],"fname":"1f627","uc":"1f627","isCanonical": true},":grimacing:":{"unicode":["1f62c"],"fname":"1f62c","uc":"1f62c","isCanonical": true},":open_mouth:":{"unicode":["1f62e"],"fname":"1f62e","uc":"1f62e","isCanonical": true},":hushed:":{"unicode":["1f62f"],"fname":"1f62f","uc":"1f62f","isCanonical": true},":sleeping:":{"unicode":["1f634"],"fname":"1f634","uc":"1f634","isCanonical": true},":no_mouth:":{"unicode":["1f636"],"fname":"1f636","uc":"1f636","isCanonical": true},":helicopter:":{"unicode":["1f681"],"fname":"1f681","uc":"1f681","isCanonical": true},":steam_locomotive:":{"unicode":["1f682"],"fname":"1f682","uc":"1f682","isCanonical": true},":train2:":{"unicode":["1f686"],"fname":"1f686","uc":"1f686","isCanonical": true},":light_rail:":{"unicode":["1f688"],"fname":"1f688","uc":"1f688","isCanonical": true},":tram:":{"unicode":["1f68a"],"fname":"1f68a","uc":"1f68a","isCanonical": true},":oncoming_bus:":{"unicode":["1f68d"],"fname":"1f68d","uc":"1f68d","isCanonical": true},":trolleybus:":{"unicode":["1f68e"],"fname":"1f68e","uc":"1f68e","isCanonical": true},":minibus:":{"unicode":["1f690"],"fname":"1f690","uc":"1f690","isCanonical": true},":oncoming_police_car:":{"unicode":["1f694"],"fname":"1f694","uc":"1f694","isCanonical": true},":oncoming_taxi:":{"unicode":["1f696"],"fname":"1f696","uc":"1f696","isCanonical": true},":oncoming_automobile:":{"unicode":["1f698"],"fname":"1f698","uc":"1f698","isCanonical": true},":articulated_lorry:":{"unicode":["1f69b"],"fname":"1f69b","uc":"1f69b","isCanonical": true},":tractor:":{"unicode":["1f69c"],"fname":"1f69c","uc":"1f69c","isCanonical": true},":monorail:":{"unicode":["1f69d"],"fname":"1f69d","uc":"1f69d","isCanonical": true},":mountain_railway:":{"unicode":["1f69e"],"fname":"1f69e","uc":"1f69e","isCanonical": true},":suspension_railway:":{"unicode":["1f69f"],"fname":"1f69f","uc":"1f69f","isCanonical": true},":mountain_cableway:":{"unicode":["1f6a0"],"fname":"1f6a0","uc":"1f6a0","isCanonical": true},":aerial_tramway:":{"unicode":["1f6a1"],"fname":"1f6a1","uc":"1f6a1","isCanonical": true},":rowboat:":{"unicode":["1f6a3"],"fname":"1f6a3","uc":"1f6a3","isCanonical": true},":vertical_traffic_light:":{"unicode":["1f6a6"],"fname":"1f6a6","uc":"1f6a6","isCanonical": true},":put_litter_in_its_place:":{"unicode":["1f6ae"],"fname":"1f6ae","uc":"1f6ae","isCanonical": true},":do_not_litter:":{"unicode":["1f6af"],"fname":"1f6af","uc":"1f6af","isCanonical": true},":potable_water:":{"unicode":["1f6b0"],"fname":"1f6b0","uc":"1f6b0","isCanonical": true},":non-potable_water:":{"unicode":["1f6b1"],"fname":"1f6b1","uc":"1f6b1","isCanonical": true},":no_bicycles:":{"unicode":["1f6b3"],"fname":"1f6b3","uc":"1f6b3","isCanonical": true},":bicyclist:":{"unicode":["1f6b4"],"fname":"1f6b4","uc":"1f6b4","isCanonical": true},":mountain_bicyclist:":{"unicode":["1f6b5"],"fname":"1f6b5","uc":"1f6b5","isCanonical": true},":no_pedestrians:":{"unicode":["1f6b7"],"fname":"1f6b7","uc":"1f6b7","isCanonical": true},":children_crossing:":{"unicode":["1f6b8"],"fname":"1f6b8","uc":"1f6b8","isCanonical": true},":shower:":{"unicode":["1f6bf"],"fname":"1f6bf","uc":"1f6bf","isCanonical": true},":bathtub:":{"unicode":["1f6c1"],"fname":"1f6c1","uc":"1f6c1","isCanonical": true},":passport_control:":{"unicode":["1f6c2"],"fname":"1f6c2","uc":"1f6c2","isCanonical": true},":customs:":{"unicode":["1f6c3"],"fname":"1f6c3","uc":"1f6c3","isCanonical": true},":baggage_claim:":{"unicode":["1f6c4"],"fname":"1f6c4","uc":"1f6c4","isCanonical": true},":left_luggage:":{"unicode":["1f6c5"],"fname":"1f6c5","uc":"1f6c5","isCanonical": true},":earth_africa:":{"unicode":["1f30d"],"fname":"1f30d","uc":"1f30d","isCanonical": true},":earth_americas:":{"unicode":["1f30e"],"fname":"1f30e","uc":"1f30e","isCanonical": true},":globe_with_meridians:":{"unicode":["1f310"],"fname":"1f310","uc":"1f310","isCanonical": true},":waxing_crescent_moon:":{"unicode":["1f312"],"fname":"1f312","uc":"1f312","isCanonical": true},":waning_gibbous_moon:":{"unicode":["1f316"],"fname":"1f316","uc":"1f316","isCanonical": true},":last_quarter_moon:":{"unicode":["1f317"],"fname":"1f317","uc":"1f317","isCanonical": true},":waning_crescent_moon:":{"unicode":["1f318"],"fname":"1f318","uc":"1f318","isCanonical": true},":new_moon_with_face:":{"unicode":["1f31a"],"fname":"1f31a","uc":"1f31a","isCanonical": true},":last_quarter_moon_with_face:":{"unicode":["1f31c"],"fname":"1f31c","uc":"1f31c","isCanonical": true},":full_moon_with_face:":{"unicode":["1f31d"],"fname":"1f31d","uc":"1f31d","isCanonical": true},":sun_with_face:":{"unicode":["1f31e"],"fname":"1f31e","uc":"1f31e","isCanonical": true},":evergreen_tree:":{"unicode":["1f332"],"fname":"1f332","uc":"1f332","isCanonical": true},":deciduous_tree:":{"unicode":["1f333"],"fname":"1f333","uc":"1f333","isCanonical": true},":lemon:":{"unicode":["1f34b"],"fname":"1f34b","uc":"1f34b","isCanonical": true},":pear:":{"unicode":["1f350"],"fname":"1f350","uc":"1f350","isCanonical": true},":baby_bottle:":{"unicode":["1f37c"],"fname":"1f37c","uc":"1f37c","isCanonical": true},":horse_racing:":{"unicode":["1f3c7"],"fname":"1f3c7","uc":"1f3c7","isCanonical": true},":rugby_football:":{"unicode":["1f3c9"],"fname":"1f3c9","uc":"1f3c9","isCanonical": true},":european_post_office:":{"unicode":["1f3e4"],"fname":"1f3e4","uc":"1f3e4","isCanonical": true},":rat:":{"unicode":["1f400"],"fname":"1f400","uc":"1f400","isCanonical": true},":mouse2:":{"unicode":["1f401"],"fname":"1f401","uc":"1f401","isCanonical": true},":ox:":{"unicode":["1f402"],"fname":"1f402","uc":"1f402","isCanonical": true},":water_buffalo:":{"unicode":["1f403"],"fname":"1f403","uc":"1f403","isCanonical": true},":cow2:":{"unicode":["1f404"],"fname":"1f404","uc":"1f404","isCanonical": true},":tiger2:":{"unicode":["1f405"],"fname":"1f405","uc":"1f405","isCanonical": true},":leopard:":{"unicode":["1f406"],"fname":"1f406","uc":"1f406","isCanonical": true},":rabbit2:":{"unicode":["1f407"],"fname":"1f407","uc":"1f407","isCanonical": true},":cat2:":{"unicode":["1f408"],"fname":"1f408","uc":"1f408","isCanonical": true},":dragon:":{"unicode":["1f409"],"fname":"1f409","uc":"1f409","isCanonical": true},":crocodile:":{"unicode":["1f40a"],"fname":"1f40a","uc":"1f40a","isCanonical": true},":whale2:":{"unicode":["1f40b"],"fname":"1f40b","uc":"1f40b","isCanonical": true},":ram:":{"unicode":["1f40f"],"fname":"1f40f","uc":"1f40f","isCanonical": true},":goat:":{"unicode":["1f410"],"fname":"1f410","uc":"1f410","isCanonical": true},":rooster:":{"unicode":["1f413"],"fname":"1f413","uc":"1f413","isCanonical": true},":dog2:":{"unicode":["1f415"],"fname":"1f415","uc":"1f415","isCanonical": true},":pig2:":{"unicode":["1f416"],"fname":"1f416","uc":"1f416","isCanonical": true},":dromedary_camel:":{"unicode":["1f42a"],"fname":"1f42a","uc":"1f42a","isCanonical": true},":busts_in_silhouette:":{"unicode":["1f465"],"fname":"1f465","uc":"1f465","isCanonical": true},":two_men_holding_hands:":{"unicode":["1f46c"],"fname":"1f46c","uc":"1f46c","isCanonical": true},":two_women_holding_hands:":{"unicode":["1f46d"],"fname":"1f46d","uc":"1f46d","isCanonical": true},":thought_balloon:":{"unicode":["1f4ad"],"fname":"1f4ad","uc":"1f4ad","isCanonical": true},":euro:":{"unicode":["1f4b6"],"fname":"1f4b6","uc":"1f4b6","isCanonical": true},":pound:":{"unicode":["1f4b7"],"fname":"1f4b7","uc":"1f4b7","isCanonical": true},":mailbox_with_mail:":{"unicode":["1f4ec"],"fname":"1f4ec","uc":"1f4ec","isCanonical": true},":mailbox_with_no_mail:":{"unicode":["1f4ed"],"fname":"1f4ed","uc":"1f4ed","isCanonical": true},":postal_horn:":{"unicode":["1f4ef"],"fname":"1f4ef","uc":"1f4ef","isCanonical": true},":no_mobile_phones:":{"unicode":["1f4f5"],"fname":"1f4f5","uc":"1f4f5","isCanonical": true},":twisted_rightwards_arrows:":{"unicode":["1f500"],"fname":"1f500","uc":"1f500","isCanonical": true},":repeat:":{"unicode":["1f501"],"fname":"1f501","uc":"1f501","isCanonical": true},":repeat_one:":{"unicode":["1f502"],"fname":"1f502","uc":"1f502","isCanonical": true},":arrows_counterclockwise:":{"unicode":["1f504"],"fname":"1f504","uc":"1f504","isCanonical": true},":low_brightness:":{"unicode":["1f505"],"fname":"1f505","uc":"1f505","isCanonical": true},":high_brightness:":{"unicode":["1f506"],"fname":"1f506","uc":"1f506","isCanonical": true},":mute:":{"unicode":["1f507"],"fname":"1f507","uc":"1f507","isCanonical": true},":sound:":{"unicode":["1f509"],"fname":"1f509","uc":"1f509","isCanonical": true},":no_bell:":{"unicode":["1f515"],"fname":"1f515","uc":"1f515","isCanonical": true},":microscope:":{"unicode":["1f52c"],"fname":"1f52c","uc":"1f52c","isCanonical": true},":telescope:":{"unicode":["1f52d"],"fname":"1f52d","uc":"1f52d","isCanonical": true},":clock130:":{"unicode":["1f55c"],"fname":"1f55c","uc":"1f55c","isCanonical": true},":clock230:":{"unicode":["1f55d"],"fname":"1f55d","uc":"1f55d","isCanonical": true},":clock330:":{"unicode":["1f55e"],"fname":"1f55e","uc":"1f55e","isCanonical": true},":clock430:":{"unicode":["1f55f"],"fname":"1f55f","uc":"1f55f","isCanonical": true},":clock530:":{"unicode":["1f560"],"fname":"1f560","uc":"1f560","isCanonical": true},":clock630:":{"unicode":["1f561"],"fname":"1f561","uc":"1f561","isCanonical": true},":clock730:":{"unicode":["1f562"],"fname":"1f562","uc":"1f562","isCanonical": true},":clock830:":{"unicode":["1f563"],"fname":"1f563","uc":"1f563","isCanonical": true},":clock930:":{"unicode":["1f564"],"fname":"1f564","uc":"1f564","isCanonical": true},":clock1030:":{"unicode":["1f565"],"fname":"1f565","uc":"1f565","isCanonical": true},":clock1130:":{"unicode":["1f566"],"fname":"1f566","uc":"1f566","isCanonical": true},":clock1230:":{"unicode":["1f567"],"fname":"1f567","uc":"1f567","isCanonical": true},":speaker:":{"unicode":["1f508"],"fname":"1f508","uc":"1f508","isCanonical": true},":train:":{"unicode":["1f68b"],"fname":"1f68b","uc":"1f68b","isCanonical": true},":medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": true},":sports_medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": false},":flag_black:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": true},":waving_black_flag:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": false},":camera_with_flash:":{"unicode":["1f4f8"],"fname":"1f4f8","uc":"1f4f8","isCanonical": true},":sleeping_accommodation:":{"unicode":["1f6cc"],"fname":"1f6cc","uc":"1f6cc","isCanonical": true},":middle_finger:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": true},":reversed_hand_with_middle_finger_extended:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": false},":vulcan:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": false},":slight_frown:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": true},":slightly_frowning_face:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": false},":slight_smile:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": true},":slightly_smiling_face:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": false},":airplane_departure:":{"unicode":["1f6eb"],"fname":"1f6eb","uc":"1f6eb","isCanonical": true},":airplane_arriving:":{"unicode":["1f6ec"],"fname":"1f6ec","uc":"1f6ec","isCanonical": true},":tone1:":{"unicode":["1f3fb"],"fname":"1f3fb","uc":"1f3fb","isCanonical": true},":tone2:":{"unicode":["1f3fc"],"fname":"1f3fc","uc":"1f3fc","isCanonical": true},":tone3:":{"unicode":["1f3fd"],"fname":"1f3fd","uc":"1f3fd","isCanonical": true},":tone4:":{"unicode":["1f3fe"],"fname":"1f3fe","uc":"1f3fe","isCanonical": true},":tone5:":{"unicode":["1f3ff"],"fname":"1f3ff","uc":"1f3ff","isCanonical": true},":upside_down:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": true},":upside_down_face:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": false},":money_mouth:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": true},":money_mouth_face:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": false},":nerd:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": true},":nerd_face:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": false},":hugging:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": true},":hugging_face:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": false},":rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": true},":face_with_rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": false},":thinking:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": true},":thinking_face:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": false},":zipper_mouth:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": true},":zipper_mouth_face:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": false},":thermometer_face:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": true},":face_with_thermometer:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": false},":head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": true},":face_with_head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": false},":robot:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": true},":robot_face:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": false},":lion_face:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": true},":lion:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": false},":unicorn:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": true},":unicorn_face:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": false},":scorpion:":{"unicode":["1f982"],"fname":"1f982","uc":"1f982","isCanonical": true},":crab:":{"unicode":["1f980"],"fname":"1f980","uc":"1f980","isCanonical": true},":turkey:":{"unicode":["1f983"],"fname":"1f983","uc":"1f983","isCanonical": true},":cheese:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": true},":cheese_wedge:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": false},":hotdog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": true},":hot_dog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": false},":taco:":{"unicode":["1f32e"],"fname":"1f32e","uc":"1f32e","isCanonical": true},":burrito:":{"unicode":["1f32f"],"fname":"1f32f","uc":"1f32f","isCanonical": true},":popcorn:":{"unicode":["1f37f"],"fname":"1f37f","uc":"1f37f","isCanonical": true},":champagne:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": true},":bottle_with_popping_cork:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": false},":bow_and_arrow:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": true},":archery:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": false},":amphora:":{"unicode":["1f3fa"],"fname":"1f3fa","uc":"1f3fa","isCanonical": true},":place_of_worship:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": true},":worship_symbol:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": false},":kaaba:":{"unicode":["1f54b"],"fname":"1f54b","uc":"1f54b","isCanonical": true},":mosque:":{"unicode":["1f54c"],"fname":"1f54c","uc":"1f54c","isCanonical": true},":synagogue:":{"unicode":["1f54d"],"fname":"1f54d","uc":"1f54d","isCanonical": true},":menorah:":{"unicode":["1f54e"],"fname":"1f54e","uc":"1f54e","isCanonical": true},":prayer_beads:":{"unicode":["1f4ff"],"fname":"1f4ff","uc":"1f4ff","isCanonical": true},":cricket:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": true},":cricket_bat_ball:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": false},":volleyball:":{"unicode":["1f3d0"],"fname":"1f3d0","uc":"1f3d0","isCanonical": true},":field_hockey:":{"unicode":["1f3d1"],"fname":"1f3d1","uc":"1f3d1","isCanonical": true},":hockey:":{"unicode":["1f3d2"],"fname":"1f3d2","uc":"1f3d2","isCanonical": true},":ping_pong:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": true},":table_tennis:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": false},":badminton:":{"unicode":["1f3f8"],"fname":"1f3f8","uc":"1f3f8","isCanonical": true},":drum:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": true},":drum_with_drumsticks:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": false},":shrimp:":{"unicode":["1f990"],"fname":"1f990","uc":"1f990","isCanonical": true},":squid:":{"unicode":["1f991"],"fname":"1f991","uc":"1f991","isCanonical": true},":egg:":{"unicode":["1f95a"],"fname":"1f95a","uc":"1f95a","isCanonical": true},":milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": true},":glass_of_milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": false},":peanuts:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": true},":shelled_peanut:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": false},":kiwi:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": true},":kiwifruit:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": false},":pancakes:":{"unicode":["1f95e"],"fname":"1f95e","uc":"1f95e","isCanonical": true},":regional_indicator_w:":{"unicode":["1f1fc"],"fname":"1f1fc","uc":"1f1fc","isCanonical": true},":regional_indicator_v:":{"unicode":["1f1fb"],"fname":"1f1fb","uc":"1f1fb","isCanonical": true},":regional_indicator_u:":{"unicode":["1f1fa"],"fname":"1f1fa","uc":"1f1fa","isCanonical": true},":regional_indicator_t:":{"unicode":["1f1f9"],"fname":"1f1f9","uc":"1f1f9","isCanonical": true},":regional_indicator_s:":{"unicode":["1f1f8"],"fname":"1f1f8","uc":"1f1f8","isCanonical": true},":regional_indicator_r:":{"unicode":["1f1f7"],"fname":"1f1f7","uc":"1f1f7","isCanonical": true},":regional_indicator_q:":{"unicode":["1f1f6"],"fname":"1f1f6","uc":"1f1f6","isCanonical": true},":regional_indicator_p:":{"unicode":["1f1f5"],"fname":"1f1f5","uc":"1f1f5","isCanonical": true},":regional_indicator_o:":{"unicode":["1f1f4"],"fname":"1f1f4","uc":"1f1f4","isCanonical": true},":regional_indicator_n:":{"unicode":["1f1f3"],"fname":"1f1f3","uc":"1f1f3","isCanonical": true},":regional_indicator_m:":{"unicode":["1f1f2"],"fname":"1f1f2","uc":"1f1f2","isCanonical": true},":regional_indicator_l:":{"unicode":["1f1f1"],"fname":"1f1f1","uc":"1f1f1","isCanonical": true},":regional_indicator_k:":{"unicode":["1f1f0"],"fname":"1f1f0","uc":"1f1f0","isCanonical": true},":regional_indicator_j:":{"unicode":["1f1ef"],"fname":"1f1ef","uc":"1f1ef","isCanonical": true},":regional_indicator_i:":{"unicode":["1f1ee"],"fname":"1f1ee","uc":"1f1ee","isCanonical": true},":regional_indicator_h:":{"unicode":["1f1ed"],"fname":"1f1ed","uc":"1f1ed","isCanonical": true},":regional_indicator_g:":{"unicode":["1f1ec"],"fname":"1f1ec","uc":"1f1ec","isCanonical": true},":regional_indicator_f:":{"unicode":["1f1eb"],"fname":"1f1eb","uc":"1f1eb","isCanonical": true},":regional_indicator_e:":{"unicode":["1f1ea"],"fname":"1f1ea","uc":"1f1ea","isCanonical": true},":regional_indicator_d:":{"unicode":["1f1e9"],"fname":"1f1e9","uc":"1f1e9","isCanonical": true},":regional_indicator_c:":{"unicode":["1f1e8"],"fname":"1f1e8","uc":"1f1e8","isCanonical": true},":regional_indicator_b:":{"unicode":["1f1e7"],"fname":"1f1e7","uc":"1f1e7","isCanonical": true},":regional_indicator_a:":{"unicode":["1f1e6"],"fname":"1f1e6","uc":"1f1e6","isCanonical": true},":fast_forward:":{"unicode":["23e9"],"fname":"23e9","uc":"23e9","isCanonical": true},":rewind:":{"unicode":["23ea"],"fname":"23ea","uc":"23ea","isCanonical": true},":arrow_double_up:":{"unicode":["23eb"],"fname":"23eb","uc":"23eb","isCanonical": true},":arrow_double_down:":{"unicode":["23ec"],"fname":"23ec","uc":"23ec","isCanonical": true},":alarm_clock:":{"unicode":["23f0"],"fname":"23f0","uc":"23f0","isCanonical": true},":hourglass_flowing_sand:":{"unicode":["23f3"],"fname":"23f3","uc":"23f3","isCanonical": true},":ophiuchus:":{"unicode":["26ce"],"fname":"26ce","uc":"26ce","isCanonical": true},":white_check_mark:":{"unicode":["2705"],"fname":"2705","uc":"2705","isCanonical": true},":fist:":{"unicode":["270a"],"fname":"270a","uc":"270a","isCanonical": true},":raised_hand:":{"unicode":["270b"],"fname":"270b","uc":"270b","isCanonical": true},":sparkles:":{"unicode":["2728"],"fname":"2728","uc":"2728","isCanonical": true},":x:":{"unicode":["274c"],"fname":"274c","uc":"274c","isCanonical": true},":negative_squared_cross_mark:":{"unicode":["274e"],"fname":"274e","uc":"274e","isCanonical": true},":question:":{"unicode":["2753"],"fname":"2753","uc":"2753","isCanonical": true},":grey_question:":{"unicode":["2754"],"fname":"2754","uc":"2754","isCanonical": true},":grey_exclamation:":{"unicode":["2755"],"fname":"2755","uc":"2755","isCanonical": true},":heavy_plus_sign:":{"unicode":["2795"],"fname":"2795","uc":"2795","isCanonical": true},":heavy_minus_sign:":{"unicode":["2796"],"fname":"2796","uc":"2796","isCanonical": true},":heavy_division_sign:":{"unicode":["2797"],"fname":"2797","uc":"2797","isCanonical": true},":curly_loop:":{"unicode":["27b0"],"fname":"27b0","uc":"27b0","isCanonical": true},":loop:":{"unicode":["27bf"],"fname":"27bf","uc":"27bf","isCanonical": true}};
- // ns.shortnames = Object.keys(ns.emojioneList).map(function(emoji) {
- // return emoji.replace(/[+]/g, "\\$&");
- // }).join('|');
- var tmpShortNames = [],
- emoji;
- for (emoji in ns.emojioneList) {
- if (!ns.emojioneList.hasOwnProperty(emoji)) continue;
- tmpShortNames.push(emoji.replace(/[+]/g, "\\$&"));
- }
- ns.shortnames = tmpShortNames.join('|');
- ns.asciiList = {
- '<3':'2764',
- '</3':'1f494',
- ':\')':'1f602',
- ':\'-)':'1f602',
- ':D':'1f603',
- ':-D':'1f603',
- '=D':'1f603',
- ':)':'1f642',
- ':-)':'1f642',
- '=]':'1f642',
- '=)':'1f642',
- ':]':'1f642',
- '\':)':'1f605',
- '\':-)':'1f605',
- '\'=)':'1f605',
- '\':D':'1f605',
- '\':-D':'1f605',
- '\'=D':'1f605',
- '>:)':'1f606',
- '>;)':'1f606',
- '>:-)':'1f606',
- '>=)':'1f606',
- ';)':'1f609',
- ';-)':'1f609',
- '*-)':'1f609',
- '*)':'1f609',
- ';-]':'1f609',
- ';]':'1f609',
- ';D':'1f609',
- ';^)':'1f609',
- '\':(':'1f613',
- '\':-(':'1f613',
- '\'=(':'1f613',
- ':*':'1f618',
- ':-*':'1f618',
- '=*':'1f618',
- ':^*':'1f618',
- '>:P':'1f61c',
- 'X-P':'1f61c',
- 'x-p':'1f61c',
- '>:[':'1f61e',
- ':-(':'1f61e',
- ':(':'1f61e',
- ':-[':'1f61e',
- ':[':'1f61e',
- '=(':'1f61e',
- '>:(':'1f620',
- '>:-(':'1f620',
- ':@':'1f620',
- ':\'(':'1f622',
- ':\'-(':'1f622',
- ';(':'1f622',
- ';-(':'1f622',
- '>.<':'1f623',
- 'D:':'1f628',
- ':$':'1f633',
- '=$':'1f633',
- '#-)':'1f635',
- '#)':'1f635',
- '%-)':'1f635',
- '%)':'1f635',
- 'X)':'1f635',
- 'X-)':'1f635',
- '*\\0/*':'1f646',
- '\\0/':'1f646',
- '*\\O/*':'1f646',
- '\\O/':'1f646',
- 'O:-)':'1f607',
- '0:-3':'1f607',
- '0:3':'1f607',
- '0:-)':'1f607',
- '0:)':'1f607',
- '0;^)':'1f607',
- 'O:)':'1f607',
- 'O;-)':'1f607',
- 'O=)':'1f607',
- '0;-)':'1f607',
- 'O:-3':'1f607',
- 'O:3':'1f607',
- 'B-)':'1f60e',
- 'B)':'1f60e',
- '8)':'1f60e',
- '8-)':'1f60e',
- 'B-D':'1f60e',
- '8-D':'1f60e',
- '-_-':'1f611',
- '-__-':'1f611',
- '-___-':'1f611',
- '>:\\':'1f615',
- '>:/':'1f615',
- ':-/':'1f615',
- ':-.':'1f615',
- ':/':'1f615',
- ':\\':'1f615',
- '=/':'1f615',
- '=\\':'1f615',
- ':L':'1f615',
- '=L':'1f615',
- ':P':'1f61b',
- ':-P':'1f61b',
- '=P':'1f61b',
- ':-p':'1f61b',
- ':p':'1f61b',
- '=p':'1f61b',
- ':-Þ':'1f61b',
- ':Þ':'1f61b',
- ':þ':'1f61b',
- ':-þ':'1f61b',
- ':-b':'1f61b',
- ':b':'1f61b',
- 'd:':'1f61b',
- ':-O':'1f62e',
- ':O':'1f62e',
- ':-o':'1f62e',
- ':o':'1f62e',
- 'O_O':'1f62e',
- '>:O':'1f62e',
- ':-X':'1f636',
- ':X':'1f636',
- ':-#':'1f636',
- ':#':'1f636',
- '=X':'1f636',
- '=x':'1f636',
- ':x':'1f636',
- ':-x':'1f636',
- '=#':'1f636'
- };
- ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
- // javascript escapes here must be ordered from largest length to shortest
- ns.unicodeRegexp = '(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)';
- ns.jsEscapeMap = {"\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC8B\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC8B\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67":"1f469-1f469-1f467","\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08":"1f3f3-fe0f-200d-1f308","\uD83C\uDFF3\uD83C\uDF08":"1f3f3-1f308","\uD83D\uDC41\u200D\uD83D\uDDE8":"1f441-200d-1f5e8","\uD83D\uDC41\uD83D\uDDE8":"1f441-1f5e8","#\uFE0F\u20E3":"0023-fe0f-20e3","#\u20E3":"0023-20e3","0\uFE0F\u20E3":"0030-fe0f-20e3","0\u20E3":"0030-20e3","1\uFE0F\u20E3":"0031-fe0f-20e3","1\u20E3":"0031-20e3","2\uFE0F\u20E3":"0032-fe0f-20e3","2\u20E3":"0032-20e3","3\uFE0F\u20E3":"0033-fe0f-20e3","3\u20E3":"0033-20e3","4\uFE0F\u20E3":"0034-fe0f-20e3","4\u20E3":"0034-20e3","5\uFE0F\u20E3":"0035-fe0f-20e3","5\u20E3":"0035-20e3","6\uFE0F\u20E3":"0036-fe0f-20e3","6\u20E3":"0036-20e3","7\uFE0F\u20E3":"0037-fe0f-20e3","7\u20E3":"0037-20e3","8\uFE0F\u20E3":"0038-fe0f-20e3","8\u20E3":"0038-20e3","9\uFE0F\u20E3":"0039-fe0f-20e3","9\u20E3":"0039-20e3","*\uFE0F\u20E3":"002a-fe0f-20e3","*\u20E3":"002a-20e3","\uD83E\uDD3E\uD83C\uDFFF":"1f93e-1f3ff","\uD83E\uDD3E\uD83C\uDFFE":"1f93e-1f3fe","\uD83E\uDD3E\uD83C\uDFFD":"1f93e-1f3fd","\uD83E\uDD3E\uD83C\uDFFC":"1f93e-1f3fc","\uD83E\uDD3E\uD83C\uDFFB":"1f93e-1f3fb","\uD83E\uDD3D\uD83C\uDFFF":"1f93d-1f3ff","\uD83E\uDD3D\uD83C\uDFFE":"1f93d-1f3fe","\uD83E\uDD3D\uD83C\uDFFD":"1f93d-1f3fd","\uD83E\uDD3D\uD83C\uDFFC":"1f93d-1f3fc","\uD83E\uDD3D\uD83C\uDFFB":"1f93d-1f3fb","\uD83E\uDD3C\uD83C\uDFFF":"1f93c-1f3ff","\uD83E\uDD3C\uD83C\uDFFE":"1f93c-1f3fe","\uD83E\uDD3C\uD83C\uDFFD":"1f93c-1f3fd","\uD83E\uDD3C\uD83C\uDFFC":"1f93c-1f3fc","\uD83E\uDD3C\uD83C\uDFFB":"1f93c-1f3fb","\uD83E\uDD39\uD83C\uDFFF":"1f939-1f3ff","\uD83E\uDD39\uD83C\uDFFE":"1f939-1f3fe","\uD83E\uDD39\uD83C\uDFFD":"1f939-1f3fd","\uD83E\uDD39\uD83C\uDFFC":"1f939-1f3fc","\uD83E\uDD39\uD83C\uDFFB":"1f939-1f3fb","\uD83E\uDD38\uD83C\uDFFF":"1f938-1f3ff","\uD83E\uDD38\uD83C\uDFFE":"1f938-1f3fe","\uD83E\uDD38\uD83C\uDFFD":"1f938-1f3fd","\uD83E\uDD38\uD83C\uDFFC":"1f938-1f3fc","\uD83E\uDD38\uD83C\uDFFB":"1f938-1f3fb","\uD83E\uDD37\uD83C\uDFFF":"1f937-1f3ff","\uD83E\uDD37\uD83C\uDFFE":"1f937-1f3fe","\uD83E\uDD37\uD83C\uDFFD":"1f937-1f3fd","\uD83E\uDD37\uD83C\uDFFC":"1f937-1f3fc","\uD83E\uDD37\uD83C\uDFFB":"1f937-1f3fb","\uD83E\uDD36\uD83C\uDFFF":"1f936-1f3ff","\uD83E\uDD36\uD83C\uDFFE":"1f936-1f3fe","\uD83E\uDD36\uD83C\uDFFD":"1f936-1f3fd","\uD83E\uDD36\uD83C\uDFFC":"1f936-1f3fc","\uD83E\uDD36\uD83C\uDFFB":"1f936-1f3fb","\uD83E\uDD35\uD83C\uDFFF":"1f935-1f3ff","\uD83E\uDD35\uD83C\uDFFE":"1f935-1f3fe","\uD83E\uDD35\uD83C\uDFFD":"1f935-1f3fd","\uD83E\uDD35\uD83C\uDFFC":"1f935-1f3fc","\uD83E\uDD35\uD83C\uDFFB":"1f935-1f3fb","\uD83E\uDD34\uD83C\uDFFF":"1f934-1f3ff","\uD83E\uDD34\uD83C\uDFFE":"1f934-1f3fe","\uD83E\uDD34\uD83C\uDFFD":"1f934-1f3fd","\uD83E\uDD34\uD83C\uDFFC":"1f934-1f3fc","\uD83E\uDD34\uD83C\uDFFB":"1f934-1f3fb","\uD83E\uDD33\uD83C\uDFFF":"1f933-1f3ff","\uD83E\uDD33\uD83C\uDFFE":"1f933-1f3fe","\uD83E\uDD33\uD83C\uDFFD":"1f933-1f3fd","\uD83E\uDD33\uD83C\uDFFC":"1f933-1f3fc","\uD83E\uDD33\uD83C\uDFFB":"1f933-1f3fb","\uD83E\uDD30\uD83C\uDFFF":"1f930-1f3ff","\uD83E\uDD30\uD83C\uDFFE":"1f930-1f3fe","\uD83E\uDD30\uD83C\uDFFD":"1f930-1f3fd","\uD83E\uDD30\uD83C\uDFFC":"1f930-1f3fc","\uD83E\uDD30\uD83C\uDFFB":"1f930-1f3fb","\uD83E\uDD26\uD83C\uDFFF":"1f926-1f3ff","\uD83E\uDD26\uD83C\uDFFE":"1f926-1f3fe","\uD83E\uDD26\uD83C\uDFFD":"1f926-1f3fd","\uD83E\uDD26\uD83C\uDFFC":"1f926-1f3fc","\uD83E\uDD26\uD83C\uDFFB":"1f926-1f3fb","\uD83E\uDD1E\uD83C\uDFFF":"1f91e-1f3ff","\uD83E\uDD1E\uD83C\uDFFE":"1f91e-1f3fe","\uD83E\uDD1E\uD83C\uDFFD":"1f91e-1f3fd","\uD83E\uDD1E\uD83C\uDFFC":"1f91e-1f3fc","\uD83E\uDD1E\uD83C\uDFFB":"1f91e-1f3fb","\uD83E\uDD1D\uD83C\uDFFF":"1f91d-1f3ff","\uD83E\uDD1D\uD83C\uDFFE":"1f91d-1f3fe","\uD83E\uDD1D\uD83C\uDFFD":"1f91d-1f3fd","\uD83E\uDD1D\uD83C\uDFFC":"1f91d-1f3fc","\uD83E\uDD1D\uD83C\uDFFB":"1f91d-1f3fb","\uD83E\uDD1C\uD83C\uDFFF":"1f91c-1f3ff","\uD83E\uDD1C\uD83C\uDFFE":"1f91c-1f3fe","\uD83E\uDD1C\uD83C\uDFFD":"1f91c-1f3fd","\uD83E\uDD1C\uD83C\uDFFC":"1f91c-1f3fc","\uD83E\uDD1C\uD83C\uDFFB":"1f91c-1f3fb","\uD83E\uDD1B\uD83C\uDFFF":"1f91b-1f3ff","\uD83E\uDD1B\uD83C\uDFFE":"1f91b-1f3fe","\uD83E\uDD1B\uD83C\uDFFD":"1f91b-1f3fd","\uD83E\uDD1B\uD83C\uDFFC":"1f91b-1f3fc","\uD83E\uDD1B\uD83C\uDFFB":"1f91b-1f3fb","\uD83E\uDD1A\uD83C\uDFFF":"1f91a-1f3ff","\uD83E\uDD1A\uD83C\uDFFE":"1f91a-1f3fe","\uD83E\uDD1A\uD83C\uDFFD":"1f91a-1f3fd","\uD83E\uDD1A\uD83C\uDFFC":"1f91a-1f3fc","\uD83E\uDD1A\uD83C\uDFFB":"1f91a-1f3fb","\uD83E\uDD19\uD83C\uDFFF":"1f919-1f3ff","\uD83E\uDD19\uD83C\uDFFE":"1f919-1f3fe","\uD83E\uDD19\uD83C\uDFFD":"1f919-1f3fd","\uD83E\uDD19\uD83C\uDFFC":"1f919-1f3fc","\uD83E\uDD19\uD83C\uDFFB":"1f919-1f3fb","\uD83E\uDD18\uD83C\uDFFF":"1f918-1f3ff","\uD83E\uDD18\uD83C\uDFFE":"1f918-1f3fe","\uD83E\uDD18\uD83C\uDFFD":"1f918-1f3fd","\uD83E\uDD18\uD83C\uDFFC":"1f918-1f3fc","\uD83E\uDD18\uD83C\uDFFB":"1f918-1f3fb","\uD83D\uDEC0\uD83C\uDFFF":"1f6c0-1f3ff","\uD83D\uDEC0\uD83C\uDFFE":"1f6c0-1f3fe","\uD83D\uDEC0\uD83C\uDFFD":"1f6c0-1f3fd","\uD83D\uDEC0\uD83C\uDFFC":"1f6c0-1f3fc","\uD83D\uDEC0\uD83C\uDFFB":"1f6c0-1f3fb","\uD83D\uDEB6\uD83C\uDFFF":"1f6b6-1f3ff","\uD83D\uDEB6\uD83C\uDFFE":"1f6b6-1f3fe","\uD83D\uDEB6\uD83C\uDFFD":"1f6b6-1f3fd","\uD83D\uDEB6\uD83C\uDFFC":"1f6b6-1f3fc","\uD83D\uDEB6\uD83C\uDFFB":"1f6b6-1f3fb","\uD83D\uDEB5\uD83C\uDFFF":"1f6b5-1f3ff","\uD83D\uDEB5\uD83C\uDFFE":"1f6b5-1f3fe","\uD83D\uDEB5\uD83C\uDFFD":"1f6b5-1f3fd","\uD83D\uDEB5\uD83C\uDFFC":"1f6b5-1f3fc","\uD83D\uDEB5\uD83C\uDFFB":"1f6b5-1f3fb","\uD83D\uDEB4\uD83C\uDFFF":"1f6b4-1f3ff","\uD83D\uDEB4\uD83C\uDFFE":"1f6b4-1f3fe","\uD83D\uDEB4\uD83C\uDFFD":"1f6b4-1f3fd","\uD83D\uDEB4\uD83C\uDFFC":"1f6b4-1f3fc","\uD83D\uDEB4\uD83C\uDFFB":"1f6b4-1f3fb","\uD83D\uDEA3\uD83C\uDFFF":"1f6a3-1f3ff","\uD83D\uDEA3\uD83C\uDFFE":"1f6a3-1f3fe","\uD83D\uDEA3\uD83C\uDFFD":"1f6a3-1f3fd","\uD83D\uDEA3\uD83C\uDFFC":"1f6a3-1f3fc","\uD83D\uDEA3\uD83C\uDFFB":"1f6a3-1f3fb","\uD83D\uDE4F\uD83C\uDFFF":"1f64f-1f3ff","\uD83D\uDE4F\uD83C\uDFFE":"1f64f-1f3fe","\uD83D\uDE4F\uD83C\uDFFD":"1f64f-1f3fd","\uD83D\uDE4F\uD83C\uDFFC":"1f64f-1f3fc","\uD83D\uDE4F\uD83C\uDFFB":"1f64f-1f3fb","\uD83D\uDE4E\uD83C\uDFFF":"1f64e-1f3ff","\uD83D\uDE4E\uD83C\uDFFE":"1f64e-1f3fe","\uD83D\uDE4E\uD83C\uDFFD":"1f64e-1f3fd","\uD83D\uDE4E\uD83C\uDFFC":"1f64e-1f3fc","\uD83D\uDE4E\uD83C\uDFFB":"1f64e-1f3fb","\uD83D\uDE4D\uD83C\uDFFF":"1f64d-1f3ff","\uD83D\uDE4D\uD83C\uDFFE":"1f64d-1f3fe","\uD83D\uDE4D\uD83C\uDFFD":"1f64d-1f3fd","\uD83D\uDE4D\uD83C\uDFFC":"1f64d-1f3fc","\uD83D\uDE4D\uD83C\uDFFB":"1f64d-1f3fb","\uD83D\uDE4C\uD83C\uDFFF":"1f64c-1f3ff","\uD83D\uDE4C\uD83C\uDFFE":"1f64c-1f3fe","\uD83D\uDE4C\uD83C\uDFFD":"1f64c-1f3fd","\uD83D\uDE4C\uD83C\uDFFC":"1f64c-1f3fc","\uD83D\uDE4C\uD83C\uDFFB":"1f64c-1f3fb","\uD83D\uDE4B\uD83C\uDFFF":"1f64b-1f3ff","\uD83D\uDE4B\uD83C\uDFFE":"1f64b-1f3fe","\uD83D\uDE4B\uD83C\uDFFD":"1f64b-1f3fd","\uD83D\uDE4B\uD83C\uDFFC":"1f64b-1f3fc","\uD83D\uDE4B\uD83C\uDFFB":"1f64b-1f3fb","\uD83D\uDE47\uD83C\uDFFF":"1f647-1f3ff","\uD83D\uDE47\uD83C\uDFFE":"1f647-1f3fe","\uD83D\uDE47\uD83C\uDFFD":"1f647-1f3fd","\uD83D\uDE47\uD83C\uDFFC":"1f647-1f3fc","\uD83D\uDE47\uD83C\uDFFB":"1f647-1f3fb","\uD83D\uDE46\uD83C\uDFFF":"1f646-1f3ff","\uD83D\uDE46\uD83C\uDFFE":"1f646-1f3fe","\uD83D\uDE46\uD83C\uDFFD":"1f646-1f3fd","\uD83D\uDE46\uD83C\uDFFC":"1f646-1f3fc","\uD83D\uDE46\uD83C\uDFFB":"1f646-1f3fb","\uD83D\uDE45\uD83C\uDFFF":"1f645-1f3ff","\uD83D\uDE45\uD83C\uDFFE":"1f645-1f3fe","\uD83D\uDE45\uD83C\uDFFD":"1f645-1f3fd","\uD83D\uDE45\uD83C\uDFFC":"1f645-1f3fc","\uD83D\uDE45\uD83C\uDFFB":"1f645-1f3fb","\uD83D\uDD96\uD83C\uDFFF":"1f596-1f3ff","\uD83D\uDD96\uD83C\uDFFE":"1f596-1f3fe","\uD83D\uDD96\uD83C\uDFFD":"1f596-1f3fd","\uD83D\uDD96\uD83C\uDFFC":"1f596-1f3fc","\uD83D\uDD96\uD83C\uDFFB":"1f596-1f3fb","\uD83D\uDD95\uD83C\uDFFF":"1f595-1f3ff","\uD83D\uDD95\uD83C\uDFFE":"1f595-1f3fe","\uD83D\uDD95\uD83C\uDFFD":"1f595-1f3fd","\uD83D\uDD95\uD83C\uDFFC":"1f595-1f3fc","\uD83D\uDD95\uD83C\uDFFB":"1f595-1f3fb","\uD83D\uDD90\uD83C\uDFFF":"1f590-1f3ff","\uD83D\uDD90\uD83C\uDFFE":"1f590-1f3fe","\uD83D\uDD90\uD83C\uDFFD":"1f590-1f3fd","\uD83D\uDD90\uD83C\uDFFC":"1f590-1f3fc","\uD83D\uDD90\uD83C\uDFFB":"1f590-1f3fb","\uD83D\uDD7A\uD83C\uDFFF":"1f57a-1f3ff","\uD83D\uDD7A\uD83C\uDFFE":"1f57a-1f3fe","\uD83D\uDD7A\uD83C\uDFFD":"1f57a-1f3fd","\uD83D\uDD7A\uD83C\uDFFC":"1f57a-1f3fc","\uD83D\uDD7A\uD83C\uDFFB":"1f57a-1f3fb","\uD83D\uDD75\uD83C\uDFFF":"1f575-1f3ff","\uD83D\uDD75\uD83C\uDFFE":"1f575-1f3fe","\uD83D\uDD75\uD83C\uDFFD":"1f575-1f3fd","\uD83D\uDD75\uD83C\uDFFC":"1f575-1f3fc","\uD83D\uDD75\uD83C\uDFFB":"1f575-1f3fb","\uD83D\uDCAA\uD83C\uDFFF":"1f4aa-1f3ff","\uD83D\uDCAA\uD83C\uDFFE":"1f4aa-1f3fe","\uD83D\uDCAA\uD83C\uDFFD":"1f4aa-1f3fd","\uD83D\uDCAA\uD83C\uDFFC":"1f4aa-1f3fc","\uD83D\uDCAA\uD83C\uDFFB":"1f4aa-1f3fb","\uD83D\uDC87\uD83C\uDFFF":"1f487-1f3ff","\uD83D\uDC87\uD83C\uDFFE":"1f487-1f3fe","\uD83D\uDC87\uD83C\uDFFD":"1f487-1f3fd","\uD83D\uDC87\uD83C\uDFFC":"1f487-1f3fc","\uD83D\uDC87\uD83C\uDFFB":"1f487-1f3fb","\uD83D\uDC86\uD83C\uDFFF":"1f486-1f3ff","\uD83D\uDC86\uD83C\uDFFE":"1f486-1f3fe","\uD83D\uDC86\uD83C\uDFFD":"1f486-1f3fd","\uD83D\uDC86\uD83C\uDFFC":"1f486-1f3fc","\uD83D\uDC86\uD83C\uDFFB":"1f486-1f3fb","\uD83D\uDC85\uD83C\uDFFF":"1f485-1f3ff","\uD83D\uDC85\uD83C\uDFFE":"1f485-1f3fe","\uD83D\uDC85\uD83C\uDFFD":"1f485-1f3fd","\uD83D\uDC85\uD83C\uDFFC":"1f485-1f3fc","\uD83D\uDC85\uD83C\uDFFB":"1f485-1f3fb","\uD83D\uDC83\uD83C\uDFFF":"1f483-1f3ff","\uD83D\uDC83\uD83C\uDFFE":"1f483-1f3fe","\uD83D\uDC83\uD83C\uDFFD":"1f483-1f3fd","\uD83D\uDC83\uD83C\uDFFC":"1f483-1f3fc","\uD83D\uDC83\uD83C\uDFFB":"1f483-1f3fb","\uD83D\uDC82\uD83C\uDFFF":"1f482-1f3ff","\uD83D\uDC82\uD83C\uDFFE":"1f482-1f3fe","\uD83D\uDC82\uD83C\uDFFD":"1f482-1f3fd","\uD83D\uDC82\uD83C\uDFFC":"1f482-1f3fc","\uD83D\uDC82\uD83C\uDFFB":"1f482-1f3fb","\uD83D\uDC81\uD83C\uDFFF":"1f481-1f3ff","\uD83D\uDC81\uD83C\uDFFE":"1f481-1f3fe","\uD83D\uDC81\uD83C\uDFFD":"1f481-1f3fd","\uD83D\uDC81\uD83C\uDFFC":"1f481-1f3fc","\uD83D\uDC81\uD83C\uDFFB":"1f481-1f3fb","\uD83D\uDC7C\uD83C\uDFFF":"1f47c-1f3ff","\uD83D\uDC7C\uD83C\uDFFE":"1f47c-1f3fe","\uD83D\uDC7C\uD83C\uDFFD":"1f47c-1f3fd","\uD83D\uDC7C\uD83C\uDFFC":"1f47c-1f3fc","\uD83D\uDC7C\uD83C\uDFFB":"1f47c-1f3fb","\uD83D\uDC78\uD83C\uDFFF":"1f478-1f3ff","\uD83D\uDC78\uD83C\uDFFE":"1f478-1f3fe","\uD83D\uDC78\uD83C\uDFFD":"1f478-1f3fd","\uD83D\uDC78\uD83C\uDFFC":"1f478-1f3fc","\uD83D\uDC78\uD83C\uDFFB":"1f478-1f3fb","\uD83D\uDC77\uD83C\uDFFF":"1f477-1f3ff","\uD83D\uDC77\uD83C\uDFFE":"1f477-1f3fe","\uD83D\uDC77\uD83C\uDFFD":"1f477-1f3fd","\uD83D\uDC77\uD83C\uDFFC":"1f477-1f3fc","\uD83D\uDC77\uD83C\uDFFB":"1f477-1f3fb","\uD83D\uDC76\uD83C\uDFFF":"1f476-1f3ff","\uD83D\uDC76\uD83C\uDFFE":"1f476-1f3fe","\uD83D\uDC76\uD83C\uDFFD":"1f476-1f3fd","\uD83D\uDC76\uD83C\uDFFC":"1f476-1f3fc","\uD83D\uDC76\uD83C\uDFFB":"1f476-1f3fb","\uD83D\uDC75\uD83C\uDFFF":"1f475-1f3ff","\uD83D\uDC75\uD83C\uDFFE":"1f475-1f3fe","\uD83D\uDC75\uD83C\uDFFD":"1f475-1f3fd","\uD83D\uDC75\uD83C\uDFFC":"1f475-1f3fc","\uD83D\uDC75\uD83C\uDFFB":"1f475-1f3fb","\uD83D\uDC74\uD83C\uDFFF":"1f474-1f3ff","\uD83D\uDC74\uD83C\uDFFE":"1f474-1f3fe","\uD83D\uDC74\uD83C\uDFFD":"1f474-1f3fd","\uD83D\uDC74\uD83C\uDFFC":"1f474-1f3fc","\uD83D\uDC74\uD83C\uDFFB":"1f474-1f3fb","\uD83D\uDC73\uD83C\uDFFF":"1f473-1f3ff","\uD83D\uDC73\uD83C\uDFFE":"1f473-1f3fe","\uD83D\uDC73\uD83C\uDFFD":"1f473-1f3fd","\uD83D\uDC73\uD83C\uDFFC":"1f473-1f3fc","\uD83D\uDC73\uD83C\uDFFB":"1f473-1f3fb","\uD83D\uDC72\uD83C\uDFFF":"1f472-1f3ff","\uD83D\uDC72\uD83C\uDFFE":"1f472-1f3fe","\uD83D\uDC72\uD83C\uDFFD":"1f472-1f3fd","\uD83D\uDC72\uD83C\uDFFC":"1f472-1f3fc","\uD83D\uDC72\uD83C\uDFFB":"1f472-1f3fb","\uD83D\uDC71\uD83C\uDFFF":"1f471-1f3ff","\uD83D\uDC71\uD83C\uDFFE":"1f471-1f3fe","\uD83D\uDC71\uD83C\uDFFD":"1f471-1f3fd","\uD83D\uDC71\uD83C\uDFFC":"1f471-1f3fc","\uD83D\uDC71\uD83C\uDFFB":"1f471-1f3fb","\uD83D\uDC70\uD83C\uDFFF":"1f470-1f3ff","\uD83D\uDC70\uD83C\uDFFE":"1f470-1f3fe","\uD83D\uDC70\uD83C\uDFFD":"1f470-1f3fd","\uD83D\uDC70\uD83C\uDFFC":"1f470-1f3fc","\uD83D\uDC70\uD83C\uDFFB":"1f470-1f3fb","\uD83D\uDC6E\uD83C\uDFFF":"1f46e-1f3ff","\uD83D\uDC6E\uD83C\uDFFE":"1f46e-1f3fe","\uD83D\uDC6E\uD83C\uDFFD":"1f46e-1f3fd","\uD83D\uDC6E\uD83C\uDFFC":"1f46e-1f3fc","\uD83D\uDC6E\uD83C\uDFFB":"1f46e-1f3fb","\uD83D\uDC69\uD83C\uDFFF":"1f469-1f3ff","\uD83D\uDC69\uD83C\uDFFE":"1f469-1f3fe","\uD83D\uDC69\uD83C\uDFFD":"1f469-1f3fd","\uD83D\uDC69\uD83C\uDFFC":"1f469-1f3fc","\uD83D\uDC69\uD83C\uDFFB":"1f469-1f3fb","\uD83D\uDC68\uD83C\uDFFF":"1f468-1f3ff","\uD83D\uDC68\uD83C\uDFFE":"1f468-1f3fe","\uD83D\uDC68\uD83C\uDFFD":"1f468-1f3fd","\uD83D\uDC68\uD83C\uDFFC":"1f468-1f3fc","\uD83D\uDC68\uD83C\uDFFB":"1f468-1f3fb","\uD83D\uDC67\uD83C\uDFFF":"1f467-1f3ff","\uD83D\uDC67\uD83C\uDFFE":"1f467-1f3fe","\uD83D\uDC67\uD83C\uDFFD":"1f467-1f3fd","\uD83D\uDC67\uD83C\uDFFC":"1f467-1f3fc","\uD83D\uDC67\uD83C\uDFFB":"1f467-1f3fb","\uD83D\uDC66\uD83C\uDFFF":"1f466-1f3ff","\uD83D\uDC66\uD83C\uDFFE":"1f466-1f3fe","\uD83D\uDC66\uD83C\uDFFD":"1f466-1f3fd","\uD83D\uDC66\uD83C\uDFFC":"1f466-1f3fc","\uD83D\uDC66\uD83C\uDFFB":"1f466-1f3fb","\uD83D\uDC50\uD83C\uDFFF":"1f450-1f3ff","\uD83D\uDC50\uD83C\uDFFE":"1f450-1f3fe","\uD83D\uDC50\uD83C\uDFFD":"1f450-1f3fd","\uD83D\uDC50\uD83C\uDFFC":"1f450-1f3fc","\uD83D\uDC50\uD83C\uDFFB":"1f450-1f3fb","\uD83D\uDC4F\uD83C\uDFFF":"1f44f-1f3ff","\uD83D\uDC4F\uD83C\uDFFE":"1f44f-1f3fe","\uD83D\uDC4F\uD83C\uDFFD":"1f44f-1f3fd","\uD83D\uDC4F\uD83C\uDFFC":"1f44f-1f3fc","\uD83D\uDC4F\uD83C\uDFFB":"1f44f-1f3fb","\uD83D\uDC4E\uD83C\uDFFF":"1f44e-1f3ff","\uD83D\uDC4E\uD83C\uDFFE":"1f44e-1f3fe","\uD83D\uDC4E\uD83C\uDFFD":"1f44e-1f3fd","\uD83D\uDC4E\uD83C\uDFFC":"1f44e-1f3fc","\uD83D\uDC4E\uD83C\uDFFB":"1f44e-1f3fb","\uD83D\uDC4D\uD83C\uDFFF":"1f44d-1f3ff","\uD83D\uDC4D\uD83C\uDFFE":"1f44d-1f3fe","\uD83D\uDC4D\uD83C\uDFFD":"1f44d-1f3fd","\uD83D\uDC4D\uD83C\uDFFC":"1f44d-1f3fc","\uD83D\uDC4D\uD83C\uDFFB":"1f44d-1f3fb","\uD83D\uDC4C\uD83C\uDFFF":"1f44c-1f3ff","\uD83D\uDC4C\uD83C\uDFFE":"1f44c-1f3fe","\uD83D\uDC4C\uD83C\uDFFD":"1f44c-1f3fd","\uD83D\uDC4C\uD83C\uDFFC":"1f44c-1f3fc","\uD83D\uDC4C\uD83C\uDFFB":"1f44c-1f3fb","\uD83D\uDC4B\uD83C\uDFFF":"1f44b-1f3ff","\uD83D\uDC4B\uD83C\uDFFE":"1f44b-1f3fe","\uD83D\uDC4B\uD83C\uDFFD":"1f44b-1f3fd","\uD83D\uDC4B\uD83C\uDFFC":"1f44b-1f3fc","\uD83D\uDC4B\uD83C\uDFFB":"1f44b-1f3fb","\uD83D\uDC4A\uD83C\uDFFF":"1f44a-1f3ff","\uD83D\uDC4A\uD83C\uDFFE":"1f44a-1f3fe","\uD83D\uDC4A\uD83C\uDFFD":"1f44a-1f3fd","\uD83D\uDC4A\uD83C\uDFFC":"1f44a-1f3fc","\uD83D\uDC4A\uD83C\uDFFB":"1f44a-1f3fb","\uD83D\uDC49\uD83C\uDFFF":"1f449-1f3ff","\uD83D\uDC49\uD83C\uDFFE":"1f449-1f3fe","\uD83D\uDC49\uD83C\uDFFD":"1f449-1f3fd","\uD83D\uDC49\uD83C\uDFFC":"1f449-1f3fc","\uD83D\uDC49\uD83C\uDFFB":"1f449-1f3fb","\uD83D\uDC48\uD83C\uDFFF":"1f448-1f3ff","\uD83D\uDC48\uD83C\uDFFE":"1f448-1f3fe","\uD83D\uDC48\uD83C\uDFFD":"1f448-1f3fd","\uD83D\uDC48\uD83C\uDFFC":"1f448-1f3fc","\uD83D\uDC48\uD83C\uDFFB":"1f448-1f3fb","\uD83D\uDC47\uD83C\uDFFF":"1f447-1f3ff","\uD83D\uDC47\uD83C\uDFFE":"1f447-1f3fe","\uD83D\uDC47\uD83C\uDFFD":"1f447-1f3fd","\uD83D\uDC47\uD83C\uDFFC":"1f447-1f3fc","\uD83D\uDC47\uD83C\uDFFB":"1f447-1f3fb","\uD83D\uDC46\uD83C\uDFFF":"1f446-1f3ff","\uD83D\uDC46\uD83C\uDFFE":"1f446-1f3fe","\uD83D\uDC46\uD83C\uDFFD":"1f446-1f3fd","\uD83D\uDC46\uD83C\uDFFC":"1f446-1f3fc","\uD83D\uDC46\uD83C\uDFFB":"1f446-1f3fb","\uD83D\uDC43\uD83C\uDFFF":"1f443-1f3ff","\uD83D\uDC43\uD83C\uDFFE":"1f443-1f3fe","\uD83D\uDC43\uD83C\uDFFD":"1f443-1f3fd","\uD83D\uDC43\uD83C\uDFFC":"1f443-1f3fc","\uD83D\uDC43\uD83C\uDFFB":"1f443-1f3fb","\uD83D\uDC42\uD83C\uDFFF":"1f442-1f3ff","\uD83D\uDC42\uD83C\uDFFE":"1f442-1f3fe","\uD83D\uDC42\uD83C\uDFFD":"1f442-1f3fd","\uD83D\uDC42\uD83C\uDFFC":"1f442-1f3fc","\uD83D\uDC42\uD83C\uDFFB":"1f442-1f3fb","\uD83C\uDFCB\uD83C\uDFFF":"1f3cb-1f3ff","\uD83C\uDFCB\uD83C\uDFFE":"1f3cb-1f3fe","\uD83C\uDFCB\uD83C\uDFFD":"1f3cb-1f3fd","\uD83C\uDFCB\uD83C\uDFFC":"1f3cb-1f3fc","\uD83C\uDFCB\uD83C\uDFFB":"1f3cb-1f3fb","\uD83C\uDFCA\uD83C\uDFFF":"1f3ca-1f3ff","\uD83C\uDFCA\uD83C\uDFFE":"1f3ca-1f3fe","\uD83C\uDFCA\uD83C\uDFFD":"1f3ca-1f3fd","\uD83C\uDFCA\uD83C\uDFFC":"1f3ca-1f3fc","\uD83C\uDFCA\uD83C\uDFFB":"1f3ca-1f3fb","\uD83C\uDFC7\uD83C\uDFFF":"1f3c7-1f3ff","\uD83C\uDFC7\uD83C\uDFFE":"1f3c7-1f3fe","\uD83C\uDFC7\uD83C\uDFFD":"1f3c7-1f3fd","\uD83C\uDFC7\uD83C\uDFFC":"1f3c7-1f3fc","\uD83C\uDFC7\uD83C\uDFFB":"1f3c7-1f3fb","\uD83C\uDFC4\uD83C\uDFFF":"1f3c4-1f3ff","\uD83C\uDFC4\uD83C\uDFFE":"1f3c4-1f3fe","\uD83C\uDFC4\uD83C\uDFFD":"1f3c4-1f3fd","\uD83C\uDFC4\uD83C\uDFFC":"1f3c4-1f3fc","\uD83C\uDFC4\uD83C\uDFFB":"1f3c4-1f3fb","\uD83C\uDFC3\uD83C\uDFFF":"1f3c3-1f3ff","\uD83C\uDFC3\uD83C\uDFFE":"1f3c3-1f3fe","\uD83C\uDFC3\uD83C\uDFFD":"1f3c3-1f3fd","\uD83C\uDFC3\uD83C\uDFFC":"1f3c3-1f3fc","\uD83C\uDFC3\uD83C\uDFFB":"1f3c3-1f3fb","\uD83C\uDF85\uD83C\uDFFF":"1f385-1f3ff","\uD83C\uDF85\uD83C\uDFFE":"1f385-1f3fe","\uD83C\uDF85\uD83C\uDFFD":"1f385-1f3fd","\uD83C\uDF85\uD83C\uDFFC":"1f385-1f3fc","\uD83C\uDF85\uD83C\uDFFB":"1f385-1f3fb","\uD83C\uDDFF\uD83C\uDDFC":"1f1ff-1f1fc","\uD83C\uDDFF\uD83C\uDDF2":"1f1ff-1f1f2","\uD83C\uDDFF\uD83C\uDDE6":"1f1ff-1f1e6","\uD83C\uDDFE\uD83C\uDDF9":"1f1fe-1f1f9","\uD83C\uDDFE\uD83C\uDDEA":"1f1fe-1f1ea","\uD83C\uDDFD\uD83C\uDDF0":"1f1fd-1f1f0","\uD83C\uDDFC\uD83C\uDDF8":"1f1fc-1f1f8","\uD83C\uDDFC\uD83C\uDDEB":"1f1fc-1f1eb","\uD83C\uDDFB\uD83C\uDDFA":"1f1fb-1f1fa","\uD83C\uDDFB\uD83C\uDDF3":"1f1fb-1f1f3","\uD83C\uDDFB\uD83C\uDDEE":"1f1fb-1f1ee","\uD83C\uDDFB\uD83C\uDDEC":"1f1fb-1f1ec","\uD83C\uDDFB\uD83C\uDDEA":"1f1fb-1f1ea","\uD83C\uDDFB\uD83C\uDDE8":"1f1fb-1f1e8","\uD83C\uDDFB\uD83C\uDDE6":"1f1fb-1f1e6","\uD83C\uDDFA\uD83C\uDDFF":"1f1fa-1f1ff","\uD83C\uDDFA\uD83C\uDDFE":"1f1fa-1f1fe","\uD83C\uDDFA\uD83C\uDDF8":"1f1fa-1f1f8","\uD83C\uDDFA\uD83C\uDDF2":"1f1fa-1f1f2","\uD83C\uDDFA\uD83C\uDDEC":"1f1fa-1f1ec","\uD83C\uDDFA\uD83C\uDDE6":"1f1fa-1f1e6","\uD83C\uDDF9\uD83C\uDDFF":"1f1f9-1f1ff","\uD83C\uDDF9\uD83C\uDDFC":"1f1f9-1f1fc","\uD83C\uDDF9\uD83C\uDDFB":"1f1f9-1f1fb","\uD83C\uDDF9\uD83C\uDDF9":"1f1f9-1f1f9","\uD83C\uDDF9\uD83C\uDDF7":"1f1f9-1f1f7","\uD83C\uDDF9\uD83C\uDDF4":"1f1f9-1f1f4","\uD83C\uDDF9\uD83C\uDDF3":"1f1f9-1f1f3","\uD83C\uDDF9\uD83C\uDDF2":"1f1f9-1f1f2","\uD83C\uDDF9\uD83C\uDDF1":"1f1f9-1f1f1","\uD83C\uDDF9\uD83C\uDDF0":"1f1f9-1f1f0","\uD83C\uDDF9\uD83C\uDDEF":"1f1f9-1f1ef","\uD83C\uDDF9\uD83C\uDDED":"1f1f9-1f1ed","\uD83C\uDDF9\uD83C\uDDEC":"1f1f9-1f1ec","\uD83C\uDDF9\uD83C\uDDEB":"1f1f9-1f1eb","\uD83C\uDDF9\uD83C\uDDE9":"1f1f9-1f1e9","\uD83C\uDDF9\uD83C\uDDE8":"1f1f9-1f1e8","\uD83C\uDDF9\uD83C\uDDE6":"1f1f9-1f1e6","\uD83C\uDDF8\uD83C\uDDFF":"1f1f8-1f1ff","\uD83C\uDDF8\uD83C\uDDFE":"1f1f8-1f1fe","\uD83C\uDDF8\uD83C\uDDFD":"1f1f8-1f1fd","\uD83C\uDDF8\uD83C\uDDFB":"1f1f8-1f1fb","\uD83C\uDDF8\uD83C\uDDF9":"1f1f8-1f1f9","\uD83C\uDDF8\uD83C\uDDF8":"1f1f8-1f1f8","\uD83C\uDDF8\uD83C\uDDF7":"1f1f8-1f1f7","\uD83C\uDDF8\uD83C\uDDF4":"1f1f8-1f1f4","\uD83C\uDDF8\uD83C\uDDF3":"1f1f8-1f1f3","\uD83C\uDDF8\uD83C\uDDF2":"1f1f8-1f1f2","\uD83C\uDDF8\uD83C\uDDF1":"1f1f8-1f1f1","\uD83C\uDDF8\uD83C\uDDF0":"1f1f8-1f1f0","\uD83C\uDDF8\uD83C\uDDEF":"1f1f8-1f1ef","\uD83C\uDDF8\uD83C\uDDEE":"1f1f8-1f1ee","\uD83C\uDDF8\uD83C\uDDED":"1f1f8-1f1ed","\uD83C\uDDF8\uD83C\uDDEC":"1f1f8-1f1ec","\uD83C\uDDF8\uD83C\uDDEA":"1f1f8-1f1ea","\uD83C\uDDF8\uD83C\uDDE9":"1f1f8-1f1e9","\uD83C\uDDF8\uD83C\uDDE8":"1f1f8-1f1e8","\uD83C\uDDF8\uD83C\uDDE7":"1f1f8-1f1e7","\uD83C\uDDF8\uD83C\uDDE6":"1f1f8-1f1e6","\uD83C\uDDF7\uD83C\uDDFC":"1f1f7-1f1fc","\uD83C\uDDF7\uD83C\uDDFA":"1f1f7-1f1fa","\uD83C\uDDF7\uD83C\uDDF8":"1f1f7-1f1f8","\uD83C\uDDF7\uD83C\uDDF4":"1f1f7-1f1f4","\uD83C\uDDF7\uD83C\uDDEA":"1f1f7-1f1ea","\uD83C\uDDF6\uD83C\uDDE6":"1f1f6-1f1e6","\uD83C\uDDF5\uD83C\uDDFE":"1f1f5-1f1fe","\uD83C\uDDF5\uD83C\uDDFC":"1f1f5-1f1fc","\uD83C\uDDF5\uD83C\uDDF9":"1f1f5-1f1f9","\uD83C\uDDF5\uD83C\uDDF8":"1f1f5-1f1f8","\uD83C\uDDF5\uD83C\uDDF7":"1f1f5-1f1f7","\uD83C\uDDF5\uD83C\uDDF3":"1f1f5-1f1f3","\uD83C\uDDF5\uD83C\uDDF2":"1f1f5-1f1f2","\uD83C\uDDF5\uD83C\uDDF1":"1f1f5-1f1f1","\uD83C\uDDF5\uD83C\uDDF0":"1f1f5-1f1f0","\uD83C\uDDF5\uD83C\uDDED":"1f1f5-1f1ed","\uD83C\uDDF5\uD83C\uDDEC":"1f1f5-1f1ec","\uD83C\uDDF5\uD83C\uDDEB":"1f1f5-1f1eb","\uD83C\uDDF5\uD83C\uDDEA":"1f1f5-1f1ea","\uD83C\uDDF5\uD83C\uDDE6":"1f1f5-1f1e6","\uD83C\uDDF4\uD83C\uDDF2":"1f1f4-1f1f2","\uD83C\uDDF3\uD83C\uDDFF":"1f1f3-1f1ff","\uD83C\uDDF3\uD83C\uDDFA":"1f1f3-1f1fa","\uD83C\uDDF3\uD83C\uDDF7":"1f1f3-1f1f7","\uD83C\uDDF3\uD83C\uDDF5":"1f1f3-1f1f5","\uD83C\uDDF3\uD83C\uDDF4":"1f1f3-1f1f4","\uD83C\uDDF3\uD83C\uDDF1":"1f1f3-1f1f1","\uD83C\uDDF3\uD83C\uDDEE":"1f1f3-1f1ee","\uD83C\uDDF3\uD83C\uDDEC":"1f1f3-1f1ec","\uD83C\uDDF3\uD83C\uDDEB":"1f1f3-1f1eb","\uD83C\uDDF3\uD83C\uDDEA":"1f1f3-1f1ea","\uD83C\uDDF3\uD83C\uDDE8":"1f1f3-1f1e8","\uD83C\uDDF3\uD83C\uDDE6":"1f1f3-1f1e6","\uD83C\uDDF2\uD83C\uDDFF":"1f1f2-1f1ff","\uD83C\uDDF2\uD83C\uDDFE":"1f1f2-1f1fe","\uD83C\uDDF2\uD83C\uDDFD":"1f1f2-1f1fd","\uD83C\uDDF2\uD83C\uDDFC":"1f1f2-1f1fc","\uD83C\uDDF2\uD83C\uDDFB":"1f1f2-1f1fb","\uD83C\uDDF2\uD83C\uDDFA":"1f1f2-1f1fa","\uD83C\uDDF2\uD83C\uDDF9":"1f1f2-1f1f9","\uD83C\uDDF2\uD83C\uDDF8":"1f1f2-1f1f8","\uD83C\uDDF2\uD83C\uDDF7":"1f1f2-1f1f7","\uD83C\uDDF2\uD83C\uDDF6":"1f1f2-1f1f6","\uD83C\uDDF2\uD83C\uDDF5":"1f1f2-1f1f5","\uD83C\uDDF2\uD83C\uDDF4":"1f1f2-1f1f4","\uD83C\uDDF2\uD83C\uDDF3":"1f1f2-1f1f3","\uD83C\uDDF2\uD83C\uDDF2":"1f1f2-1f1f2","\uD83C\uDDF2\uD83C\uDDF1":"1f1f2-1f1f1","\uD83C\uDDF2\uD83C\uDDF0":"1f1f2-1f1f0","\uD83C\uDDF2\uD83C\uDDED":"1f1f2-1f1ed","\uD83C\uDDF2\uD83C\uDDEC":"1f1f2-1f1ec","\uD83C\uDDF2\uD83C\uDDEB":"1f1f2-1f1eb","\uD83C\uDDF2\uD83C\uDDEA":"1f1f2-1f1ea","\uD83C\uDDF2\uD83C\uDDE9":"1f1f2-1f1e9","\uD83C\uDDF2\uD83C\uDDE8":"1f1f2-1f1e8","\uD83C\uDDF2\uD83C\uDDE6":"1f1f2-1f1e6","\uD83C\uDDF1\uD83C\uDDFE":"1f1f1-1f1fe","\uD83C\uDDF1\uD83C\uDDFB":"1f1f1-1f1fb","\uD83C\uDDF1\uD83C\uDDFA":"1f1f1-1f1fa","\uD83C\uDDF1\uD83C\uDDF9":"1f1f1-1f1f9","\uD83C\uDDF1\uD83C\uDDF8":"1f1f1-1f1f8","\uD83C\uDDF1\uD83C\uDDF7":"1f1f1-1f1f7","\uD83C\uDDF1\uD83C\uDDF0":"1f1f1-1f1f0","\uD83C\uDDF1\uD83C\uDDEE":"1f1f1-1f1ee","\uD83C\uDDF1\uD83C\uDDE8":"1f1f1-1f1e8","\uD83C\uDDF1\uD83C\uDDE7":"1f1f1-1f1e7","\uD83C\uDDF1\uD83C\uDDE6":"1f1f1-1f1e6","\uD83C\uDDF0\uD83C\uDDFF":"1f1f0-1f1ff","\uD83C\uDDF0\uD83C\uDDFE":"1f1f0-1f1fe","\uD83C\uDDF0\uD83C\uDDFC":"1f1f0-1f1fc","\uD83C\uDDF0\uD83C\uDDF7":"1f1f0-1f1f7","\uD83C\uDDF0\uD83C\uDDF5":"1f1f0-1f1f5","\uD83C\uDDF0\uD83C\uDDF3":"1f1f0-1f1f3","\uD83C\uDDF0\uD83C\uDDF2":"1f1f0-1f1f2","\uD83C\uDDF0\uD83C\uDDEE":"1f1f0-1f1ee","\uD83C\uDDF0\uD83C\uDDED":"1f1f0-1f1ed","\uD83C\uDDF0\uD83C\uDDEC":"1f1f0-1f1ec","\uD83C\uDDF0\uD83C\uDDEA":"1f1f0-1f1ea","\uD83C\uDDEF\uD83C\uDDF5":"1f1ef-1f1f5","\uD83C\uDDEF\uD83C\uDDF4":"1f1ef-1f1f4","\uD83C\uDDEF\uD83C\uDDF2":"1f1ef-1f1f2","\uD83C\uDDEF\uD83C\uDDEA":"1f1ef-1f1ea","\uD83C\uDDEE\uD83C\uDDF9":"1f1ee-1f1f9","\uD83C\uDDEE\uD83C\uDDF8":"1f1ee-1f1f8","\uD83C\uDDEE\uD83C\uDDF7":"1f1ee-1f1f7","\uD83C\uDDEE\uD83C\uDDF6":"1f1ee-1f1f6","\uD83C\uDDEE\uD83C\uDDF4":"1f1ee-1f1f4","\uD83C\uDDEE\uD83C\uDDF3":"1f1ee-1f1f3","\uD83C\uDDEE\uD83C\uDDF2":"1f1ee-1f1f2","\uD83C\uDDEE\uD83C\uDDF1":"1f1ee-1f1f1","\uD83C\uDDEE\uD83C\uDDEA":"1f1ee-1f1ea","\uD83C\uDDEE\uD83C\uDDE9":"1f1ee-1f1e9","\uD83C\uDDEE\uD83C\uDDE8":"1f1ee-1f1e8","\uD83C\uDDED\uD83C\uDDFA":"1f1ed-1f1fa","\uD83C\uDDED\uD83C\uDDF9":"1f1ed-1f1f9","\uD83C\uDDED\uD83C\uDDF7":"1f1ed-1f1f7","\uD83C\uDDED\uD83C\uDDF3":"1f1ed-1f1f3","\uD83C\uDDED\uD83C\uDDF2":"1f1ed-1f1f2","\uD83C\uDDED\uD83C\uDDF0":"1f1ed-1f1f0","\uD83C\uDDEC\uD83C\uDDFE":"1f1ec-1f1fe","\uD83C\uDDEC\uD83C\uDDFC":"1f1ec-1f1fc","\uD83C\uDDEC\uD83C\uDDFA":"1f1ec-1f1fa","\uD83C\uDDEC\uD83C\uDDF9":"1f1ec-1f1f9","\uD83C\uDDEC\uD83C\uDDF8":"1f1ec-1f1f8","\uD83C\uDDEC\uD83C\uDDF7":"1f1ec-1f1f7","\uD83C\uDDEC\uD83C\uDDF6":"1f1ec-1f1f6","\uD83C\uDDEC\uD83C\uDDF5":"1f1ec-1f1f5","\uD83C\uDDEC\uD83C\uDDF3":"1f1ec-1f1f3","\uD83C\uDDEC\uD83C\uDDF2":"1f1ec-1f1f2","\uD83C\uDDEC\uD83C\uDDF1":"1f1ec-1f1f1","\uD83C\uDDEC\uD83C\uDDEE":"1f1ec-1f1ee","\uD83C\uDDEC\uD83C\uDDED":"1f1ec-1f1ed","\uD83C\uDDEC\uD83C\uDDEC":"1f1ec-1f1ec","\uD83C\uDDEC\uD83C\uDDEB":"1f1ec-1f1eb","\uD83C\uDDEC\uD83C\uDDEA":"1f1ec-1f1ea","\uD83C\uDDEC\uD83C\uDDE9":"1f1ec-1f1e9","\uD83C\uDDEC\uD83C\uDDE7":"1f1ec-1f1e7","\uD83C\uDDEC\uD83C\uDDE6":"1f1ec-1f1e6","\uD83C\uDDEB\uD83C\uDDF7":"1f1eb-1f1f7","\uD83C\uDDEB\uD83C\uDDF4":"1f1eb-1f1f4","\uD83C\uDDEB\uD83C\uDDF2":"1f1eb-1f1f2","\uD83C\uDDEB\uD83C\uDDF0":"1f1eb-1f1f0","\uD83C\uDDEB\uD83C\uDDEF":"1f1eb-1f1ef","\uD83C\uDDEB\uD83C\uDDEE":"1f1eb-1f1ee","\uD83C\uDDEA\uD83C\uDDFA":"1f1ea-1f1fa","\uD83C\uDDEA\uD83C\uDDF9":"1f1ea-1f1f9","\uD83C\uDDEA\uD83C\uDDF8":"1f1ea-1f1f8","\uD83C\uDDEA\uD83C\uDDF7":"1f1ea-1f1f7","\uD83C\uDDEA\uD83C\uDDED":"1f1ea-1f1ed","\uD83C\uDDEA\uD83C\uDDEC":"1f1ea-1f1ec","\uD83C\uDDEA\uD83C\uDDEA":"1f1ea-1f1ea","\uD83C\uDDEA\uD83C\uDDE8":"1f1ea-1f1e8","\uD83C\uDDEA\uD83C\uDDE6":"1f1ea-1f1e6","\uD83C\uDDE9\uD83C\uDDFF":"1f1e9-1f1ff","\uD83C\uDDE9\uD83C\uDDF4":"1f1e9-1f1f4","\uD83C\uDDE9\uD83C\uDDF2":"1f1e9-1f1f2","\uD83C\uDDE9\uD83C\uDDF0":"1f1e9-1f1f0","\uD83C\uDDE9\uD83C\uDDEF":"1f1e9-1f1ef","\uD83C\uDDE9\uD83C\uDDEC":"1f1e9-1f1ec","\uD83C\uDDE9\uD83C\uDDEA":"1f1e9-1f1ea","\uD83C\uDDE8\uD83C\uDDFF":"1f1e8-1f1ff","\uD83C\uDDE8\uD83C\uDDFE":"1f1e8-1f1fe","\uD83C\uDDE8\uD83C\uDDFD":"1f1e8-1f1fd","\uD83C\uDDE8\uD83C\uDDFC":"1f1e8-1f1fc","\uD83C\uDDE8\uD83C\uDDFB":"1f1e8-1f1fb","\uD83C\uDDE8\uD83C\uDDFA":"1f1e8-1f1fa","\uD83C\uDDE8\uD83C\uDDF7":"1f1e8-1f1f7","\uD83C\uDDE8\uD83C\uDDF5":"1f1e8-1f1f5","\uD83C\uDDE8\uD83C\uDDF4":"1f1e8-1f1f4","\uD83C\uDDE8\uD83C\uDDF3":"1f1e8-1f1f3","\uD83C\uDDE8\uD83C\uDDF2":"1f1e8-1f1f2","\uD83C\uDDE8\uD83C\uDDF1":"1f1e8-1f1f1","\uD83C\uDDE8\uD83C\uDDF0":"1f1e8-1f1f0","\uD83C\uDDE8\uD83C\uDDEE":"1f1e8-1f1ee","\uD83C\uDDE8\uD83C\uDDED":"1f1e8-1f1ed","\uD83C\uDDE8\uD83C\uDDEC":"1f1e8-1f1ec","\uD83C\uDDE8\uD83C\uDDEB":"1f1e8-1f1eb","\uD83C\uDDE8\uD83C\uDDE9":"1f1e8-1f1e9","\uD83C\uDDE8\uD83C\uDDE8":"1f1e8-1f1e8","\uD83C\uDDE8\uD83C\uDDE6":"1f1e8-1f1e6","\uD83C\uDDE7\uD83C\uDDFF":"1f1e7-1f1ff","\uD83C\uDDE7\uD83C\uDDFE":"1f1e7-1f1fe","\uD83C\uDDE7\uD83C\uDDFC":"1f1e7-1f1fc","\uD83C\uDDE7\uD83C\uDDFB":"1f1e7-1f1fb","\uD83C\uDDE7\uD83C\uDDF9":"1f1e7-1f1f9","\uD83C\uDDE7\uD83C\uDDF8":"1f1e7-1f1f8","\uD83C\uDDE7\uD83C\uDDF7":"1f1e7-1f1f7","\uD83C\uDDE7\uD83C\uDDF6":"1f1e7-1f1f6","\uD83C\uDDE7\uD83C\uDDF4":"1f1e7-1f1f4","\uD83C\uDDE7\uD83C\uDDF3":"1f1e7-1f1f3","\uD83C\uDDE7\uD83C\uDDF2":"1f1e7-1f1f2","\uD83C\uDDE7\uD83C\uDDF1":"1f1e7-1f1f1","\uD83C\uDDE7\uD83C\uDDEF":"1f1e7-1f1ef","\uD83C\uDDE7\uD83C\uDDEE":"1f1e7-1f1ee","\uD83C\uDDE7\uD83C\uDDED":"1f1e7-1f1ed","\uD83C\uDDE7\uD83C\uDDEC":"1f1e7-1f1ec","\uD83C\uDDE7\uD83C\uDDEB":"1f1e7-1f1eb","\uD83C\uDDE7\uD83C\uDDEA":"1f1e7-1f1ea","\uD83C\uDDE7\uD83C\uDDE9":"1f1e7-1f1e9","\uD83C\uDDE7\uD83C\uDDE7":"1f1e7-1f1e7","\uD83C\uDDE7\uD83C\uDDE6":"1f1e7-1f1e6","\uD83C\uDDE6\uD83C\uDDFF":"1f1e6-1f1ff","\uD83C\uDDE6\uD83C\uDDFD":"1f1e6-1f1fd","\uD83C\uDDE6\uD83C\uDDFC":"1f1e6-1f1fc","\uD83C\uDDE6\uD83C\uDDFA":"1f1e6-1f1fa","\uD83C\uDDE6\uD83C\uDDF9":"1f1e6-1f1f9","\uD83C\uDDE6\uD83C\uDDF8":"1f1e6-1f1f8","\uD83C\uDDE6\uD83C\uDDF7":"1f1e6-1f1f7","\uD83C\uDDE6\uD83C\uDDF6":"1f1e6-1f1f6","\uD83C\uDDE6\uD83C\uDDF4":"1f1e6-1f1f4","\uD83C\uDDE6\uD83C\uDDF2":"1f1e6-1f1f2","\uD83C\uDDE6\uD83C\uDDF1":"1f1e6-1f1f1","\uD83C\uDDE6\uD83C\uDDEE":"1f1e6-1f1ee","\uD83C\uDDE6\uD83C\uDDEC":"1f1e6-1f1ec","\uD83C\uDDE6\uD83C\uDDEB":"1f1e6-1f1eb","\uD83C\uDDE6\uD83C\uDDEA":"1f1e6-1f1ea","\uD83C\uDDE6\uD83C\uDDE9":"1f1e6-1f1e9","\uD83C\uDDE6\uD83C\uDDE8":"1f1e6-1f1e8","\uD83C\uDC04\uFE0F":"1f004-fe0f","\uD83C\uDC04":"1f004","\uD83C\uDD7F\uFE0F":"1f17f-fe0f","\uD83C\uDD7F":"1f17f","\uD83C\uDE02\uFE0F":"1f202-fe0f","\uD83C\uDE02":"1f202","\uD83C\uDE1A\uFE0F":"1f21a-fe0f","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F\uFE0F":"1f22f-fe0f","\uD83C\uDE2F":"1f22f","\uD83C\uDE37\uFE0F":"1f237-fe0f","\uD83C\uDE37":"1f237","\uD83C\uDF9E\uFE0F":"1f39e-fe0f","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F\uFE0F":"1f39f-fe0f","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB\uFE0F":"1f3cb-fe0f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC\uFE0F":"1f3cc-fe0f","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD\uFE0F":"1f3cd-fe0f","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE\uFE0F":"1f3ce-fe0f","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96\uFE0F":"1f396-fe0f","\uD83C\uDF96":"1f396","\uD83C\uDF97\uFE0F":"1f397-fe0f","\uD83C\uDF97":"1f397","\uD83C\uDF36\uFE0F":"1f336-fe0f","\uD83C\uDF36":"1f336","\uD83C\uDF27\uFE0F":"1f327-fe0f","\uD83C\uDF27":"1f327","\uD83C\uDF28\uFE0F":"1f328-fe0f","\uD83C\uDF28":"1f328","\uD83C\uDF29\uFE0F":"1f329-fe0f","\uD83C\uDF29":"1f329","\uD83C\uDF2A\uFE0F":"1f32a-fe0f","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B\uFE0F":"1f32b-fe0f","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C\uFE0F":"1f32c-fe0f","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F\uFE0F":"1f43f-fe0f","\uD83D\uDC3F":"1f43f","\uD83D\uDD77\uFE0F":"1f577-fe0f","\uD83D\uDD77":"1f577","\uD83D\uDD78\uFE0F":"1f578-fe0f","\uD83D\uDD78":"1f578","\uD83C\uDF21\uFE0F":"1f321-fe0f","\uD83C\uDF21":"1f321","\uD83C\uDF99\uFE0F":"1f399-fe0f","\uD83C\uDF99":"1f399","\uD83C\uDF9A\uFE0F":"1f39a-fe0f","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B\uFE0F":"1f39b-fe0f","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3\uFE0F":"1f3f3-fe0f","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5\uFE0F":"1f3f5-fe0f","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7\uFE0F":"1f3f7-fe0f","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD\uFE0F":"1f4fd-fe0f","\uD83D\uDCFD":"1f4fd","\uD83D\uDD49\uFE0F":"1f549-fe0f","\uD83D\uDD49":"1f549","\uD83D\uDD4A\uFE0F":"1f54a-fe0f","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F\uFE0F":"1f56f-fe0f","\uD83D\uDD6F":"1f56f","\uD83D\uDD70\uFE0F":"1f570-fe0f","\uD83D\uDD70":"1f570","\uD83D\uDD73\uFE0F":"1f573-fe0f","\uD83D\uDD73":"1f573","\uD83D\uDD76\uFE0F":"1f576-fe0f","\uD83D\uDD76":"1f576","\uD83D\uDD79\uFE0F":"1f579-fe0f","\uD83D\uDD79":"1f579","\uD83D\uDD87\uFE0F":"1f587-fe0f","\uD83D\uDD87":"1f587","\uD83D\uDD8A\uFE0F":"1f58a-fe0f","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B\uFE0F":"1f58b-fe0f","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C\uFE0F":"1f58c-fe0f","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D\uFE0F":"1f58d-fe0f","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5\uFE0F":"1f5a5-fe0f","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8\uFE0F":"1f5a8-fe0f","\uD83D\uDDA8":"1f5a8","\uD83D\uDDB2\uFE0F":"1f5b2-fe0f","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC\uFE0F":"1f5bc-fe0f","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2\uFE0F":"1f5c2-fe0f","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3\uFE0F":"1f5c3-fe0f","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4\uFE0F":"1f5c4-fe0f","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1\uFE0F":"1f5d1-fe0f","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2\uFE0F":"1f5d2-fe0f","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3\uFE0F":"1f5d3-fe0f","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC\uFE0F":"1f5dc-fe0f","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD\uFE0F":"1f5dd-fe0f","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE\uFE0F":"1f5de-fe0f","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1\uFE0F":"1f5e1-fe0f","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3\uFE0F":"1f5e3-fe0f","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8\uFE0F":"1f5e8-fe0f","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF\uFE0F":"1f5ef-fe0f","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3\uFE0F":"1f5f3-fe0f","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA\uFE0F":"1f5fa-fe0f","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0\uFE0F":"1f6e0-fe0f","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1\uFE0F":"1f6e1-fe0f","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2\uFE0F":"1f6e2-fe0f","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0\uFE0F":"1f6f0-fe0f","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D\uFE0F":"1f37d-fe0f","\uD83C\uDF7D":"1f37d","\uD83D\uDC41\uFE0F":"1f441-fe0f","\uD83D\uDC41":"1f441","\uD83D\uDD74\uFE0F":"1f574-fe0f","\uD83D\uDD74":"1f574","\uD83D\uDD75\uFE0F":"1f575-fe0f","\uD83D\uDD75":"1f575","\uD83D\uDD90\uFE0F":"1f590-fe0f","\uD83D\uDD90":"1f590","\uD83C\uDFD4\uFE0F":"1f3d4-fe0f","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5\uFE0F":"1f3d5-fe0f","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6\uFE0F":"1f3d6-fe0f","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7\uFE0F":"1f3d7-fe0f","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8\uFE0F":"1f3d8-fe0f","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9\uFE0F":"1f3d9-fe0f","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA\uFE0F":"1f3da-fe0f","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB\uFE0F":"1f3db-fe0f","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC\uFE0F":"1f3dc-fe0f","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD\uFE0F":"1f3dd-fe0f","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE\uFE0F":"1f3de-fe0f","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF\uFE0F":"1f3df-fe0f","\uD83C\uDFDF":"1f3df","\uD83D\uDECB\uFE0F":"1f6cb-fe0f","\uD83D\uDECB":"1f6cb","\uD83D\uDECD\uFE0F":"1f6cd-fe0f","\uD83D\uDECD":"1f6cd","\uD83D\uDECE\uFE0F":"1f6ce-fe0f","\uD83D\uDECE":"1f6ce","\uD83D\uDECF\uFE0F":"1f6cf-fe0f","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3\uFE0F":"1f6e3-fe0f","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4\uFE0F":"1f6e4-fe0f","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5\uFE0F":"1f6e5-fe0f","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9\uFE0F":"1f6e9-fe0f","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3\uFE0F":"1f6f3-fe0f","\uD83D\uDEF3":"1f6f3","\uD83C\uDF24\uFE0F":"1f324-fe0f","\uD83C\uDF24":"1f324","\uD83C\uDF25\uFE0F":"1f325-fe0f","\uD83C\uDF25":"1f325","\uD83C\uDF26\uFE0F":"1f326-fe0f","\uD83C\uDF26":"1f326","\uD83D\uDDB1\uFE0F":"1f5b1-fe0f","\uD83D\uDDB1":"1f5b1","\u261D\uD83C\uDFFB":"261d-1f3fb","\u261D\uD83C\uDFFC":"261d-1f3fc","\u261D\uD83C\uDFFD":"261d-1f3fd","\u261D\uD83C\uDFFE":"261d-1f3fe","\u261D\uD83C\uDFFF":"261d-1f3ff","\u270C\uD83C\uDFFB":"270c-1f3fb","\u270C\uD83C\uDFFC":"270c-1f3fc","\u270C\uD83C\uDFFD":"270c-1f3fd","\u270C\uD83C\uDFFE":"270c-1f3fe","\u270C\uD83C\uDFFF":"270c-1f3ff","\u270A\uD83C\uDFFB":"270a-1f3fb","\u270A\uD83C\uDFFC":"270a-1f3fc","\u270A\uD83C\uDFFD":"270a-1f3fd","\u270A\uD83C\uDFFE":"270a-1f3fe","\u270A\uD83C\uDFFF":"270a-1f3ff","\u270B\uD83C\uDFFB":"270b-1f3fb","\u270B\uD83C\uDFFC":"270b-1f3fc","\u270B\uD83C\uDFFD":"270b-1f3fd","\u270B\uD83C\uDFFE":"270b-1f3fe","\u270B\uD83C\uDFFF":"270b-1f3ff","\u270D\uD83C\uDFFB":"270d-1f3fb","\u270D\uD83C\uDFFC":"270d-1f3fc","\u270D\uD83C\uDFFD":"270d-1f3fd","\u270D\uD83C\uDFFE":"270d-1f3fe","\u270D\uD83C\uDFFF":"270d-1f3ff","\u26F9\uD83C\uDFFB":"26f9-1f3fb","\u26F9\uD83C\uDFFC":"26f9-1f3fc","\u26F9\uD83C\uDFFD":"26f9-1f3fd","\u26F9\uD83C\uDFFE":"26f9-1f3fe","\u26F9\uD83C\uDFFF":"26f9-1f3ff","\u00A9\uFE0F":"00a9-fe0f","\u00A9":"00a9","\u00AE\uFE0F":"00ae-fe0f","\u00AE":"00ae","\u203C\uFE0F":"203c-fe0f","\u203C":"203c","\u2049\uFE0F":"2049-fe0f","\u2049":"2049","\u2122\uFE0F":"2122-fe0f","\u2122":"2122","\u2139\uFE0F":"2139-fe0f","\u2139":"2139","\u2194\uFE0F":"2194-fe0f","\u2194":"2194","\u2195\uFE0F":"2195-fe0f","\u2195":"2195","\u2196\uFE0F":"2196-fe0f","\u2196":"2196","\u2197\uFE0F":"2197-fe0f","\u2197":"2197","\u2198\uFE0F":"2198-fe0f","\u2198":"2198","\u2199\uFE0F":"2199-fe0f","\u2199":"2199","\u21A9\uFE0F":"21a9-fe0f","\u21A9":"21a9","\u21AA\uFE0F":"21aa-fe0f","\u21AA":"21aa","\u231A\uFE0F":"231a-fe0f","\u231A":"231a","\u231B\uFE0F":"231b-fe0f","\u231B":"231b","\u24C2\uFE0F":"24c2-fe0f","\u24C2":"24c2","\u25AA\uFE0F":"25aa-fe0f","\u25AA":"25aa","\u25AB\uFE0F":"25ab-fe0f","\u25AB":"25ab","\u25B6\uFE0F":"25b6-fe0f","\u25B6":"25b6","\u25C0\uFE0F":"25c0-fe0f","\u25C0":"25c0","\u25FB\uFE0F":"25fb-fe0f","\u25FB":"25fb","\u25FC\uFE0F":"25fc-fe0f","\u25FC":"25fc","\u25FD\uFE0F":"25fd-fe0f","\u25FD":"25fd","\u25FE\uFE0F":"25fe-fe0f","\u25FE":"25fe","\u2600\uFE0F":"2600-fe0f","\u2600":"2600","\u2601\uFE0F":"2601-fe0f","\u2601":"2601","\u260E\uFE0F":"260e-fe0f","\u260E":"260e","\u2611\uFE0F":"2611-fe0f","\u2611":"2611","\u2614\uFE0F":"2614-fe0f","\u2614":"2614","\u2615\uFE0F":"2615-fe0f","\u2615":"2615","\u261D\uFE0F":"261d-fe0f","\u261D":"261d","\u263A\uFE0F":"263a-fe0f","\u263A":"263a","\u2648\uFE0F":"2648-fe0f","\u2648":"2648","\u2649\uFE0F":"2649-fe0f","\u2649":"2649","\u264A\uFE0F":"264a-fe0f","\u264A":"264a","\u264B\uFE0F":"264b-fe0f","\u264B":"264b","\u264C\uFE0F":"264c-fe0f","\u264C":"264c","\u264D\uFE0F":"264d-fe0f","\u264D":"264d","\u264E\uFE0F":"264e-fe0f","\u264E":"264e","\u264F\uFE0F":"264f-fe0f","\u264F":"264f","\u2650\uFE0F":"2650-fe0f","\u2650":"2650","\u2651\uFE0F":"2651-fe0f","\u2651":"2651","\u2652\uFE0F":"2652-fe0f","\u2652":"2652","\u2653\uFE0F":"2653-fe0f","\u2653":"2653","\u2660\uFE0F":"2660-fe0f","\u2660":"2660","\u2663\uFE0F":"2663-fe0f","\u2663":"2663","\u2665\uFE0F":"2665-fe0f","\u2665":"2665","\u2666\uFE0F":"2666-fe0f","\u2666":"2666","\u2668\uFE0F":"2668-fe0f","\u2668":"2668","\u267B\uFE0F":"267b-fe0f","\u267B":"267b","\u267F\uFE0F":"267f-fe0f","\u267F":"267f","\u2693\uFE0F":"2693-fe0f","\u2693":"2693","\u26A0\uFE0F":"26a0-fe0f","\u26A0":"26a0","\u26A1\uFE0F":"26a1-fe0f","\u26A1":"26a1","\u26AA\uFE0F":"26aa-fe0f","\u26AA":"26aa","\u26AB\uFE0F":"26ab-fe0f","\u26AB":"26ab","\u26BD\uFE0F":"26bd-fe0f","\u26BD":"26bd","\u26BE\uFE0F":"26be-fe0f","\u26BE":"26be","\u26C4\uFE0F":"26c4-fe0f","\u26C4":"26c4","\u26C5\uFE0F":"26c5-fe0f","\u26C5":"26c5","\u26D4\uFE0F":"26d4-fe0f","\u26D4":"26d4","\u26EA\uFE0F":"26ea-fe0f","\u26EA":"26ea","\u26F2\uFE0F":"26f2-fe0f","\u26F2":"26f2","\u26F3\uFE0F":"26f3-fe0f","\u26F3":"26f3","\u26F5\uFE0F":"26f5-fe0f","\u26F5":"26f5","\u26FA\uFE0F":"26fa-fe0f","\u26FA":"26fa","\u26FD\uFE0F":"26fd-fe0f","\u26FD":"26fd","\u2702\uFE0F":"2702-fe0f","\u2702":"2702","\u2708\uFE0F":"2708-fe0f","\u2708":"2708","\u2709\uFE0F":"2709-fe0f","\u2709":"2709","\u270C\uFE0F":"270c-fe0f","\u270C":"270c","\u270F\uFE0F":"270f-fe0f","\u270F":"270f","\u2712\uFE0F":"2712-fe0f","\u2712":"2712","\u2714\uFE0F":"2714-fe0f","\u2714":"2714","\u2716\uFE0F":"2716-fe0f","\u2716":"2716","\u2733\uFE0F":"2733-fe0f","\u2733":"2733","\u2734\uFE0F":"2734-fe0f","\u2734":"2734","\u2744\uFE0F":"2744-fe0f","\u2744":"2744","\u2747\uFE0F":"2747-fe0f","\u2747":"2747","\u2757\uFE0F":"2757-fe0f","\u2757":"2757","\u2764\uFE0F":"2764-fe0f","\u2764":"2764","\u27A1\uFE0F":"27a1-fe0f","\u27A1":"27a1","\u2934\uFE0F":"2934-fe0f","\u2934":"2934","\u2935\uFE0F":"2935-fe0f","\u2935":"2935","\u2B05\uFE0F":"2b05-fe0f","\u2B05":"2b05","\u2B06\uFE0F":"2b06-fe0f","\u2B06":"2b06","\u2B07\uFE0F":"2b07-fe0f","\u2B07":"2b07","\u2B1B\uFE0F":"2b1b-fe0f","\u2B1B":"2b1b","\u2B1C\uFE0F":"2b1c-fe0f","\u2B1C":"2b1c","\u2B50\uFE0F":"2b50-fe0f","\u2B50":"2b50","\u2B55\uFE0F":"2b55-fe0f","\u2B55":"2b55","\u3030\uFE0F":"3030-fe0f","\u3030":"3030","\u303D\uFE0F":"303d-fe0f","\u303D":"303d","\u3297\uFE0F":"3297-fe0f","\u3297":"3297","\u3299\uFE0F":"3299-fe0f","\u3299":"3299","\u271D\uFE0F":"271d-fe0f","\u271D":"271d","\u2328\uFE0F":"2328-fe0f","\u2328":"2328","\u270D\uFE0F":"270d-fe0f","\u270D":"270d","\u23CF\uFE0F":"23cf-fe0f","\u23CF":"23cf","\u23ED\uFE0F":"23ed-fe0f","\u23ED":"23ed","\u23EE\uFE0F":"23ee-fe0f","\u23EE":"23ee","\u23EF\uFE0F":"23ef-fe0f","\u23EF":"23ef","\u23F1\uFE0F":"23f1-fe0f","\u23F1":"23f1","\u23F2\uFE0F":"23f2-fe0f","\u23F2":"23f2","\u23F8\uFE0F":"23f8-fe0f","\u23F8":"23f8","\u23F9\uFE0F":"23f9-fe0f","\u23F9":"23f9","\u23FA\uFE0F":"23fa-fe0f","\u23FA":"23fa","\u2602\uFE0F":"2602-fe0f","\u2602":"2602","\u2603\uFE0F":"2603-fe0f","\u2603":"2603","\u2604\uFE0F":"2604-fe0f","\u2604":"2604","\u2618\uFE0F":"2618-fe0f","\u2618":"2618","\u2620\uFE0F":"2620-fe0f","\u2620":"2620","\u2622\uFE0F":"2622-fe0f","\u2622":"2622","\u2623\uFE0F":"2623-fe0f","\u2623":"2623","\u2626\uFE0F":"2626-fe0f","\u2626":"2626","\u262A\uFE0F":"262a-fe0f","\u262A":"262a","\u262E\uFE0F":"262e-fe0f","\u262E":"262e","\u262F\uFE0F":"262f-fe0f","\u262F":"262f","\u2638\uFE0F":"2638-fe0f","\u2638":"2638","\u2639\uFE0F":"2639-fe0f","\u2639":"2639","\u2692\uFE0F":"2692-fe0f","\u2692":"2692","\u2694\uFE0F":"2694-fe0f","\u2694":"2694","\u2696\uFE0F":"2696-fe0f","\u2696":"2696","\u2697\uFE0F":"2697-fe0f","\u2697":"2697","\u2699\uFE0F":"2699-fe0f","\u2699":"2699","\u269B\uFE0F":"269b-fe0f","\u269B":"269b","\u269C\uFE0F":"269c-fe0f","\u269C":"269c","\u26B0\uFE0F":"26b0-fe0f","\u26B0":"26b0","\u26B1\uFE0F":"26b1-fe0f","\u26B1":"26b1","\u26C8\uFE0F":"26c8-fe0f","\u26C8":"26c8","\u26CF\uFE0F":"26cf-fe0f","\u26CF":"26cf","\u26D1\uFE0F":"26d1-fe0f","\u26D1":"26d1","\u26D3\uFE0F":"26d3-fe0f","\u26D3":"26d3","\u26E9\uFE0F":"26e9-fe0f","\u26E9":"26e9","\u26F0\uFE0F":"26f0-fe0f","\u26F0":"26f0","\u26F1\uFE0F":"26f1-fe0f","\u26F1":"26f1","\u26F4\uFE0F":"26f4-fe0f","\u26F4":"26f4","\u26F7\uFE0F":"26f7-fe0f","\u26F7":"26f7","\u26F8\uFE0F":"26f8-fe0f","\u26F8":"26f8","\u26F9\uFE0F":"26f9-fe0f","\u26F9":"26f9","\u2721\uFE0F":"2721-fe0f","\u2721":"2721","\u2763\uFE0F":"2763-fe0f","\u2763":"2763","\uD83E\uDD49":"1f949","\uD83E\uDD48":"1f948","\uD83E\uDD47":"1f947","\uD83E\uDD3A":"1f93a","\uD83E\uDD45":"1f945","\uD83E\uDD3E":"1f93e","\uD83C\uDDFF":"1f1ff","\uD83E\uDD3D":"1f93d","\uD83E\uDD4B":"1f94b","\uD83E\uDD4A":"1f94a","\uD83E\uDD3C":"1f93c","\uD83E\uDD39":"1f939","\uD83E\uDD38":"1f938","\uD83D\uDEF6":"1f6f6","\uD83D\uDEF5":"1f6f5","\uD83D\uDEF4":"1f6f4","\uD83D\uDED2":"1f6d2","\uD83C\uDCCF":"1f0cf","\uD83C\uDD70":"1f170","\uD83C\uDD71":"1f171","\uD83C\uDD7E":"1f17e","\uD83D\uDED1":"1f6d1","\uD83C\uDD8E":"1f18e","\uD83C\uDD91":"1f191","\uD83C\uDDFE":"1f1fe","\uD83C\uDD92":"1f192","\uD83C\uDD93":"1f193","\uD83C\uDD94":"1f194","\uD83C\uDD95":"1f195","\uD83C\uDD96":"1f196","\uD83C\uDD97":"1f197","\uD83C\uDD98":"1f198","\uD83E\uDD44":"1f944","\uD83C\uDD99":"1f199","\uD83C\uDD9A":"1f19a","\uD83E\uDD42":"1f942","\uD83E\uDD43":"1f943","\uD83C\uDE01":"1f201","\uD83E\uDD59":"1f959","\uD83C\uDE32":"1f232","\uD83C\uDE33":"1f233","\uD83C\uDE34":"1f234","\uD83C\uDE35":"1f235","\uD83C\uDE36":"1f236","\uD83E\uDD58":"1f958","\uD83C\uDE38":"1f238","\uD83C\uDE39":"1f239","\uD83E\uDD57":"1f957","\uD83C\uDE3A":"1f23a","\uD83C\uDE50":"1f250","\uD83C\uDE51":"1f251","\uD83C\uDF00":"1f300","\uD83E\uDD56":"1f956","\uD83C\uDF01":"1f301","\uD83C\uDF02":"1f302","\uD83C\uDF03":"1f303","\uD83C\uDF04":"1f304","\uD83C\uDF05":"1f305","\uD83C\uDF06":"1f306","\uD83E\uDD55":"1f955","\uD83C\uDF07":"1f307","\uD83C\uDF08":"1f308","\uD83E\uDD54":"1f954","\uD83C\uDF09":"1f309","\uD83C\uDF0A":"1f30a","\uD83C\uDF0B":"1f30b","\uD83C\uDF0C":"1f30c","\uD83C\uDF0F":"1f30f","\uD83C\uDF11":"1f311","\uD83E\uDD53":"1f953","\uD83C\uDF13":"1f313","\uD83C\uDF14":"1f314","\uD83C\uDF15":"1f315","\uD83C\uDF19":"1f319","\uD83C\uDF1B":"1f31b","\uD83C\uDF1F":"1f31f","\uD83E\uDD52":"1f952","\uD83C\uDF20":"1f320","\uD83C\uDF30":"1f330","\uD83E\uDD51":"1f951","\uD83C\uDF31":"1f331","\uD83C\uDF34":"1f334","\uD83C\uDF35":"1f335","\uD83C\uDF37":"1f337","\uD83C\uDF38":"1f338","\uD83C\uDF39":"1f339","\uD83C\uDF3A":"1f33a","\uD83C\uDF3B":"1f33b","\uD83C\uDF3C":"1f33c","\uD83C\uDF3D":"1f33d","\uD83E\uDD50":"1f950","\uD83C\uDF3E":"1f33e","\uD83C\uDF3F":"1f33f","\uD83C\uDF40":"1f340","\uD83C\uDF41":"1f341","\uD83C\uDF42":"1f342","\uD83C\uDF43":"1f343","\uD83C\uDF44":"1f344","\uD83C\uDF45":"1f345","\uD83C\uDF46":"1f346","\uD83C\uDF47":"1f347","\uD83C\uDF48":"1f348","\uD83C\uDF49":"1f349","\uD83C\uDF4A":"1f34a","\uD83E\uDD40":"1f940","\uD83C\uDF4C":"1f34c","\uD83C\uDF4D":"1f34d","\uD83C\uDF4E":"1f34e","\uD83C\uDF4F":"1f34f","\uD83C\uDF51":"1f351","\uD83C\uDF52":"1f352","\uD83C\uDF53":"1f353","\uD83E\uDD8F":"1f98f","\uD83C\uDF54":"1f354","\uD83C\uDF55":"1f355","\uD83C\uDF56":"1f356","\uD83E\uDD8E":"1f98e","\uD83C\uDF57":"1f357","\uD83C\uDF58":"1f358","\uD83C\uDF59":"1f359","\uD83E\uDD8D":"1f98d","\uD83C\uDF5A":"1f35a","\uD83C\uDF5B":"1f35b","\uD83E\uDD8C":"1f98c","\uD83C\uDF5C":"1f35c","\uD83C\uDF5D":"1f35d","\uD83C\uDF5E":"1f35e","\uD83C\uDF5F":"1f35f","\uD83E\uDD8B":"1f98b","\uD83C\uDF60":"1f360","\uD83C\uDF61":"1f361","\uD83E\uDD8A":"1f98a","\uD83C\uDF62":"1f362","\uD83C\uDF63":"1f363","\uD83E\uDD89":"1f989","\uD83C\uDF64":"1f364","\uD83C\uDF65":"1f365","\uD83E\uDD88":"1f988","\uD83C\uDF66":"1f366","\uD83E\uDD87":"1f987","\uD83C\uDF67":"1f367","\uD83C\uDDFD":"1f1fd","\uD83C\uDF68":"1f368","\uD83E\uDD86":"1f986","\uD83C\uDF69":"1f369","\uD83E\uDD85":"1f985","\uD83C\uDF6A":"1f36a","\uD83D\uDDA4":"1f5a4","\uD83C\uDF6B":"1f36b","\uD83C\uDF6C":"1f36c","\uD83C\uDF6D":"1f36d","\uD83C\uDF6E":"1f36e","\uD83C\uDF6F":"1f36f","\uD83E\uDD1E":"1f91e","\uD83C\uDF70":"1f370","\uD83C\uDF71":"1f371","\uD83C\uDF72":"1f372","\uD83E\uDD1D":"1f91d","\uD83C\uDF73":"1f373","\uD83C\uDF74":"1f374","\uD83C\uDF75":"1f375","\uD83C\uDF76":"1f376","\uD83C\uDF77":"1f377","\uD83C\uDF78":"1f378","\uD83C\uDF79":"1f379","\uD83C\uDF7A":"1f37a","\uD83C\uDF7B":"1f37b","\uD83C\uDF80":"1f380","\uD83C\uDF81":"1f381","\uD83C\uDF82":"1f382","\uD83C\uDF83":"1f383","\uD83E\uDD1B":"1f91b","\uD83E\uDD1C":"1f91c","\uD83C\uDF84":"1f384","\uD83C\uDF85":"1f385","\uD83C\uDF86":"1f386","\uD83E\uDD1A":"1f91a","\uD83C\uDF87":"1f387","\uD83C\uDF88":"1f388","\uD83C\uDF89":"1f389","\uD83C\uDF8A":"1f38a","\uD83C\uDF8B":"1f38b","\uD83C\uDF8C":"1f38c","\uD83E\uDD19":"1f919","\uD83C\uDF8D":"1f38d","\uD83D\uDD7A":"1f57a","\uD83C\uDF8E":"1f38e","\uD83E\uDD33":"1f933","\uD83C\uDF8F":"1f38f","\uD83E\uDD30":"1f930","\uD83C\uDF90":"1f390","\uD83E\uDD26":"1f926","\uD83E\uDD37":"1f937","\uD83C\uDF91":"1f391","\uD83C\uDF92":"1f392","\uD83C\uDF93":"1f393","\uD83C\uDFA0":"1f3a0","\uD83C\uDFA1":"1f3a1","\uD83C\uDFA2":"1f3a2","\uD83C\uDFA3":"1f3a3","\uD83C\uDFA4":"1f3a4","\uD83C\uDFA5":"1f3a5","\uD83C\uDFA6":"1f3a6","\uD83C\uDFA7":"1f3a7","\uD83E\uDD36":"1f936","\uD83C\uDFA8":"1f3a8","\uD83E\uDD35":"1f935","\uD83C\uDFA9":"1f3a9","\uD83C\uDFAA":"1f3aa","\uD83E\uDD34":"1f934","\uD83C\uDFAB":"1f3ab","\uD83C\uDFAC":"1f3ac","\uD83C\uDFAD":"1f3ad","\uD83E\uDD27":"1f927","\uD83C\uDFAE":"1f3ae","\uD83C\uDFAF":"1f3af","\uD83C\uDFB0":"1f3b0","\uD83C\uDFB1":"1f3b1","\uD83C\uDFB2":"1f3b2","\uD83C\uDFB3":"1f3b3","\uD83C\uDFB4":"1f3b4","\uD83E\uDD25":"1f925","\uD83C\uDFB5":"1f3b5","\uD83C\uDFB6":"1f3b6","\uD83C\uDFB7":"1f3b7","\uD83E\uDD24":"1f924","\uD83C\uDFB8":"1f3b8","\uD83C\uDFB9":"1f3b9","\uD83C\uDFBA":"1f3ba","\uD83E\uDD23":"1f923","\uD83C\uDFBB":"1f3bb","\uD83C\uDFBC":"1f3bc","\uD83C\uDFBD":"1f3bd","\uD83E\uDD22":"1f922","\uD83C\uDFBE":"1f3be","\uD83C\uDFBF":"1f3bf","\uD83C\uDFC0":"1f3c0","\uD83C\uDFC1":"1f3c1","\uD83E\uDD21":"1f921","\uD83C\uDFC2":"1f3c2","\uD83C\uDFC3":"1f3c3","\uD83C\uDFC4":"1f3c4","\uD83C\uDFC6":"1f3c6","\uD83C\uDFC8":"1f3c8","\uD83C\uDFCA":"1f3ca","\uD83C\uDFE0":"1f3e0","\uD83C\uDFE1":"1f3e1","\uD83C\uDFE2":"1f3e2","\uD83C\uDFE3":"1f3e3","\uD83C\uDFE5":"1f3e5","\uD83C\uDFE6":"1f3e6","\uD83C\uDFE7":"1f3e7","\uD83C\uDFE8":"1f3e8","\uD83C\uDFE9":"1f3e9","\uD83C\uDFEA":"1f3ea","\uD83C\uDFEB":"1f3eb","\uD83C\uDFEC":"1f3ec","\uD83E\uDD20":"1f920","\uD83C\uDFED":"1f3ed","\uD83C\uDFEE":"1f3ee","\uD83C\uDFEF":"1f3ef","\uD83C\uDFF0":"1f3f0","\uD83D\uDC0C":"1f40c","\uD83D\uDC0D":"1f40d","\uD83D\uDC0E":"1f40e","\uD83D\uDC11":"1f411","\uD83D\uDC12":"1f412","\uD83D\uDC14":"1f414","\uD83D\uDC17":"1f417","\uD83D\uDC18":"1f418","\uD83D\uDC19":"1f419","\uD83D\uDC1A":"1f41a","\uD83D\uDC1B":"1f41b","\uD83D\uDC1C":"1f41c","\uD83D\uDC1D":"1f41d","\uD83D\uDC1E":"1f41e","\uD83D\uDC1F":"1f41f","\uD83D\uDC20":"1f420","\uD83D\uDC21":"1f421","\uD83D\uDC22":"1f422","\uD83D\uDC23":"1f423","\uD83D\uDC24":"1f424","\uD83D\uDC25":"1f425","\uD83D\uDC26":"1f426","\uD83D\uDC27":"1f427","\uD83D\uDC28":"1f428","\uD83D\uDC29":"1f429","\uD83D\uDC2B":"1f42b","\uD83D\uDC2C":"1f42c","\uD83D\uDC2D":"1f42d","\uD83D\uDC2E":"1f42e","\uD83D\uDC2F":"1f42f","\uD83D\uDC30":"1f430","\uD83D\uDC31":"1f431","\uD83D\uDC32":"1f432","\uD83D\uDC33":"1f433","\uD83D\uDC34":"1f434","\uD83D\uDC35":"1f435","\uD83D\uDC36":"1f436","\uD83D\uDC37":"1f437","\uD83D\uDC38":"1f438","\uD83D\uDC39":"1f439","\uD83D\uDC3A":"1f43a","\uD83D\uDC3B":"1f43b","\uD83D\uDC3C":"1f43c","\uD83D\uDC3D":"1f43d","\uD83D\uDC3E":"1f43e","\uD83D\uDC40":"1f440","\uD83D\uDC42":"1f442","\uD83D\uDC43":"1f443","\uD83D\uDC44":"1f444","\uD83D\uDC45":"1f445","\uD83D\uDC46":"1f446","\uD83D\uDC47":"1f447","\uD83D\uDC48":"1f448","\uD83D\uDC49":"1f449","\uD83D\uDC4A":"1f44a","\uD83D\uDC4B":"1f44b","\uD83D\uDC4C":"1f44c","\uD83D\uDC4D":"1f44d","\uD83D\uDC4E":"1f44e","\uD83D\uDC4F":"1f44f","\uD83D\uDC50":"1f450","\uD83D\uDC51":"1f451","\uD83D\uDC52":"1f452","\uD83D\uDC53":"1f453","\uD83D\uDC54":"1f454","\uD83D\uDC55":"1f455","\uD83D\uDC56":"1f456","\uD83D\uDC57":"1f457","\uD83D\uDC58":"1f458","\uD83D\uDC59":"1f459","\uD83D\uDC5A":"1f45a","\uD83D\uDC5B":"1f45b","\uD83D\uDC5C":"1f45c","\uD83D\uDC5D":"1f45d","\uD83D\uDC5E":"1f45e","\uD83D\uDC5F":"1f45f","\uD83D\uDC60":"1f460","\uD83D\uDC61":"1f461","\uD83D\uDC62":"1f462","\uD83D\uDC63":"1f463","\uD83D\uDC64":"1f464","\uD83D\uDC66":"1f466","\uD83D\uDC67":"1f467","\uD83D\uDC68":"1f468","\uD83D\uDC69":"1f469","\uD83D\uDC6A":"1f46a","\uD83D\uDC6B":"1f46b","\uD83D\uDC6E":"1f46e","\uD83D\uDC6F":"1f46f","\uD83D\uDC70":"1f470","\uD83D\uDC71":"1f471","\uD83D\uDC72":"1f472","\uD83D\uDC73":"1f473","\uD83D\uDC74":"1f474","\uD83D\uDC75":"1f475","\uD83D\uDC76":"1f476","\uD83D\uDC77":"1f477","\uD83D\uDC78":"1f478","\uD83D\uDC79":"1f479","\uD83D\uDC7A":"1f47a","\uD83D\uDC7B":"1f47b","\uD83D\uDC7C":"1f47c","\uD83D\uDC7D":"1f47d","\uD83D\uDC7E":"1f47e","\uD83D\uDC7F":"1f47f","\uD83D\uDC80":"1f480","\uD83D\uDCC7":"1f4c7","\uD83D\uDC81":"1f481","\uD83D\uDC82":"1f482","\uD83D\uDC83":"1f483","\uD83D\uDC84":"1f484","\uD83D\uDC85":"1f485","\uD83D\uDCD2":"1f4d2","\uD83D\uDC86":"1f486","\uD83D\uDCD3":"1f4d3","\uD83D\uDC87":"1f487","\uD83D\uDCD4":"1f4d4","\uD83D\uDC88":"1f488","\uD83D\uDCD5":"1f4d5","\uD83D\uDC89":"1f489","\uD83D\uDCD6":"1f4d6","\uD83D\uDC8A":"1f48a","\uD83D\uDCD7":"1f4d7","\uD83D\uDC8B":"1f48b","\uD83D\uDCD8":"1f4d8","\uD83D\uDC8C":"1f48c","\uD83D\uDCD9":"1f4d9","\uD83D\uDC8D":"1f48d","\uD83D\uDCDA":"1f4da","\uD83D\uDC8E":"1f48e","\uD83D\uDCDB":"1f4db","\uD83D\uDC8F":"1f48f","\uD83D\uDCDC":"1f4dc","\uD83D\uDC90":"1f490","\uD83D\uDCDD":"1f4dd","\uD83D\uDC91":"1f491","\uD83D\uDCDE":"1f4de","\uD83D\uDC92":"1f492","\uD83D\uDCDF":"1f4df","\uD83D\uDCE0":"1f4e0","\uD83D\uDC93":"1f493","\uD83D\uDCE1":"1f4e1","\uD83D\uDCE2":"1f4e2","\uD83D\uDC94":"1f494","\uD83D\uDCE3":"1f4e3","\uD83D\uDCE4":"1f4e4","\uD83D\uDC95":"1f495","\uD83D\uDCE5":"1f4e5","\uD83D\uDCE6":"1f4e6","\uD83D\uDC96":"1f496","\uD83D\uDCE7":"1f4e7","\uD83D\uDCE8":"1f4e8","\uD83D\uDC97":"1f497","\uD83D\uDCE9":"1f4e9","\uD83D\uDCEA":"1f4ea","\uD83D\uDC98":"1f498","\uD83D\uDCEB":"1f4eb","\uD83D\uDCEE":"1f4ee","\uD83D\uDC99":"1f499","\uD83D\uDCF0":"1f4f0","\uD83D\uDCF1":"1f4f1","\uD83D\uDC9A":"1f49a","\uD83D\uDCF2":"1f4f2","\uD83D\uDCF3":"1f4f3","\uD83D\uDC9B":"1f49b","\uD83D\uDCF4":"1f4f4","\uD83D\uDCF6":"1f4f6","\uD83D\uDC9C":"1f49c","\uD83D\uDCF7":"1f4f7","\uD83D\uDCF9":"1f4f9","\uD83D\uDC9D":"1f49d","\uD83D\uDCFA":"1f4fa","\uD83D\uDCFB":"1f4fb","\uD83D\uDC9E":"1f49e","\uD83D\uDCFC":"1f4fc","\uD83D\uDD03":"1f503","\uD83D\uDC9F":"1f49f","\uD83D\uDD0A":"1f50a","\uD83D\uDD0B":"1f50b","\uD83D\uDCA0":"1f4a0","\uD83D\uDD0C":"1f50c","\uD83D\uDD0D":"1f50d","\uD83D\uDCA1":"1f4a1","\uD83D\uDD0E":"1f50e","\uD83D\uDD0F":"1f50f","\uD83D\uDCA2":"1f4a2","\uD83D\uDD10":"1f510","\uD83D\uDD11":"1f511","\uD83D\uDCA3":"1f4a3","\uD83D\uDD12":"1f512","\uD83D\uDD13":"1f513","\uD83D\uDCA4":"1f4a4","\uD83D\uDD14":"1f514","\uD83D\uDD16":"1f516","\uD83D\uDCA5":"1f4a5","\uD83D\uDD17":"1f517","\uD83D\uDD18":"1f518","\uD83D\uDCA6":"1f4a6","\uD83D\uDD19":"1f519","\uD83D\uDD1A":"1f51a","\uD83D\uDCA7":"1f4a7","\uD83D\uDD1B":"1f51b","\uD83D\uDD1C":"1f51c","\uD83D\uDCA8":"1f4a8","\uD83D\uDD1D":"1f51d","\uD83D\uDD1E":"1f51e","\uD83D\uDCA9":"1f4a9","\uD83D\uDD1F":"1f51f","\uD83D\uDCAA":"1f4aa","\uD83D\uDD20":"1f520","\uD83D\uDD21":"1f521","\uD83D\uDCAB":"1f4ab","\uD83D\uDD22":"1f522","\uD83D\uDD23":"1f523","\uD83D\uDCAC":"1f4ac","\uD83D\uDD24":"1f524","\uD83D\uDD25":"1f525","\uD83D\uDCAE":"1f4ae","\uD83D\uDD26":"1f526","\uD83D\uDD27":"1f527","\uD83D\uDCAF":"1f4af","\uD83D\uDD28":"1f528","\uD83D\uDD29":"1f529","\uD83D\uDCB0":"1f4b0","\uD83D\uDD2A":"1f52a","\uD83D\uDD2B":"1f52b","\uD83D\uDCB1":"1f4b1","\uD83D\uDD2E":"1f52e","\uD83D\uDCB2":"1f4b2","\uD83D\uDD2F":"1f52f","\uD83D\uDCB3":"1f4b3","\uD83D\uDD30":"1f530","\uD83D\uDD31":"1f531","\uD83D\uDCB4":"1f4b4","\uD83D\uDD32":"1f532","\uD83D\uDD33":"1f533","\uD83D\uDCB5":"1f4b5","\uD83D\uDD34":"1f534","\uD83D\uDD35":"1f535","\uD83D\uDCB8":"1f4b8","\uD83D\uDD36":"1f536","\uD83D\uDD37":"1f537","\uD83D\uDCB9":"1f4b9","\uD83D\uDD38":"1f538","\uD83D\uDD39":"1f539","\uD83D\uDCBA":"1f4ba","\uD83D\uDD3A":"1f53a","\uD83D\uDD3B":"1f53b","\uD83D\uDCBB":"1f4bb","\uD83D\uDD3C":"1f53c","\uD83D\uDCBC":"1f4bc","\uD83D\uDD3D":"1f53d","\uD83D\uDD50":"1f550","\uD83D\uDCBD":"1f4bd","\uD83D\uDD51":"1f551","\uD83D\uDCBE":"1f4be","\uD83D\uDD52":"1f552","\uD83D\uDCBF":"1f4bf","\uD83D\uDD53":"1f553","\uD83D\uDCC0":"1f4c0","\uD83D\uDD54":"1f554","\uD83D\uDD55":"1f555","\uD83D\uDCC1":"1f4c1","\uD83D\uDD56":"1f556","\uD83D\uDD57":"1f557","\uD83D\uDCC2":"1f4c2","\uD83D\uDD58":"1f558","\uD83D\uDD59":"1f559","\uD83D\uDCC3":"1f4c3","\uD83D\uDD5A":"1f55a","\uD83D\uDD5B":"1f55b","\uD83D\uDCC4":"1f4c4","\uD83D\uDDFB":"1f5fb","\uD83D\uDDFC":"1f5fc","\uD83D\uDCC5":"1f4c5","\uD83D\uDDFD":"1f5fd","\uD83D\uDDFE":"1f5fe","\uD83D\uDCC6":"1f4c6","\uD83D\uDDFF":"1f5ff","\uD83D\uDE01":"1f601","\uD83D\uDE02":"1f602","\uD83D\uDE03":"1f603","\uD83D\uDCC8":"1f4c8","\uD83D\uDE04":"1f604","\uD83D\uDE05":"1f605","\uD83D\uDCC9":"1f4c9","\uD83D\uDE06":"1f606","\uD83D\uDE09":"1f609","\uD83D\uDCCA":"1f4ca","\uD83D\uDE0A":"1f60a","\uD83D\uDE0B":"1f60b","\uD83D\uDCCB":"1f4cb","\uD83D\uDE0C":"1f60c","\uD83D\uDE0D":"1f60d","\uD83D\uDCCC":"1f4cc","\uD83D\uDE0F":"1f60f","\uD83D\uDE12":"1f612","\uD83D\uDCCD":"1f4cd","\uD83D\uDE13":"1f613","\uD83D\uDE14":"1f614","\uD83D\uDCCE":"1f4ce","\uD83D\uDE16":"1f616","\uD83D\uDE18":"1f618","\uD83D\uDCCF":"1f4cf","\uD83D\uDE1A":"1f61a","\uD83D\uDE1C":"1f61c","\uD83D\uDCD0":"1f4d0","\uD83D\uDE1D":"1f61d","\uD83D\uDE1E":"1f61e","\uD83D\uDCD1":"1f4d1","\uD83D\uDE20":"1f620","\uD83D\uDE21":"1f621","\uD83D\uDE22":"1f622","\uD83D\uDE23":"1f623","\uD83D\uDE24":"1f624","\uD83D\uDE25":"1f625","\uD83D\uDE28":"1f628","\uD83D\uDE29":"1f629","\uD83D\uDE2A":"1f62a","\uD83D\uDE2B":"1f62b","\uD83D\uDE2D":"1f62d","\uD83D\uDE30":"1f630","\uD83D\uDE31":"1f631","\uD83D\uDE32":"1f632","\uD83D\uDE33":"1f633","\uD83D\uDE35":"1f635","\uD83D\uDE37":"1f637","\uD83D\uDE38":"1f638","\uD83D\uDE39":"1f639","\uD83D\uDE3A":"1f63a","\uD83D\uDE3B":"1f63b","\uD83D\uDE3C":"1f63c","\uD83D\uDE3D":"1f63d","\uD83D\uDE3E":"1f63e","\uD83D\uDE3F":"1f63f","\uD83D\uDE40":"1f640","\uD83D\uDE45":"1f645","\uD83D\uDE46":"1f646","\uD83D\uDE47":"1f647","\uD83D\uDE48":"1f648","\uD83D\uDE49":"1f649","\uD83D\uDE4A":"1f64a","\uD83D\uDE4B":"1f64b","\uD83D\uDE4C":"1f64c","\uD83D\uDE4D":"1f64d","\uD83D\uDE4E":"1f64e","\uD83D\uDE4F":"1f64f","\uD83D\uDE80":"1f680","\uD83D\uDE83":"1f683","\uD83D\uDE84":"1f684","\uD83D\uDE85":"1f685","\uD83D\uDE87":"1f687","\uD83D\uDE89":"1f689","\uD83D\uDE8C":"1f68c","\uD83D\uDE8F":"1f68f","\uD83D\uDE91":"1f691","\uD83D\uDE92":"1f692","\uD83D\uDE93":"1f693","\uD83D\uDE95":"1f695","\uD83D\uDE97":"1f697","\uD83D\uDE99":"1f699","\uD83D\uDE9A":"1f69a","\uD83D\uDEA2":"1f6a2","\uD83D\uDEA4":"1f6a4","\uD83D\uDEA5":"1f6a5","\uD83D\uDEA7":"1f6a7","\uD83D\uDEA8":"1f6a8","\uD83D\uDEA9":"1f6a9","\uD83D\uDEAA":"1f6aa","\uD83D\uDEAB":"1f6ab","\uD83D\uDEAC":"1f6ac","\uD83D\uDEAD":"1f6ad","\uD83D\uDEB2":"1f6b2","\uD83D\uDEB6":"1f6b6","\uD83D\uDEB9":"1f6b9","\uD83D\uDEBA":"1f6ba","\uD83D\uDEBB":"1f6bb","\uD83D\uDEBC":"1f6bc","\uD83D\uDEBD":"1f6bd","\uD83D\uDEBE":"1f6be","\uD83D\uDEC0":"1f6c0","\uD83E\uDD18":"1f918","\uD83D\uDE00":"1f600","\uD83D\uDE07":"1f607","\uD83D\uDE08":"1f608","\uD83D\uDE0E":"1f60e","\uD83D\uDE10":"1f610","\uD83D\uDE11":"1f611","\uD83D\uDE15":"1f615","\uD83D\uDE17":"1f617","\uD83D\uDE19":"1f619","\uD83D\uDE1B":"1f61b","\uD83D\uDE1F":"1f61f","\uD83D\uDE26":"1f626","\uD83D\uDE27":"1f627","\uD83D\uDE2C":"1f62c","\uD83D\uDE2E":"1f62e","\uD83D\uDE2F":"1f62f","\uD83D\uDE34":"1f634","\uD83D\uDE36":"1f636","\uD83D\uDE81":"1f681","\uD83D\uDE82":"1f682","\uD83D\uDE86":"1f686","\uD83D\uDE88":"1f688","\uD83D\uDE8A":"1f68a","\uD83D\uDE8D":"1f68d","\uD83D\uDE8E":"1f68e","\uD83D\uDE90":"1f690","\uD83D\uDE94":"1f694","\uD83D\uDE96":"1f696","\uD83D\uDE98":"1f698","\uD83D\uDE9B":"1f69b","\uD83D\uDE9C":"1f69c","\uD83D\uDE9D":"1f69d","\uD83D\uDE9E":"1f69e","\uD83D\uDE9F":"1f69f","\uD83D\uDEA0":"1f6a0","\uD83D\uDEA1":"1f6a1","\uD83D\uDEA3":"1f6a3","\uD83D\uDEA6":"1f6a6","\uD83D\uDEAE":"1f6ae","\uD83D\uDEAF":"1f6af","\uD83D\uDEB0":"1f6b0","\uD83D\uDEB1":"1f6b1","\uD83D\uDEB3":"1f6b3","\uD83D\uDEB4":"1f6b4","\uD83D\uDEB5":"1f6b5","\uD83D\uDEB7":"1f6b7","\uD83D\uDEB8":"1f6b8","\uD83D\uDEBF":"1f6bf","\uD83D\uDEC1":"1f6c1","\uD83D\uDEC2":"1f6c2","\uD83D\uDEC3":"1f6c3","\uD83D\uDEC4":"1f6c4","\uD83D\uDEC5":"1f6c5","\uD83C\uDF0D":"1f30d","\uD83C\uDF0E":"1f30e","\uD83C\uDF10":"1f310","\uD83C\uDF12":"1f312","\uD83C\uDF16":"1f316","\uD83C\uDF17":"1f317","\uD83C\uDF18":"1f318","\uD83C\uDF1A":"1f31a","\uD83C\uDF1C":"1f31c","\uD83C\uDF1D":"1f31d","\uD83C\uDF1E":"1f31e","\uD83C\uDF32":"1f332","\uD83C\uDF33":"1f333","\uD83C\uDF4B":"1f34b","\uD83C\uDF50":"1f350","\uD83C\uDF7C":"1f37c","\uD83C\uDFC7":"1f3c7","\uD83C\uDFC9":"1f3c9","\uD83C\uDFE4":"1f3e4","\uD83D\uDC00":"1f400","\uD83D\uDC01":"1f401","\uD83D\uDC02":"1f402","\uD83D\uDC03":"1f403","\uD83D\uDC04":"1f404","\uD83D\uDC05":"1f405","\uD83D\uDC06":"1f406","\uD83D\uDC07":"1f407","\uD83D\uDC08":"1f408","\uD83D\uDC09":"1f409","\uD83D\uDC0A":"1f40a","\uD83D\uDC0B":"1f40b","\uD83D\uDC0F":"1f40f","\uD83D\uDC10":"1f410","\uD83D\uDC13":"1f413","\uD83D\uDC15":"1f415","\uD83D\uDC16":"1f416","\uD83D\uDC2A":"1f42a","\uD83D\uDC65":"1f465","\uD83D\uDC6C":"1f46c","\uD83D\uDC6D":"1f46d","\uD83D\uDCAD":"1f4ad","\uD83D\uDCB6":"1f4b6","\uD83D\uDCB7":"1f4b7","\uD83D\uDCEC":"1f4ec","\uD83D\uDCED":"1f4ed","\uD83D\uDCEF":"1f4ef","\uD83D\uDCF5":"1f4f5","\uD83D\uDD00":"1f500","\uD83D\uDD01":"1f501","\uD83D\uDD02":"1f502","\uD83D\uDD04":"1f504","\uD83D\uDD05":"1f505","\uD83D\uDD06":"1f506","\uD83D\uDD07":"1f507","\uD83D\uDD09":"1f509","\uD83D\uDD15":"1f515","\uD83D\uDD2C":"1f52c","\uD83D\uDD2D":"1f52d","\uD83D\uDD5C":"1f55c","\uD83D\uDD5D":"1f55d","\uD83D\uDD5E":"1f55e","\uD83D\uDD5F":"1f55f","\uD83D\uDD60":"1f560","\uD83D\uDD61":"1f561","\uD83D\uDD62":"1f562","\uD83D\uDD63":"1f563","\uD83D\uDD64":"1f564","\uD83D\uDD65":"1f565","\uD83D\uDD66":"1f566","\uD83D\uDD67":"1f567","\uD83D\uDD08":"1f508","\uD83D\uDE8B":"1f68b","\uD83C\uDFC5":"1f3c5","\uD83C\uDFF4":"1f3f4","\uD83D\uDCF8":"1f4f8","\uD83D\uDECC":"1f6cc","\uD83D\uDD95":"1f595","\uD83D\uDD96":"1f596","\uD83D\uDE41":"1f641","\uD83D\uDE42":"1f642","\uD83D\uDEEB":"1f6eb","\uD83D\uDEEC":"1f6ec","\uD83C\uDFFB":"1f3fb","\uD83C\uDFFC":"1f3fc","\uD83C\uDFFD":"1f3fd","\uD83C\uDFFE":"1f3fe","\uD83C\uDFFF":"1f3ff","\uD83D\uDE43":"1f643","\uD83E\uDD11":"1f911","\uD83E\uDD13":"1f913","\uD83E\uDD17":"1f917","\uD83D\uDE44":"1f644","\uD83E\uDD14":"1f914","\uD83E\uDD10":"1f910","\uD83E\uDD12":"1f912","\uD83E\uDD15":"1f915","\uD83E\uDD16":"1f916","\uD83E\uDD81":"1f981","\uD83E\uDD84":"1f984","\uD83E\uDD82":"1f982","\uD83E\uDD80":"1f980","\uD83E\uDD83":"1f983","\uD83E\uDDC0":"1f9c0","\uD83C\uDF2D":"1f32d","\uD83C\uDF2E":"1f32e","\uD83C\uDF2F":"1f32f","\uD83C\uDF7F":"1f37f","\uD83C\uDF7E":"1f37e","\uD83C\uDFF9":"1f3f9","\uD83C\uDFFA":"1f3fa","\uD83D\uDED0":"1f6d0","\uD83D\uDD4B":"1f54b","\uD83D\uDD4C":"1f54c","\uD83D\uDD4D":"1f54d","\uD83D\uDD4E":"1f54e","\uD83D\uDCFF":"1f4ff","\uD83C\uDFCF":"1f3cf","\uD83C\uDFD0":"1f3d0","\uD83C\uDFD1":"1f3d1","\uD83C\uDFD2":"1f3d2","\uD83C\uDFD3":"1f3d3","\uD83C\uDFF8":"1f3f8","\uD83E\uDD41":"1f941","\uD83E\uDD90":"1f990","\uD83E\uDD91":"1f991","\uD83E\uDD5A":"1f95a","\uD83E\uDD5B":"1f95b","\uD83E\uDD5C":"1f95c","\uD83E\uDD5D":"1f95d","\uD83E\uDD5E":"1f95e","\uD83C\uDDFC":"1f1fc","\uD83C\uDDFB":"1f1fb","\uD83C\uDDFA":"1f1fa","\uD83C\uDDF9":"1f1f9","\uD83C\uDDF8":"1f1f8","\uD83C\uDDF7":"1f1f7","\uD83C\uDDF6":"1f1f6","\uD83C\uDDF5":"1f1f5","\uD83C\uDDF4":"1f1f4","\uD83C\uDDF3":"1f1f3","\uD83C\uDDF2":"1f1f2","\uD83C\uDDF1":"1f1f1","\uD83C\uDDF0":"1f1f0","\uD83C\uDDEF":"1f1ef","\uD83C\uDDEE":"1f1ee","\uD83C\uDDED":"1f1ed","\uD83C\uDDEC":"1f1ec","\uD83C\uDDEB":"1f1eb","\uD83C\uDDEA":"1f1ea","\uD83C\uDDE9":"1f1e9","\uD83C\uDDE8":"1f1e8","\uD83C\uDDE7":"1f1e7","\uD83C\uDDE6":"1f1e6","\u23E9":"23e9","\u23EA":"23ea","\u23EB":"23eb","\u23EC":"23ec","\u23F0":"23f0","\u23F3":"23f3","\u26CE":"26ce","\u2705":"2705","\u270A":"270a","\u270B":"270b","\u2728":"2728","\u274C":"274c","\u274E":"274e","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u27B0":"27b0","\u27BF":"27bf","\u00A9":"00a9","\u00AE":"00ae","\u203C":"203c","\u2049":"2049","\u2122":"2122","\u2139":"2139","\u2194":"2194","\u2195":"2195","\u2196":"2196","\u2197":"2197","\u2198":"2198","\u2199":"2199","\u21A9":"21a9","\u21AA":"21aa","\u231A":"231a","\u231B":"231b","\u24C2":"24c2","\u25AA":"25aa","\u25AB":"25ab","\u25B6":"25b6","\u25C0":"25c0","\u25FB":"25fb","\u25FC":"25fc","\u25FD":"25fd","\u25FE":"25fe","\u2600":"2600","\u2601":"2601","\u260E":"260e","\u2611":"2611","\u2614":"2614","\u2615":"2615","\u261D":"261d","\u263A":"263a","\u2648":"2648","\u2649":"2649","\u264A":"264a","\u264B":"264b","\u264C":"264c","\u264D":"264d","\u264E":"264e","\u264F":"264f","\u2650":"2650","\u2651":"2651","\u2652":"2652","\u2653":"2653","\u2660":"2660","\u2663":"2663","\u2665":"2665","\u2666":"2666","\u2668":"2668","\u267B":"267b","\u267F":"267f","\u2693":"2693","\u26A0":"26a0","\u26A1":"26a1","\u26AA":"26aa","\u26AB":"26ab","\u26BD":"26bd","\u26BE":"26be","\u26C4":"26c4","\u26C5":"26c5","\u26D4":"26d4","\u26EA":"26ea","\u26F2":"26f2","\u26F3":"26f3","\u26F5":"26f5","\u26FA":"26fa","\u26FD":"26fd","\u2702":"2702","\u2708":"2708","\u2709":"2709","\u270C":"270c","\u270F":"270f","\u2712":"2712","\u2714":"2714","\u2716":"2716","\u2733":"2733","\u2734":"2734","\u2744":"2744","\u2747":"2747","\u2757":"2757","\u2764":"2764","\u27A1":"27a1","\u2934":"2934","\u2935":"2935","\u2B05":"2b05","\u2B06":"2b06","\u2B07":"2b07","\u2B1B":"2b1b","\u2B1C":"2b1c","\u2B50":"2b50","\u2B55":"2b55","\u3030":"3030","\u303D":"303d","\u3297":"3297","\u3299":"3299","\uD83C\uDC04":"1f004","\uD83C\uDD7F":"1f17f","\uD83C\uDE02":"1f202","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F":"1f22f","\uD83C\uDE37":"1f237","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96":"1f396","\uD83C\uDF97":"1f397","\uD83C\uDF36":"1f336","\uD83C\uDF27":"1f327","\uD83C\uDF28":"1f328","\uD83C\uDF29":"1f329","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F":"1f43f","\uD83D\uDD77":"1f577","\uD83D\uDD78":"1f578","\uD83C\uDF21":"1f321","\uD83C\uDF99":"1f399","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD":"1f4fd","\u271D":"271d","\uD83D\uDD49":"1f549","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F":"1f56f","\uD83D\uDD70":"1f570","\uD83D\uDD73":"1f573","\uD83D\uDD76":"1f576","\uD83D\uDD79":"1f579","\uD83D\uDD87":"1f587","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8":"1f5a8","\u2328":"2328","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D":"1f37d","\uD83D\uDC41":"1f441","\uD83D\uDD74":"1f574","\uD83D\uDD75":"1f575","\u270D":"270d","\uD83D\uDD90":"1f590","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF":"1f3df","\uD83D\uDECB":"1f6cb","\uD83D\uDECD":"1f6cd","\uD83D\uDECE":"1f6ce","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3":"1f6f3","\u23CF":"23cf","\u23ED":"23ed","\u23EE":"23ee","\u23EF":"23ef","\u23F1":"23f1","\u23F2":"23f2","\u23F8":"23f8","\u23F9":"23f9","\u23FA":"23fa","\u2602":"2602","\u2603":"2603","\u2604":"2604","\u2618":"2618","\u2620":"2620","\u2622":"2622","\u2623":"2623","\u2626":"2626","\u262A":"262a","\u262E":"262e","\u262F":"262f","\u2638":"2638","\u2639":"2639","\u2692":"2692","\u2694":"2694","\u2696":"2696","\u2697":"2697","\u2699":"2699","\u269B":"269b","\u269C":"269c","\u26B0":"26b0","\u26B1":"26b1","\u26C8":"26c8","\u26CF":"26cf","\u26D1":"26d1","\u26D3":"26d3","\u26E9":"26e9","\u26F0":"26f0","\u26F1":"26f1","\u26F4":"26f4","\u26F7":"26f7","\u26F8":"26f8","\u26F9":"26f9","\u2721":"2721","\u2763":"2763","\uD83C\uDF24":"1f324","\uD83C\uDF25":"1f325","\uD83C\uDF26":"1f326","\uD83D\uDDB1":"1f5b1"};
- ns.imagePathPNG = 'https://cdn.jsdelivr.net/emojione/assets/png/';
- ns.imagePathSVG = 'https://cdn.jsdelivr.net/emojione/assets/svg/';
- ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
- ns.imageType = 'png'; // or svg
- ns.imageTitleTag = true; //set to false to remove title attribute from img tag
- ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
- ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
- ns.ascii = false; // change to true to convert ascii smileys
- ns.cacheBustParam = '?v=2.2.7'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
-
- ns.regShortNames = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")", "gi");
- ns.regAscii = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))", "g");
- ns.regUnicode = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi");
-
- ns.toImage = function(str) {
- str = ns.unicodeToImage(str);
- str = ns.shortnameToImage(str);
- return str;
- };
-
- // Uses toShort to transform all unicode into a standard shortname
- // then transforms the shortname into unicode
- // This is done for standardization when converting several unicode types
- ns.unifyUnicode = function(str) {
- str = ns.toShort(str);
- str = ns.shortnameToUnicode(str);
- return str;
- };
-
- // Replace shortnames (:wink:) with Ascii equivalents ( ;^) )
- // Useful for systems that dont support unicode nor images
- ns.shortnameToAscii = function(str) {
- var unicode,
- // something to keep in mind here is that array flip will destroy
- // half of the ascii text "emojis" because the unicode numbers are duplicated
- // this is ok for what it's being used for
- unicodeToAscii = ns.objectFlip(ns.asciiList);
-
- str = str.replace(ns.regShortNames, function(shortname) {
- if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
- // if the shortname doesnt exist just return the entire match
- return shortname;
- }
- else {
- unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
- if(typeof unicodeToAscii[unicode] !== 'undefined') {
- return unicodeToAscii[unicode];
- } else {
- return shortname;
- }
- }
- });
- return str;
- };
-
- // will output unicode from shortname
- // useful for sending emojis back to mobile devices
- ns.shortnameToUnicode = function(str) {
- // replace regular shortnames first
- var unicode,fname,uc;
- str = str.replace(ns.regShortNames, function(shortname) {
- if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
- // if the shortname doesnt exist just return the entire match
- return shortname;
- }
- unicode = ns.emojioneList[shortname].unicode[0].toUpperCase();
- fname = ns.emojioneList[shortname].fname;
- uc = ns.emojioneList[shortname].uc;
- //return ns.convert(unicode);
- return ns.convert(uc);
- });
-
- // if ascii smileys are turned on, then we'll replace them!
- if (ns.ascii) {
-
- str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
- if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
- // if the shortname doesnt exist just return the entire match
- return entire;
- }
-
- m3 = ns.unescapeHTML(m3);
- unicode = ns.asciiList[m3].toUpperCase();
- return m2+ns.convert(unicode);
- });
- }
-
- return str;
- };
-
- ns.shortnameToImage = function(str) {
- // replace regular shortnames first
- var replaceWith,unicode,alt,title;
- str = str.replace(ns.regShortNames, function(shortname) {
- if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
- // if the shortname doesnt exist just return the entire match
- return shortname;
- }
- else {
- unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
- title = ns.imageTitleTag ? 'title="'+shortname+'"' : '';
-
- // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
- alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : shortname;
-
- if(ns.imageType === 'png') {
- if(ns.sprites) {
- replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
- }
- else {
- replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
- }
- }
- else {
- // svg
- if(ns.sprites) {
- replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
- }
- else {
- replaceWith = '<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
- }
- }
-
- return replaceWith;
- }
- });
-
- // if ascii smileys are turned on, then we'll replace them!
- if (ns.ascii) {
-
- str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
- if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
- // if the ascii doesnt exist just return the entire match
- return entire;
- }
-
- m3 = ns.unescapeHTML(m3);
- unicode = ns.asciiList[m3];
- title = ns.imageTitleTag ? 'title="'+ns.escapeHTML(m3)+'"' : '';
-
- // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
- alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : ns.escapeHTML(m3);
-
- if(ns.imageType === 'png') {
- if(ns.sprites) {
- replaceWith = m2+'<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
- }
- else {
- replaceWith = m2+'<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
- }
- }
- else {
- // svg
- if(ns.sprites) {
- replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
- }
- else {
- replaceWith = m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
- }
- }
-
- return replaceWith;
- });
- }
-
- return str;
- };
-
- ns.unicodeToImage = function(str) {
-
- var replaceWith,unicode,short,fname,alt,title;
- var mappedUnicode = ns.mapUnicodeToShort();
- str = str.replace(ns.regUnicode, function(unicodeChar) {
- if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsEscapeMap)) ) {
- // if the unicodeChar doesnt exist just return the entire match
- return unicodeChar;
- }
- else {
- // get the unicode codepoint from the actual char
- unicode = ns.jsEscapeMap[unicodeChar];
-
- //then map to shortname and locate the filename
- short = mappedUnicode[unicode];
- fname = ns.emojioneList[short].fname;
-
- // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
- alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : short;
- title = ns.imageTitleTag ? 'title="'+short+'"' : '';
-
- if(ns.imageType === 'png') {
- if(ns.sprites) {
- replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
- }
- else {
- replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+fname+'.png'+ns.cacheBustParam+'"/>';
- }
- }
- else {
- // svg
- if(ns.sprites) {
- replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
- }
- else {
- replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathSVG+fname+'.svg'+ns.cacheBustParam+'"/>';
- }
- }
-
- return replaceWith;
- }
- });
-
- return str;
- };
-
- // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
- ns.toShort = function(str) {
- var find = ns.getUnicodeReplacementRegEx(),
- replacementList = ns.mapUnicodeCharactersToShort();
- return ns.replaceAll(str, find,replacementList);
- };
-
- // for converting unicode code points and code pairs to their respective characters
- ns.convert = function(unicode) {
- if(unicode.indexOf("-") > -1) {
- var parts = [];
- var s = unicode.split('-');
- for(var i = 0; i < s.length; i++) {
- var part = parseInt(s[i], 16);
- if (part >= 0x10000 && part <= 0x10FFFF) {
- var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
- var lo = ((part - 0x10000) % 0x400) + 0xDC00;
- part = (String.fromCharCode(hi) + String.fromCharCode(lo));
- }
- else {
- part = String.fromCharCode(part);
- }
- parts.push(part);
- }
- return parts.join('');
- }
- else {
- var s = parseInt(unicode, 16);
- if (s >= 0x10000 && s <= 0x10FFFF) {
- var hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
- var lo = ((s - 0x10000) % 0x400) + 0xDC00;
- return (String.fromCharCode(hi) + String.fromCharCode(lo));
- }
- else {
- return String.fromCharCode(s);
- }
- }
- };
-
- ns.escapeHTML = function (string) {
- var escaped = {
- '&' : '&amp;',
- '<' : '&lt;',
- '>' : '&gt;',
- '"' : '&quot;',
- '\'': '&#039;'
- };
-
- return string.replace(/[&<>"']/g, function (match) {
- return escaped[match];
- });
- };
- ns.unescapeHTML = function (string) {
- var unescaped = {
- '&amp;' : '&',
- '&#38;' : '&',
- '&#x26;' : '&',
- '&lt;' : '<',
- '&#60;' : '<',
- '&#x3C;' : '<',
- '&gt;' : '>',
- '&#62;' : '>',
- '&#x3E;' : '>',
- '&quot;' : '"',
- '&#34;' : '"',
- '&#x22;' : '"',
- '&apos;' : '\'',
- '&#39;' : '\'',
- '&#x27;' : '\''
- };
-
- return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/ig, function (match) {
- return unescaped[match];
- });
- };
-
- ns.mapEmojioneList = function (addToMapStorage) {
- for (var shortname in ns.emojioneList) {
- if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
- for (var i = 0, len = ns.emojioneList[shortname].unicode.length; i < len; i++) {
- var unicode = ns.emojioneList[shortname].unicode[i];
- addToMapStorage(unicode, shortname);
- }
- }
- };
-
- ns.mapUnicodeToShort = function() {
- if (!ns.memMapShortToUnicode) {
- ns.memMapShortToUnicode = {};
- ns.mapEmojioneList(function (unicode, shortname) {
- ns.memMapShortToUnicode[unicode] = shortname;
- });
- }
- return ns.memMapShortToUnicode;
- };
-
- ns.memoizeReplacement = function() {
- if (!ns.unicodeReplacementRegEx || !ns.memMapShortToUnicodeCharacters) {
- var unicodeList = [];
- ns.memMapShortToUnicodeCharacters = {};
- ns.mapEmojioneList(function (unicode, shortname) {
- var emojiCharacter = ns.convert(unicode);
- if(ns.emojioneList[shortname].isCanonical) {
- ns.memMapShortToUnicodeCharacters[emojiCharacter] = shortname;
- }
- unicodeList.push(emojiCharacter);
- });
- ns.unicodeReplacementRegEx = unicodeList.join('|');
- }
- };
-
- ns.mapUnicodeCharactersToShort = function() {
- ns.memoizeReplacement();
- return ns.memMapShortToUnicodeCharacters;
- };
-
- ns.getUnicodeReplacementRegEx = function() {
- ns.memoizeReplacement();
- return ns.unicodeReplacementRegEx;
- };
-
- //reverse an object
- ns.objectFlip = function (obj) {
- var key, tmp_obj = {};
-
- for (key in obj) {
- if (obj.hasOwnProperty(key)) {
- tmp_obj[obj[key]] = key;
- }
- }
-
- return tmp_obj;
- };
-
- ns.escapeRegExp = function(string) {
- return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g, "\\$&");
- };
-
- ns.replaceAll = function(string, find, replacementList) {
- var escapedFind = ns.escapeRegExp(find);
- var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")", "gi");
-
- // callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
- var replace = function(entire, m1) {
- return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replacementList[m1];
- };
-
- return string.replace(search,replace);
- };
-
-}(this.emojione = this.emojione || {}));
-if(typeof module === "object") module.exports = this.emojione; \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/lib/js/emojione.min.js b/build/js/jsxc/lib/emojione/lib/js/emojione.min.js
deleted file mode 100644
index 7336666..0000000
--- a/build/js/jsxc/lib/emojione/lib/js/emojione.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*! emojione 02-12-2016 */
-!function(a){a.emojioneList={":kiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!0},":couplekiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!1},":kiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!0},":couplekiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!1},":family_mmbb:":{unicode:["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],fname:"1f468-1f468-1f466-1f466",uc:"1f468-200d-1f468-200d-1f466-200d-1f466",isCanonical:!0},":family_mmgb:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],fname:"1f468-1f468-1f467-1f466",uc:"1f468-200d-1f468-200d-1f467-200d-1f466",isCanonical:!0},":family_mmgg:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],fname:"1f468-1f468-1f467-1f467",uc:"1f468-200d-1f468-200d-1f467-200d-1f467",isCanonical:!0},":family_mwbb:":{unicode:["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],fname:"1f468-1f469-1f466-1f466",uc:"1f468-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_mwgb:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],fname:"1f468-1f469-1f467-1f466",uc:"1f468-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_mwgg:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],fname:"1f468-1f469-1f467-1f467",uc:"1f468-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":family_wwbb:":{unicode:["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],fname:"1f469-1f469-1f466-1f466",uc:"1f469-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_wwgb:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],fname:"1f469-1f469-1f467-1f466",uc:"1f469-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_wwgg:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],fname:"1f469-1f469-1f467-1f467",uc:"1f469-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":couple_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!0},":couple_with_heart_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!1},":couple_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!0},":couple_with_heart_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!1},":family_mmb:":{unicode:["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],fname:"1f468-1f468-1f466",uc:"1f468-200d-1f468-200d-1f466",isCanonical:!0},":family_mmg:":{unicode:["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],fname:"1f468-1f468-1f467",uc:"1f468-200d-1f468-200d-1f467",isCanonical:!0},":family_mwg:":{unicode:["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],fname:"1f468-1f469-1f467",uc:"1f468-200d-1f469-200d-1f467",isCanonical:!0},":family_wwb:":{unicode:["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],fname:"1f469-1f469-1f466",uc:"1f469-200d-1f469-200d-1f466",isCanonical:!0},":family_wwg:":{unicode:["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],fname:"1f469-1f469-1f467",uc:"1f469-200d-1f469-200d-1f467",isCanonical:!0},":rainbow_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!0},":gay_pride_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!1},":eye_in_speech_bubble:":{unicode:["1f441-200d-1f5e8","1f441-1f5e8"],fname:"1f441-1f5e8",uc:"1f441-200d-1f5e8",isCanonical:!0},":hash:":{unicode:["0023-fe0f-20e3","0023-20e3"],fname:"0023-20e3",uc:"0023-20e3",isCanonical:!0},":zero:":{unicode:["0030-fe0f-20e3","0030-20e3"],fname:"0030-20e3",uc:"0030-20e3",isCanonical:!0},":one:":{unicode:["0031-fe0f-20e3","0031-20e3"],fname:"0031-20e3",uc:"0031-20e3",isCanonical:!0},":two:":{unicode:["0032-fe0f-20e3","0032-20e3"],fname:"0032-20e3",uc:"0032-20e3",isCanonical:!0},":three:":{unicode:["0033-fe0f-20e3","0033-20e3"],fname:"0033-20e3",uc:"0033-20e3",isCanonical:!0},":four:":{unicode:["0034-fe0f-20e3","0034-20e3"],fname:"0034-20e3",uc:"0034-20e3",isCanonical:!0},":five:":{unicode:["0035-fe0f-20e3","0035-20e3"],fname:"0035-20e3",uc:"0035-20e3",isCanonical:!0},":six:":{unicode:["0036-fe0f-20e3","0036-20e3"],fname:"0036-20e3",uc:"0036-20e3",isCanonical:!0},":seven:":{unicode:["0037-fe0f-20e3","0037-20e3"],fname:"0037-20e3",uc:"0037-20e3",isCanonical:!0},":eight:":{unicode:["0038-fe0f-20e3","0038-20e3"],fname:"0038-20e3",uc:"0038-20e3",isCanonical:!0},":nine:":{unicode:["0039-fe0f-20e3","0039-20e3"],fname:"0039-20e3",uc:"0039-20e3",isCanonical:!0},":asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!0},":keycap_asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!1},":handball_tone5:":{unicode:["1f93e-1f3ff"],fname:"1f93e-1f3ff",uc:"1f93e-1f3ff",isCanonical:!0},":handball_tone4:":{unicode:["1f93e-1f3fe"],fname:"1f93e-1f3fe",uc:"1f93e-1f3fe",isCanonical:!0},":handball_tone3:":{unicode:["1f93e-1f3fd"],fname:"1f93e-1f3fd",uc:"1f93e-1f3fd",isCanonical:!0},":handball_tone2:":{unicode:["1f93e-1f3fc"],fname:"1f93e-1f3fc",uc:"1f93e-1f3fc",isCanonical:!0},":handball_tone1:":{unicode:["1f93e-1f3fb"],fname:"1f93e-1f3fb",uc:"1f93e-1f3fb",isCanonical:!0},":water_polo_tone5:":{unicode:["1f93d-1f3ff"],fname:"1f93d-1f3ff",uc:"1f93d-1f3ff",isCanonical:!0},":water_polo_tone4:":{unicode:["1f93d-1f3fe"],fname:"1f93d-1f3fe",uc:"1f93d-1f3fe",isCanonical:!0},":water_polo_tone3:":{unicode:["1f93d-1f3fd"],fname:"1f93d-1f3fd",uc:"1f93d-1f3fd",isCanonical:!0},":water_polo_tone2:":{unicode:["1f93d-1f3fc"],fname:"1f93d-1f3fc",uc:"1f93d-1f3fc",isCanonical:!0},":water_polo_tone1:":{unicode:["1f93d-1f3fb"],fname:"1f93d-1f3fb",uc:"1f93d-1f3fb",isCanonical:!0},":wrestlers_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!0},":wrestling_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!1},":wrestlers_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!0},":wrestling_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!1},":wrestlers_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!0},":wrestling_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!1},":wrestlers_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!0},":wrestling_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!1},":wrestlers_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!0},":wrestling_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!1},":juggling_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!0},":juggler_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!1},":juggling_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!0},":juggler_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!1},":juggling_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!0},":juggler_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!1},":juggling_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!0},":juggler_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!1},":juggling_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!0},":juggler_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!1},":cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!0},":person_doing_cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!1},":cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!0},":person_doing_cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!1},":cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!0},":person_doing_cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!1},":cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!0},":person_doing_cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!1},":cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!0},":person_doing_cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!1},":shrug_tone5:":{unicode:["1f937-1f3ff"],fname:"1f937-1f3ff",uc:"1f937-1f3ff",isCanonical:!0},":shrug_tone4:":{unicode:["1f937-1f3fe"],fname:"1f937-1f3fe",uc:"1f937-1f3fe",isCanonical:!0},":shrug_tone3:":{unicode:["1f937-1f3fd"],fname:"1f937-1f3fd",uc:"1f937-1f3fd",isCanonical:!0},":shrug_tone2:":{unicode:["1f937-1f3fc"],fname:"1f937-1f3fc",uc:"1f937-1f3fc",isCanonical:!0},":shrug_tone1:":{unicode:["1f937-1f3fb"],fname:"1f937-1f3fb",uc:"1f937-1f3fb",isCanonical:!0},":mrs_claus_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!0},":mother_christmas_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!1},":mrs_claus_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!0},":mother_christmas_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!1},":mrs_claus_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!0},":mother_christmas_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!1},":mrs_claus_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!0},":mother_christmas_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!1},":mrs_claus_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!0},":mother_christmas_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!1},":man_in_tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!0},":tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!1},":man_in_tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!0},":tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!1},":man_in_tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!0},":tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!1},":man_in_tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!0},":tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!1},":man_in_tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!0},":tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!1},":prince_tone5:":{unicode:["1f934-1f3ff"],fname:"1f934-1f3ff",uc:"1f934-1f3ff",isCanonical:!0},":prince_tone4:":{unicode:["1f934-1f3fe"],fname:"1f934-1f3fe",uc:"1f934-1f3fe",isCanonical:!0},":prince_tone3:":{unicode:["1f934-1f3fd"],fname:"1f934-1f3fd",uc:"1f934-1f3fd",isCanonical:!0},":prince_tone2:":{unicode:["1f934-1f3fc"],fname:"1f934-1f3fc",uc:"1f934-1f3fc",isCanonical:!0},":prince_tone1:":{unicode:["1f934-1f3fb"],fname:"1f934-1f3fb",uc:"1f934-1f3fb",isCanonical:!0},":selfie_tone5:":{unicode:["1f933-1f3ff"],fname:"1f933-1f3ff",uc:"1f933-1f3ff",isCanonical:!0},":selfie_tone4:":{unicode:["1f933-1f3fe"],fname:"1f933-1f3fe",uc:"1f933-1f3fe",isCanonical:!0},":selfie_tone3:":{unicode:["1f933-1f3fd"],fname:"1f933-1f3fd",uc:"1f933-1f3fd",isCanonical:!0},":selfie_tone2:":{unicode:["1f933-1f3fc"],fname:"1f933-1f3fc",uc:"1f933-1f3fc",isCanonical:!0},":selfie_tone1:":{unicode:["1f933-1f3fb"],fname:"1f933-1f3fb",uc:"1f933-1f3fb",isCanonical:!0},":pregnant_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!0},":expecting_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!1},":pregnant_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!0},":expecting_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!1},":pregnant_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!0},":expecting_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!1},":pregnant_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!0},":expecting_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!1},":pregnant_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!0},":expecting_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!1},":face_palm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!0},":facepalm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!1},":face_palm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!0},":facepalm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!1},":face_palm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!0},":facepalm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!1},":face_palm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!0},":facepalm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!1},":face_palm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!0},":facepalm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!1},":fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!1},":fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!1},":fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!1},":fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!1},":fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!1},":handshake_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!0},":shaking_hands_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!1},":handshake_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!0},":shaking_hands_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!1},":handshake_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!0},":shaking_hands_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!1},":handshake_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!0},":shaking_hands_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!1},":handshake_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!0},":shaking_hands_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!1},":right_facing_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!0},":right_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!1},":right_facing_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!0},":right_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!1},":right_facing_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!0},":right_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!1},":right_facing_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!0},":right_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!1},":right_facing_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!0},":right_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!1},":left_facing_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!0},":left_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!1},":left_facing_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!0},":left_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!1},":left_facing_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!0},":left_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!1},":left_facing_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!0},":left_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!1},":left_facing_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!0},":left_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!1},":raised_back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!0},":back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!1},":raised_back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!0},":back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!1},":raised_back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!0},":back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!1},":raised_back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!0},":back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!1},":raised_back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!0},":back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!1},":call_me_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!0},":call_me_hand_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!1},":call_me_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!0},":call_me_hand_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!1},":call_me_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!0},":call_me_hand_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!1},":call_me_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!0},":call_me_hand_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!1},":call_me_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!0},":call_me_hand_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!1},":metal_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!0},":sign_of_the_horns_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!1},":metal_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!0},":sign_of_the_horns_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!1},":metal_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!0},":sign_of_the_horns_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!1},":metal_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!0},":sign_of_the_horns_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!1},":metal_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!0},":sign_of_the_horns_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!1},":bath_tone5:":{unicode:["1f6c0-1f3ff"],fname:"1f6c0-1f3ff",uc:"1f6c0-1f3ff",isCanonical:!0},":bath_tone4:":{unicode:["1f6c0-1f3fe"],fname:"1f6c0-1f3fe",uc:"1f6c0-1f3fe",isCanonical:!0},":bath_tone3:":{unicode:["1f6c0-1f3fd"],fname:"1f6c0-1f3fd",uc:"1f6c0-1f3fd",isCanonical:!0},":bath_tone2:":{unicode:["1f6c0-1f3fc"],fname:"1f6c0-1f3fc",uc:"1f6c0-1f3fc",isCanonical:!0},":bath_tone1:":{unicode:["1f6c0-1f3fb"],fname:"1f6c0-1f3fb",uc:"1f6c0-1f3fb",isCanonical:!0},":walking_tone5:":{unicode:["1f6b6-1f3ff"],fname:"1f6b6-1f3ff",uc:"1f6b6-1f3ff",isCanonical:!0},":walking_tone4:":{unicode:["1f6b6-1f3fe"],fname:"1f6b6-1f3fe",uc:"1f6b6-1f3fe",isCanonical:!0},":walking_tone3:":{unicode:["1f6b6-1f3fd"],fname:"1f6b6-1f3fd",uc:"1f6b6-1f3fd",isCanonical:!0},":walking_tone2:":{unicode:["1f6b6-1f3fc"],fname:"1f6b6-1f3fc",uc:"1f6b6-1f3fc",isCanonical:!0},":walking_tone1:":{unicode:["1f6b6-1f3fb"],fname:"1f6b6-1f3fb",uc:"1f6b6-1f3fb",isCanonical:!0},":mountain_bicyclist_tone5:":{unicode:["1f6b5-1f3ff"],fname:"1f6b5-1f3ff",uc:"1f6b5-1f3ff",isCanonical:!0},":mountain_bicyclist_tone4:":{unicode:["1f6b5-1f3fe"],fname:"1f6b5-1f3fe",uc:"1f6b5-1f3fe",isCanonical:!0},":mountain_bicyclist_tone3:":{unicode:["1f6b5-1f3fd"],fname:"1f6b5-1f3fd",uc:"1f6b5-1f3fd",isCanonical:!0},":mountain_bicyclist_tone2:":{unicode:["1f6b5-1f3fc"],fname:"1f6b5-1f3fc",uc:"1f6b5-1f3fc",isCanonical:!0},":mountain_bicyclist_tone1:":{unicode:["1f6b5-1f3fb"],fname:"1f6b5-1f3fb",uc:"1f6b5-1f3fb",isCanonical:!0},":bicyclist_tone5:":{unicode:["1f6b4-1f3ff"],fname:"1f6b4-1f3ff",uc:"1f6b4-1f3ff",isCanonical:!0},":bicyclist_tone4:":{unicode:["1f6b4-1f3fe"],fname:"1f6b4-1f3fe",uc:"1f6b4-1f3fe",isCanonical:!0},":bicyclist_tone3:":{unicode:["1f6b4-1f3fd"],fname:"1f6b4-1f3fd",uc:"1f6b4-1f3fd",isCanonical:!0},":bicyclist_tone2:":{unicode:["1f6b4-1f3fc"],fname:"1f6b4-1f3fc",uc:"1f6b4-1f3fc",isCanonical:!0},":bicyclist_tone1:":{unicode:["1f6b4-1f3fb"],fname:"1f6b4-1f3fb",uc:"1f6b4-1f3fb",isCanonical:!0},":rowboat_tone5:":{unicode:["1f6a3-1f3ff"],fname:"1f6a3-1f3ff",uc:"1f6a3-1f3ff",isCanonical:!0},":rowboat_tone4:":{unicode:["1f6a3-1f3fe"],fname:"1f6a3-1f3fe",uc:"1f6a3-1f3fe",isCanonical:!0},":rowboat_tone3:":{unicode:["1f6a3-1f3fd"],fname:"1f6a3-1f3fd",uc:"1f6a3-1f3fd",isCanonical:!0},":rowboat_tone2:":{unicode:["1f6a3-1f3fc"],fname:"1f6a3-1f3fc",uc:"1f6a3-1f3fc",isCanonical:!0},":rowboat_tone1:":{unicode:["1f6a3-1f3fb"],fname:"1f6a3-1f3fb",uc:"1f6a3-1f3fb",isCanonical:!0},":pray_tone5:":{unicode:["1f64f-1f3ff"],fname:"1f64f-1f3ff",uc:"1f64f-1f3ff",isCanonical:!0},":pray_tone4:":{unicode:["1f64f-1f3fe"],fname:"1f64f-1f3fe",uc:"1f64f-1f3fe",isCanonical:!0},":pray_tone3:":{unicode:["1f64f-1f3fd"],fname:"1f64f-1f3fd",uc:"1f64f-1f3fd",isCanonical:!0},":pray_tone2:":{unicode:["1f64f-1f3fc"],fname:"1f64f-1f3fc",uc:"1f64f-1f3fc",isCanonical:!0},":pray_tone1:":{unicode:["1f64f-1f3fb"],fname:"1f64f-1f3fb",uc:"1f64f-1f3fb",isCanonical:!0},":person_with_pouting_face_tone5:":{unicode:["1f64e-1f3ff"],fname:"1f64e-1f3ff",uc:"1f64e-1f3ff",isCanonical:!0},":person_with_pouting_face_tone4:":{unicode:["1f64e-1f3fe"],fname:"1f64e-1f3fe",uc:"1f64e-1f3fe",isCanonical:!0},":person_with_pouting_face_tone3:":{unicode:["1f64e-1f3fd"],fname:"1f64e-1f3fd",uc:"1f64e-1f3fd",isCanonical:!0},":person_with_pouting_face_tone2:":{unicode:["1f64e-1f3fc"],fname:"1f64e-1f3fc",uc:"1f64e-1f3fc",isCanonical:!0},":person_with_pouting_face_tone1:":{unicode:["1f64e-1f3fb"],fname:"1f64e-1f3fb",uc:"1f64e-1f3fb",isCanonical:!0},":person_frowning_tone5:":{unicode:["1f64d-1f3ff"],fname:"1f64d-1f3ff",uc:"1f64d-1f3ff",isCanonical:!0},":person_frowning_tone4:":{unicode:["1f64d-1f3fe"],fname:"1f64d-1f3fe",uc:"1f64d-1f3fe",isCanonical:!0},":person_frowning_tone3:":{unicode:["1f64d-1f3fd"],fname:"1f64d-1f3fd",uc:"1f64d-1f3fd",isCanonical:!0},":person_frowning_tone2:":{unicode:["1f64d-1f3fc"],fname:"1f64d-1f3fc",uc:"1f64d-1f3fc",isCanonical:!0},":person_frowning_tone1:":{unicode:["1f64d-1f3fb"],fname:"1f64d-1f3fb",uc:"1f64d-1f3fb",isCanonical:!0},":raised_hands_tone5:":{unicode:["1f64c-1f3ff"],fname:"1f64c-1f3ff",uc:"1f64c-1f3ff",isCanonical:!0},":raised_hands_tone4:":{unicode:["1f64c-1f3fe"],fname:"1f64c-1f3fe",uc:"1f64c-1f3fe",isCanonical:!0},":raised_hands_tone3:":{unicode:["1f64c-1f3fd"],fname:"1f64c-1f3fd",uc:"1f64c-1f3fd",isCanonical:!0},":raised_hands_tone2:":{unicode:["1f64c-1f3fc"],fname:"1f64c-1f3fc",uc:"1f64c-1f3fc",isCanonical:!0},":raised_hands_tone1:":{unicode:["1f64c-1f3fb"],fname:"1f64c-1f3fb",uc:"1f64c-1f3fb",isCanonical:!0},":raising_hand_tone5:":{unicode:["1f64b-1f3ff"],fname:"1f64b-1f3ff",uc:"1f64b-1f3ff",isCanonical:!0},":raising_hand_tone4:":{unicode:["1f64b-1f3fe"],fname:"1f64b-1f3fe",uc:"1f64b-1f3fe",isCanonical:!0},":raising_hand_tone3:":{unicode:["1f64b-1f3fd"],fname:"1f64b-1f3fd",uc:"1f64b-1f3fd",isCanonical:!0},":raising_hand_tone2:":{unicode:["1f64b-1f3fc"],fname:"1f64b-1f3fc",uc:"1f64b-1f3fc",isCanonical:!0},":raising_hand_tone1:":{unicode:["1f64b-1f3fb"],fname:"1f64b-1f3fb",uc:"1f64b-1f3fb",isCanonical:!0},":bow_tone5:":{unicode:["1f647-1f3ff"],fname:"1f647-1f3ff",uc:"1f647-1f3ff",isCanonical:!0},":bow_tone4:":{unicode:["1f647-1f3fe"],fname:"1f647-1f3fe",uc:"1f647-1f3fe",isCanonical:!0},":bow_tone3:":{unicode:["1f647-1f3fd"],fname:"1f647-1f3fd",uc:"1f647-1f3fd",isCanonical:!0},":bow_tone2:":{unicode:["1f647-1f3fc"],fname:"1f647-1f3fc",uc:"1f647-1f3fc",isCanonical:!0},":bow_tone1:":{unicode:["1f647-1f3fb"],fname:"1f647-1f3fb",uc:"1f647-1f3fb",isCanonical:!0},":ok_woman_tone5:":{unicode:["1f646-1f3ff"],fname:"1f646-1f3ff",uc:"1f646-1f3ff",isCanonical:!0},":ok_woman_tone4:":{unicode:["1f646-1f3fe"],fname:"1f646-1f3fe",uc:"1f646-1f3fe",isCanonical:!0},":ok_woman_tone3:":{unicode:["1f646-1f3fd"],fname:"1f646-1f3fd",uc:"1f646-1f3fd",isCanonical:!0},":ok_woman_tone2:":{unicode:["1f646-1f3fc"],fname:"1f646-1f3fc",uc:"1f646-1f3fc",isCanonical:!0},":ok_woman_tone1:":{unicode:["1f646-1f3fb"],fname:"1f646-1f3fb",uc:"1f646-1f3fb",isCanonical:!0},":no_good_tone5:":{unicode:["1f645-1f3ff"],fname:"1f645-1f3ff",uc:"1f645-1f3ff",isCanonical:!0},":no_good_tone4:":{unicode:["1f645-1f3fe"],fname:"1f645-1f3fe",uc:"1f645-1f3fe",isCanonical:!0},":no_good_tone3:":{unicode:["1f645-1f3fd"],fname:"1f645-1f3fd",uc:"1f645-1f3fd",isCanonical:!0},":no_good_tone2:":{unicode:["1f645-1f3fc"],fname:"1f645-1f3fc",uc:"1f645-1f3fc",isCanonical:!0},":no_good_tone1:":{unicode:["1f645-1f3fb"],fname:"1f645-1f3fb",uc:"1f645-1f3fb",isCanonical:!0},":vulcan_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!1},":vulcan_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!1},":vulcan_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!1},":vulcan_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!1},":vulcan_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!1},":middle_finger_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!1},":middle_finger_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!1},":middle_finger_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!1},":middle_finger_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!1},":middle_finger_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!1},":hand_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!0},":raised_hand_with_fingers_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!1},":hand_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!0},":raised_hand_with_fingers_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!1},":hand_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!0},":raised_hand_with_fingers_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!1},":hand_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!0},":raised_hand_with_fingers_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!1},":hand_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!0},":raised_hand_with_fingers_splayed_tone1:":{
-unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!1},":man_dancing_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!0},":male_dancer_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!1},":man_dancing_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!0},":male_dancer_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!1},":man_dancing_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!0},":male_dancer_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!1},":man_dancing_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!0},":male_dancer_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!1},":man_dancing_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!0},":male_dancer_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!1},":spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!0},":sleuth_or_spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!1},":spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!0},":sleuth_or_spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!1},":spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!0},":sleuth_or_spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!1},":spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!0},":sleuth_or_spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!1},":spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!0},":sleuth_or_spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!1},":muscle_tone5:":{unicode:["1f4aa-1f3ff"],fname:"1f4aa-1f3ff",uc:"1f4aa-1f3ff",isCanonical:!0},":muscle_tone4:":{unicode:["1f4aa-1f3fe"],fname:"1f4aa-1f3fe",uc:"1f4aa-1f3fe",isCanonical:!0},":muscle_tone3:":{unicode:["1f4aa-1f3fd"],fname:"1f4aa-1f3fd",uc:"1f4aa-1f3fd",isCanonical:!0},":muscle_tone2:":{unicode:["1f4aa-1f3fc"],fname:"1f4aa-1f3fc",uc:"1f4aa-1f3fc",isCanonical:!0},":muscle_tone1:":{unicode:["1f4aa-1f3fb"],fname:"1f4aa-1f3fb",uc:"1f4aa-1f3fb",isCanonical:!0},":haircut_tone5:":{unicode:["1f487-1f3ff"],fname:"1f487-1f3ff",uc:"1f487-1f3ff",isCanonical:!0},":haircut_tone4:":{unicode:["1f487-1f3fe"],fname:"1f487-1f3fe",uc:"1f487-1f3fe",isCanonical:!0},":haircut_tone3:":{unicode:["1f487-1f3fd"],fname:"1f487-1f3fd",uc:"1f487-1f3fd",isCanonical:!0},":haircut_tone2:":{unicode:["1f487-1f3fc"],fname:"1f487-1f3fc",uc:"1f487-1f3fc",isCanonical:!0},":haircut_tone1:":{unicode:["1f487-1f3fb"],fname:"1f487-1f3fb",uc:"1f487-1f3fb",isCanonical:!0},":massage_tone5:":{unicode:["1f486-1f3ff"],fname:"1f486-1f3ff",uc:"1f486-1f3ff",isCanonical:!0},":massage_tone4:":{unicode:["1f486-1f3fe"],fname:"1f486-1f3fe",uc:"1f486-1f3fe",isCanonical:!0},":massage_tone3:":{unicode:["1f486-1f3fd"],fname:"1f486-1f3fd",uc:"1f486-1f3fd",isCanonical:!0},":massage_tone2:":{unicode:["1f486-1f3fc"],fname:"1f486-1f3fc",uc:"1f486-1f3fc",isCanonical:!0},":massage_tone1:":{unicode:["1f486-1f3fb"],fname:"1f486-1f3fb",uc:"1f486-1f3fb",isCanonical:!0},":nail_care_tone5:":{unicode:["1f485-1f3ff"],fname:"1f485-1f3ff",uc:"1f485-1f3ff",isCanonical:!0},":nail_care_tone4:":{unicode:["1f485-1f3fe"],fname:"1f485-1f3fe",uc:"1f485-1f3fe",isCanonical:!0},":nail_care_tone3:":{unicode:["1f485-1f3fd"],fname:"1f485-1f3fd",uc:"1f485-1f3fd",isCanonical:!0},":nail_care_tone2:":{unicode:["1f485-1f3fc"],fname:"1f485-1f3fc",uc:"1f485-1f3fc",isCanonical:!0},":nail_care_tone1:":{unicode:["1f485-1f3fb"],fname:"1f485-1f3fb",uc:"1f485-1f3fb",isCanonical:!0},":dancer_tone5:":{unicode:["1f483-1f3ff"],fname:"1f483-1f3ff",uc:"1f483-1f3ff",isCanonical:!0},":dancer_tone4:":{unicode:["1f483-1f3fe"],fname:"1f483-1f3fe",uc:"1f483-1f3fe",isCanonical:!0},":dancer_tone3:":{unicode:["1f483-1f3fd"],fname:"1f483-1f3fd",uc:"1f483-1f3fd",isCanonical:!0},":dancer_tone2:":{unicode:["1f483-1f3fc"],fname:"1f483-1f3fc",uc:"1f483-1f3fc",isCanonical:!0},":dancer_tone1:":{unicode:["1f483-1f3fb"],fname:"1f483-1f3fb",uc:"1f483-1f3fb",isCanonical:!0},":guardsman_tone5:":{unicode:["1f482-1f3ff"],fname:"1f482-1f3ff",uc:"1f482-1f3ff",isCanonical:!0},":guardsman_tone4:":{unicode:["1f482-1f3fe"],fname:"1f482-1f3fe",uc:"1f482-1f3fe",isCanonical:!0},":guardsman_tone3:":{unicode:["1f482-1f3fd"],fname:"1f482-1f3fd",uc:"1f482-1f3fd",isCanonical:!0},":guardsman_tone2:":{unicode:["1f482-1f3fc"],fname:"1f482-1f3fc",uc:"1f482-1f3fc",isCanonical:!0},":guardsman_tone1:":{unicode:["1f482-1f3fb"],fname:"1f482-1f3fb",uc:"1f482-1f3fb",isCanonical:!0},":information_desk_person_tone5:":{unicode:["1f481-1f3ff"],fname:"1f481-1f3ff",uc:"1f481-1f3ff",isCanonical:!0},":information_desk_person_tone4:":{unicode:["1f481-1f3fe"],fname:"1f481-1f3fe",uc:"1f481-1f3fe",isCanonical:!0},":information_desk_person_tone3:":{unicode:["1f481-1f3fd"],fname:"1f481-1f3fd",uc:"1f481-1f3fd",isCanonical:!0},":information_desk_person_tone2:":{unicode:["1f481-1f3fc"],fname:"1f481-1f3fc",uc:"1f481-1f3fc",isCanonical:!0},":information_desk_person_tone1:":{unicode:["1f481-1f3fb"],fname:"1f481-1f3fb",uc:"1f481-1f3fb",isCanonical:!0},":angel_tone5:":{unicode:["1f47c-1f3ff"],fname:"1f47c-1f3ff",uc:"1f47c-1f3ff",isCanonical:!0},":angel_tone4:":{unicode:["1f47c-1f3fe"],fname:"1f47c-1f3fe",uc:"1f47c-1f3fe",isCanonical:!0},":angel_tone3:":{unicode:["1f47c-1f3fd"],fname:"1f47c-1f3fd",uc:"1f47c-1f3fd",isCanonical:!0},":angel_tone2:":{unicode:["1f47c-1f3fc"],fname:"1f47c-1f3fc",uc:"1f47c-1f3fc",isCanonical:!0},":angel_tone1:":{unicode:["1f47c-1f3fb"],fname:"1f47c-1f3fb",uc:"1f47c-1f3fb",isCanonical:!0},":princess_tone5:":{unicode:["1f478-1f3ff"],fname:"1f478-1f3ff",uc:"1f478-1f3ff",isCanonical:!0},":princess_tone4:":{unicode:["1f478-1f3fe"],fname:"1f478-1f3fe",uc:"1f478-1f3fe",isCanonical:!0},":princess_tone3:":{unicode:["1f478-1f3fd"],fname:"1f478-1f3fd",uc:"1f478-1f3fd",isCanonical:!0},":princess_tone2:":{unicode:["1f478-1f3fc"],fname:"1f478-1f3fc",uc:"1f478-1f3fc",isCanonical:!0},":princess_tone1:":{unicode:["1f478-1f3fb"],fname:"1f478-1f3fb",uc:"1f478-1f3fb",isCanonical:!0},":construction_worker_tone5:":{unicode:["1f477-1f3ff"],fname:"1f477-1f3ff",uc:"1f477-1f3ff",isCanonical:!0},":construction_worker_tone4:":{unicode:["1f477-1f3fe"],fname:"1f477-1f3fe",uc:"1f477-1f3fe",isCanonical:!0},":construction_worker_tone3:":{unicode:["1f477-1f3fd"],fname:"1f477-1f3fd",uc:"1f477-1f3fd",isCanonical:!0},":construction_worker_tone2:":{unicode:["1f477-1f3fc"],fname:"1f477-1f3fc",uc:"1f477-1f3fc",isCanonical:!0},":construction_worker_tone1:":{unicode:["1f477-1f3fb"],fname:"1f477-1f3fb",uc:"1f477-1f3fb",isCanonical:!0},":baby_tone5:":{unicode:["1f476-1f3ff"],fname:"1f476-1f3ff",uc:"1f476-1f3ff",isCanonical:!0},":baby_tone4:":{unicode:["1f476-1f3fe"],fname:"1f476-1f3fe",uc:"1f476-1f3fe",isCanonical:!0},":baby_tone3:":{unicode:["1f476-1f3fd"],fname:"1f476-1f3fd",uc:"1f476-1f3fd",isCanonical:!0},":baby_tone2:":{unicode:["1f476-1f3fc"],fname:"1f476-1f3fc",uc:"1f476-1f3fc",isCanonical:!0},":baby_tone1:":{unicode:["1f476-1f3fb"],fname:"1f476-1f3fb",uc:"1f476-1f3fb",isCanonical:!0},":older_woman_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!0},":grandma_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!1},":older_woman_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!0},":grandma_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!1},":older_woman_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!0},":grandma_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!1},":older_woman_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!0},":grandma_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!1},":older_woman_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!0},":grandma_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!1},":older_man_tone5:":{unicode:["1f474-1f3ff"],fname:"1f474-1f3ff",uc:"1f474-1f3ff",isCanonical:!0},":older_man_tone4:":{unicode:["1f474-1f3fe"],fname:"1f474-1f3fe",uc:"1f474-1f3fe",isCanonical:!0},":older_man_tone3:":{unicode:["1f474-1f3fd"],fname:"1f474-1f3fd",uc:"1f474-1f3fd",isCanonical:!0},":older_man_tone2:":{unicode:["1f474-1f3fc"],fname:"1f474-1f3fc",uc:"1f474-1f3fc",isCanonical:!0},":older_man_tone1:":{unicode:["1f474-1f3fb"],fname:"1f474-1f3fb",uc:"1f474-1f3fb",isCanonical:!0},":man_with_turban_tone5:":{unicode:["1f473-1f3ff"],fname:"1f473-1f3ff",uc:"1f473-1f3ff",isCanonical:!0},":man_with_turban_tone4:":{unicode:["1f473-1f3fe"],fname:"1f473-1f3fe",uc:"1f473-1f3fe",isCanonical:!0},":man_with_turban_tone3:":{unicode:["1f473-1f3fd"],fname:"1f473-1f3fd",uc:"1f473-1f3fd",isCanonical:!0},":man_with_turban_tone2:":{unicode:["1f473-1f3fc"],fname:"1f473-1f3fc",uc:"1f473-1f3fc",isCanonical:!0},":man_with_turban_tone1:":{unicode:["1f473-1f3fb"],fname:"1f473-1f3fb",uc:"1f473-1f3fb",isCanonical:!0},":man_with_gua_pi_mao_tone5:":{unicode:["1f472-1f3ff"],fname:"1f472-1f3ff",uc:"1f472-1f3ff",isCanonical:!0},":man_with_gua_pi_mao_tone4:":{unicode:["1f472-1f3fe"],fname:"1f472-1f3fe",uc:"1f472-1f3fe",isCanonical:!0},":man_with_gua_pi_mao_tone3:":{unicode:["1f472-1f3fd"],fname:"1f472-1f3fd",uc:"1f472-1f3fd",isCanonical:!0},":man_with_gua_pi_mao_tone2:":{unicode:["1f472-1f3fc"],fname:"1f472-1f3fc",uc:"1f472-1f3fc",isCanonical:!0},":man_with_gua_pi_mao_tone1:":{unicode:["1f472-1f3fb"],fname:"1f472-1f3fb",uc:"1f472-1f3fb",isCanonical:!0},":person_with_blond_hair_tone5:":{unicode:["1f471-1f3ff"],fname:"1f471-1f3ff",uc:"1f471-1f3ff",isCanonical:!0},":person_with_blond_hair_tone4:":{unicode:["1f471-1f3fe"],fname:"1f471-1f3fe",uc:"1f471-1f3fe",isCanonical:!0},":person_with_blond_hair_tone3:":{unicode:["1f471-1f3fd"],fname:"1f471-1f3fd",uc:"1f471-1f3fd",isCanonical:!0},":person_with_blond_hair_tone2:":{unicode:["1f471-1f3fc"],fname:"1f471-1f3fc",uc:"1f471-1f3fc",isCanonical:!0},":person_with_blond_hair_tone1:":{unicode:["1f471-1f3fb"],fname:"1f471-1f3fb",uc:"1f471-1f3fb",isCanonical:!0},":bride_with_veil_tone5:":{unicode:["1f470-1f3ff"],fname:"1f470-1f3ff",uc:"1f470-1f3ff",isCanonical:!0},":bride_with_veil_tone4:":{unicode:["1f470-1f3fe"],fname:"1f470-1f3fe",uc:"1f470-1f3fe",isCanonical:!0},":bride_with_veil_tone3:":{unicode:["1f470-1f3fd"],fname:"1f470-1f3fd",uc:"1f470-1f3fd",isCanonical:!0},":bride_with_veil_tone2:":{unicode:["1f470-1f3fc"],fname:"1f470-1f3fc",uc:"1f470-1f3fc",isCanonical:!0},":bride_with_veil_tone1:":{unicode:["1f470-1f3fb"],fname:"1f470-1f3fb",uc:"1f470-1f3fb",isCanonical:!0},":cop_tone5:":{unicode:["1f46e-1f3ff"],fname:"1f46e-1f3ff",uc:"1f46e-1f3ff",isCanonical:!0},":cop_tone4:":{unicode:["1f46e-1f3fe"],fname:"1f46e-1f3fe",uc:"1f46e-1f3fe",isCanonical:!0},":cop_tone3:":{unicode:["1f46e-1f3fd"],fname:"1f46e-1f3fd",uc:"1f46e-1f3fd",isCanonical:!0},":cop_tone2:":{unicode:["1f46e-1f3fc"],fname:"1f46e-1f3fc",uc:"1f46e-1f3fc",isCanonical:!0},":cop_tone1:":{unicode:["1f46e-1f3fb"],fname:"1f46e-1f3fb",uc:"1f46e-1f3fb",isCanonical:!0},":woman_tone5:":{unicode:["1f469-1f3ff"],fname:"1f469-1f3ff",uc:"1f469-1f3ff",isCanonical:!0},":woman_tone4:":{unicode:["1f469-1f3fe"],fname:"1f469-1f3fe",uc:"1f469-1f3fe",isCanonical:!0},":woman_tone3:":{unicode:["1f469-1f3fd"],fname:"1f469-1f3fd",uc:"1f469-1f3fd",isCanonical:!0},":woman_tone2:":{unicode:["1f469-1f3fc"],fname:"1f469-1f3fc",uc:"1f469-1f3fc",isCanonical:!0},":woman_tone1:":{unicode:["1f469-1f3fb"],fname:"1f469-1f3fb",uc:"1f469-1f3fb",isCanonical:!0},":man_tone5:":{unicode:["1f468-1f3ff"],fname:"1f468-1f3ff",uc:"1f468-1f3ff",isCanonical:!0},":man_tone4:":{unicode:["1f468-1f3fe"],fname:"1f468-1f3fe",uc:"1f468-1f3fe",isCanonical:!0},":man_tone3:":{unicode:["1f468-1f3fd"],fname:"1f468-1f3fd",uc:"1f468-1f3fd",isCanonical:!0},":man_tone2:":{unicode:["1f468-1f3fc"],fname:"1f468-1f3fc",uc:"1f468-1f3fc",isCanonical:!0},":man_tone1:":{unicode:["1f468-1f3fb"],fname:"1f468-1f3fb",uc:"1f468-1f3fb",isCanonical:!0},":girl_tone5:":{unicode:["1f467-1f3ff"],fname:"1f467-1f3ff",uc:"1f467-1f3ff",isCanonical:!0},":girl_tone4:":{unicode:["1f467-1f3fe"],fname:"1f467-1f3fe",uc:"1f467-1f3fe",isCanonical:!0},":girl_tone3:":{unicode:["1f467-1f3fd"],fname:"1f467-1f3fd",uc:"1f467-1f3fd",isCanonical:!0},":girl_tone2:":{unicode:["1f467-1f3fc"],fname:"1f467-1f3fc",uc:"1f467-1f3fc",isCanonical:!0},":girl_tone1:":{unicode:["1f467-1f3fb"],fname:"1f467-1f3fb",uc:"1f467-1f3fb",isCanonical:!0},":boy_tone5:":{unicode:["1f466-1f3ff"],fname:"1f466-1f3ff",uc:"1f466-1f3ff",isCanonical:!0},":boy_tone4:":{unicode:["1f466-1f3fe"],fname:"1f466-1f3fe",uc:"1f466-1f3fe",isCanonical:!0},":boy_tone3:":{unicode:["1f466-1f3fd"],fname:"1f466-1f3fd",uc:"1f466-1f3fd",isCanonical:!0},":boy_tone2:":{unicode:["1f466-1f3fc"],fname:"1f466-1f3fc",uc:"1f466-1f3fc",isCanonical:!0},":boy_tone1:":{unicode:["1f466-1f3fb"],fname:"1f466-1f3fb",uc:"1f466-1f3fb",isCanonical:!0},":open_hands_tone5:":{unicode:["1f450-1f3ff"],fname:"1f450-1f3ff",uc:"1f450-1f3ff",isCanonical:!0},":open_hands_tone4:":{unicode:["1f450-1f3fe"],fname:"1f450-1f3fe",uc:"1f450-1f3fe",isCanonical:!0},":open_hands_tone3:":{unicode:["1f450-1f3fd"],fname:"1f450-1f3fd",uc:"1f450-1f3fd",isCanonical:!0},":open_hands_tone2:":{unicode:["1f450-1f3fc"],fname:"1f450-1f3fc",uc:"1f450-1f3fc",isCanonical:!0},":open_hands_tone1:":{unicode:["1f450-1f3fb"],fname:"1f450-1f3fb",uc:"1f450-1f3fb",isCanonical:!0},":clap_tone5:":{unicode:["1f44f-1f3ff"],fname:"1f44f-1f3ff",uc:"1f44f-1f3ff",isCanonical:!0},":clap_tone4:":{unicode:["1f44f-1f3fe"],fname:"1f44f-1f3fe",uc:"1f44f-1f3fe",isCanonical:!0},":clap_tone3:":{unicode:["1f44f-1f3fd"],fname:"1f44f-1f3fd",uc:"1f44f-1f3fd",isCanonical:!0},":clap_tone2:":{unicode:["1f44f-1f3fc"],fname:"1f44f-1f3fc",uc:"1f44f-1f3fc",isCanonical:!0},":clap_tone1:":{unicode:["1f44f-1f3fb"],fname:"1f44f-1f3fb",uc:"1f44f-1f3fb",isCanonical:!0},":thumbsdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!0},":-1_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbsdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!0},":-1_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbsdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!0},":-1_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbsdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!0},":-1_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbsdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!0},":-1_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbsup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!0},":+1_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbsup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!0},":+1_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbsup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!0},":+1_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbsup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!0},":+1_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbsup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!0},":+1_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":thumbup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":ok_hand_tone5:":{unicode:["1f44c-1f3ff"],fname:"1f44c-1f3ff",uc:"1f44c-1f3ff",isCanonical:!0},":ok_hand_tone4:":{unicode:["1f44c-1f3fe"],fname:"1f44c-1f3fe",uc:"1f44c-1f3fe",isCanonical:!0},":ok_hand_tone3:":{unicode:["1f44c-1f3fd"],fname:"1f44c-1f3fd",uc:"1f44c-1f3fd",isCanonical:!0},":ok_hand_tone2:":{unicode:["1f44c-1f3fc"],fname:"1f44c-1f3fc",uc:"1f44c-1f3fc",isCanonical:!0},":ok_hand_tone1:":{unicode:["1f44c-1f3fb"],fname:"1f44c-1f3fb",uc:"1f44c-1f3fb",isCanonical:!0},":wave_tone5:":{unicode:["1f44b-1f3ff"],fname:"1f44b-1f3ff",uc:"1f44b-1f3ff",isCanonical:!0},":wave_tone4:":{unicode:["1f44b-1f3fe"],fname:"1f44b-1f3fe",uc:"1f44b-1f3fe",isCanonical:!0},":wave_tone3:":{unicode:["1f44b-1f3fd"],fname:"1f44b-1f3fd",uc:"1f44b-1f3fd",isCanonical:!0},":wave_tone2:":{unicode:["1f44b-1f3fc"],fname:"1f44b-1f3fc",uc:"1f44b-1f3fc",isCanonical:!0},":wave_tone1:":{unicode:["1f44b-1f3fb"],fname:"1f44b-1f3fb",uc:"1f44b-1f3fb",isCanonical:!0},":punch_tone5:":{unicode:["1f44a-1f3ff"],fname:"1f44a-1f3ff",uc:"1f44a-1f3ff",isCanonical:!0},":punch_tone4:":{unicode:["1f44a-1f3fe"],fname:"1f44a-1f3fe",uc:"1f44a-1f3fe",isCanonical:!0},":punch_tone3:":{unicode:["1f44a-1f3fd"],fname:"1f44a-1f3fd",uc:"1f44a-1f3fd",isCanonical:!0},":punch_tone2:":{unicode:["1f44a-1f3fc"],fname:"1f44a-1f3fc",uc:"1f44a-1f3fc",isCanonical:!0},":punch_tone1:":{unicode:["1f44a-1f3fb"],fname:"1f44a-1f3fb",uc:"1f44a-1f3fb",isCanonical:!0},":point_right_tone5:":{unicode:["1f449-1f3ff"],fname:"1f449-1f3ff",uc:"1f449-1f3ff",isCanonical:!0},":point_right_tone4:":{unicode:["1f449-1f3fe"],fname:"1f449-1f3fe",uc:"1f449-1f3fe",isCanonical:!0},":point_right_tone3:":{unicode:["1f449-1f3fd"],fname:"1f449-1f3fd",uc:"1f449-1f3fd",isCanonical:!0},":point_right_tone2:":{unicode:["1f449-1f3fc"],fname:"1f449-1f3fc",uc:"1f449-1f3fc",isCanonical:!0},":point_right_tone1:":{unicode:["1f449-1f3fb"],fname:"1f449-1f3fb",uc:"1f449-1f3fb",isCanonical:!0},":point_left_tone5:":{unicode:["1f448-1f3ff"],fname:"1f448-1f3ff",uc:"1f448-1f3ff",isCanonical:!0},":point_left_tone4:":{unicode:["1f448-1f3fe"],fname:"1f448-1f3fe",uc:"1f448-1f3fe",isCanonical:!0},":point_left_tone3:":{unicode:["1f448-1f3fd"],fname:"1f448-1f3fd",uc:"1f448-1f3fd",isCanonical:!0},":point_left_tone2:":{unicode:["1f448-1f3fc"],fname:"1f448-1f3fc",uc:"1f448-1f3fc",isCanonical:!0},":point_left_tone1:":{unicode:["1f448-1f3fb"],fname:"1f448-1f3fb",uc:"1f448-1f3fb",isCanonical:!0},":point_down_tone5:":{unicode:["1f447-1f3ff"],fname:"1f447-1f3ff",uc:"1f447-1f3ff",isCanonical:!0},":point_down_tone4:":{unicode:["1f447-1f3fe"],fname:"1f447-1f3fe",uc:"1f447-1f3fe",isCanonical:!0},":point_down_tone3:":{unicode:["1f447-1f3fd"],fname:"1f447-1f3fd",uc:"1f447-1f3fd",isCanonical:!0},":point_down_tone2:":{unicode:["1f447-1f3fc"],fname:"1f447-1f3fc",uc:"1f447-1f3fc",isCanonical:!0},":point_down_tone1:":{unicode:["1f447-1f3fb"],fname:"1f447-1f3fb",uc:"1f447-1f3fb",isCanonical:!0},":point_up_2_tone5:":{unicode:["1f446-1f3ff"],fname:"1f446-1f3ff",uc:"1f446-1f3ff",isCanonical:!0},":point_up_2_tone4:":{unicode:["1f446-1f3fe"],fname:"1f446-1f3fe",uc:"1f446-1f3fe",isCanonical:!0},":point_up_2_tone3:":{unicode:["1f446-1f3fd"],fname:"1f446-1f3fd",uc:"1f446-1f3fd",isCanonical:!0},":point_up_2_tone2:":{unicode:["1f446-1f3fc"],fname:"1f446-1f3fc",uc:"1f446-1f3fc",isCanonical:!0},":point_up_2_tone1:":{unicode:["1f446-1f3fb"],fname:"1f446-1f3fb",uc:"1f446-1f3fb",isCanonical:!0},":nose_tone5:":{unicode:["1f443-1f3ff"],fname:"1f443-1f3ff",uc:"1f443-1f3ff",isCanonical:!0},":nose_tone4:":{unicode:["1f443-1f3fe"],fname:"1f443-1f3fe",uc:"1f443-1f3fe",isCanonical:!0},":nose_tone3:":{unicode:["1f443-1f3fd"],fname:"1f443-1f3fd",uc:"1f443-1f3fd",isCanonical:!0},":nose_tone2:":{unicode:["1f443-1f3fc"],fname:"1f443-1f3fc",uc:"1f443-1f3fc",isCanonical:!0},":nose_tone1:":{unicode:["1f443-1f3fb"],fname:"1f443-1f3fb",uc:"1f443-1f3fb",isCanonical:!0},":ear_tone5:":{unicode:["1f442-1f3ff"],fname:"1f442-1f3ff",uc:"1f442-1f3ff",isCanonical:!0},":ear_tone4:":{unicode:["1f442-1f3fe"],fname:"1f442-1f3fe",uc:"1f442-1f3fe",isCanonical:!0},":ear_tone3:":{unicode:["1f442-1f3fd"],fname:"1f442-1f3fd",uc:"1f442-1f3fd",isCanonical:!0},":ear_tone2:":{unicode:["1f442-1f3fc"],fname:"1f442-1f3fc",uc:"1f442-1f3fc",isCanonical:!0},":ear_tone1:":{unicode:["1f442-1f3fb"],fname:"1f442-1f3fb",uc:"1f442-1f3fb",isCanonical:!0},":lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!0},":weight_lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!1},":lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!0},":weight_lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!1},":lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!0},":weight_lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!1},":lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!0},":weight_lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!1},":lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!0},":weight_lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!1},":swimmer_tone5:":{unicode:["1f3ca-1f3ff"],fname:"1f3ca-1f3ff",uc:"1f3ca-1f3ff",isCanonical:!0},":swimmer_tone4:":{unicode:["1f3ca-1f3fe"],fname:"1f3ca-1f3fe",uc:"1f3ca-1f3fe",isCanonical:!0},":swimmer_tone3:":{unicode:["1f3ca-1f3fd"],fname:"1f3ca-1f3fd",uc:"1f3ca-1f3fd",isCanonical:!0},":swimmer_tone2:":{unicode:["1f3ca-1f3fc"],fname:"1f3ca-1f3fc",uc:"1f3ca-1f3fc",isCanonical:!0},":swimmer_tone1:":{unicode:["1f3ca-1f3fb"],fname:"1f3ca-1f3fb",uc:"1f3ca-1f3fb",isCanonical:!0},":horse_racing_tone5:":{unicode:["1f3c7-1f3ff"],fname:"1f3c7-1f3ff",uc:"1f3c7-1f3ff",isCanonical:!0},":horse_racing_tone4:":{unicode:["1f3c7-1f3fe"],fname:"1f3c7-1f3fe",uc:"1f3c7-1f3fe",isCanonical:!0},":horse_racing_tone3:":{unicode:["1f3c7-1f3fd"],fname:"1f3c7-1f3fd",uc:"1f3c7-1f3fd",isCanonical:!0},":horse_racing_tone2:":{unicode:["1f3c7-1f3fc"],fname:"1f3c7-1f3fc",uc:"1f3c7-1f3fc",isCanonical:!0},":horse_racing_tone1:":{unicode:["1f3c7-1f3fb"],fname:"1f3c7-1f3fb",uc:"1f3c7-1f3fb",isCanonical:!0},":surfer_tone5:":{unicode:["1f3c4-1f3ff"],fname:"1f3c4-1f3ff",uc:"1f3c4-1f3ff",isCanonical:!0},":surfer_tone4:":{unicode:["1f3c4-1f3fe"],fname:"1f3c4-1f3fe",uc:"1f3c4-1f3fe",isCanonical:!0},":surfer_tone3:":{unicode:["1f3c4-1f3fd"],fname:"1f3c4-1f3fd",uc:"1f3c4-1f3fd",isCanonical:!0},":surfer_tone2:":{unicode:["1f3c4-1f3fc"],fname:"1f3c4-1f3fc",uc:"1f3c4-1f3fc",isCanonical:!0},":surfer_tone1:":{unicode:["1f3c4-1f3fb"],fname:"1f3c4-1f3fb",uc:"1f3c4-1f3fb",isCanonical:!0},":runner_tone5:":{unicode:["1f3c3-1f3ff"],fname:"1f3c3-1f3ff",uc:"1f3c3-1f3ff",isCanonical:!0},":runner_tone4:":{unicode:["1f3c3-1f3fe"],fname:"1f3c3-1f3fe",uc:"1f3c3-1f3fe",isCanonical:!0},":runner_tone3:":{unicode:["1f3c3-1f3fd"],fname:"1f3c3-1f3fd",uc:"1f3c3-1f3fd",isCanonical:!0},":runner_tone2:":{unicode:["1f3c3-1f3fc"],fname:"1f3c3-1f3fc",uc:"1f3c3-1f3fc",isCanonical:!0},":runner_tone1:":{unicode:["1f3c3-1f3fb"],fname:"1f3c3-1f3fb",uc:"1f3c3-1f3fb",isCanonical:!0},":santa_tone5:":{unicode:["1f385-1f3ff"],fname:"1f385-1f3ff",uc:"1f385-1f3ff",isCanonical:!0},":santa_tone4:":{unicode:["1f385-1f3fe"],fname:"1f385-1f3fe",uc:"1f385-1f3fe",isCanonical:!0},":santa_tone3:":{unicode:["1f385-1f3fd"],fname:"1f385-1f3fd",uc:"1f385-1f3fd",isCanonical:!0},":santa_tone2:":{unicode:["1f385-1f3fc"],fname:"1f385-1f3fc",uc:"1f385-1f3fc",isCanonical:!0},":santa_tone1:":{unicode:["1f385-1f3fb"],fname:"1f385-1f3fb",uc:"1f385-1f3fb",isCanonical:!0},":flag_zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!0},":zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!1},":flag_zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!0},":zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!1},":flag_za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!0},":za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!1},":flag_yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!0},":yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!1},":flag_ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!0},":ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!1},":flag_xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!0},":xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!1},":flag_ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!0},":ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!1},":flag_wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!0},":wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!1},":flag_vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!0},":vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!1},":flag_vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!0},":vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!1},":flag_vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!0},":vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!1},":flag_vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!0},":vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!1},":flag_ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!0},":ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!1},":flag_vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!0},":vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!1},":flag_va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!0},":va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!1},":flag_uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!0},":uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!1},":flag_uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!0},":uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!1},":flag_us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!0},":us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!1},":flag_um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!0},":um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!1},":flag_ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!0},":ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!1},":flag_ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!0},":ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!1},":flag_tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!0},":tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!1},":flag_tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!0},":tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!1},":flag_tv:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!0},":tuvalu:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!1},":flag_tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!0},":tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!1},":flag_tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!0},":tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!1},":flag_to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!0},":to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!1},":flag_tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!0},":tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!1},":flag_tm:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!0},":turkmenistan:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!1},":flag_tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!0},":tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!1},":flag_tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!0},":tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!1},":flag_tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!0},":tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!1},":flag_th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!0},":th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!1},":flag_tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!0},":tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!1},":flag_tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!0},":tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!1},":flag_td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!0},":td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!1},":flag_tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!0},":tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!1},":flag_ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!0},":ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!1},":flag_sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!0},":sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!1},":flag_sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!0},":sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!1},":flag_sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!0
-},":sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!1},":flag_sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!0},":sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!1},":flag_st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!0},":st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!1},":flag_ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!0},":ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!1},":flag_sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!0},":sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!1},":flag_so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!0},":so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!1},":flag_sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!0},":sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!1},":flag_sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!0},":sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!1},":flag_sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!0},":sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!1},":flag_sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!0},":sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!1},":flag_sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!0},":sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!1},":flag_si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!0},":si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!1},":flag_sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!0},":sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!1},":flag_sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!0},":sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!1},":flag_se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!0},":se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!1},":flag_sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!0},":sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!1},":flag_sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!0},":sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!1},":flag_sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!0},":sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!1},":flag_sa:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!0},":saudiarabia:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":saudi:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":flag_rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!0},":rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!1},":flag_ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!0},":ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!1},":flag_rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!0},":rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!1},":flag_ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!0},":ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!1},":flag_re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!0},":re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!1},":flag_qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!0},":qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!1},":flag_py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!0},":py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!1},":flag_pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!0},":pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!1},":flag_pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!0},":pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!1},":flag_ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!0},":ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!1},":flag_pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!0},":pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!1},":flag_pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!0},":pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!1},":flag_pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!0},":pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!1},":flag_pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!0},":pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!1},":flag_pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!0},":pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!1},":flag_ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!0},":ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!1},":flag_pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!0},":pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!1},":flag_pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!0},":pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!1},":flag_pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!0},":pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!1},":flag_pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!0},":pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!1},":flag_om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!0},":om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!1},":flag_nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!0},":nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!1},":flag_nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!0},":nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!1},":flag_nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!0},":nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!1},":flag_np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!0},":np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!1},":flag_no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!0},":no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!1},":flag_nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!0},":nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!1},":flag_ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!0},":ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!1},":flag_ng:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!0},":nigeria:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!1},":flag_nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!0},":nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!1},":flag_ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!0},":ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!1},":flag_nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!0},":nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!1},":flag_na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!0},":na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!1},":flag_mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!0},":mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!1},":flag_my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!0},":my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!1},":flag_mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!0},":mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!1},":flag_mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!0},":mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!1},":flag_mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!0},":mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!1},":flag_mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!0},":mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!1},":flag_mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!0},":mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!1},":flag_ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!0},":ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!1},":flag_mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!0},":mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!1},":flag_mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!0},":mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!1},":flag_mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!0},":mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!1},":flag_mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!0},":mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!1},":flag_mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!0},":mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!1},":flag_mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!0},":mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!1},":flag_ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!0},":ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!1},":flag_mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!0},":mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!1},":flag_mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!0},":mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!1},":flag_mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!0},":mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!1},":flag_mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!0},":mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!1},":flag_me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!0},":me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!1},":flag_md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!0},":md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!1},":flag_mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!0},":mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!1},":flag_ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!0},":ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!1},":flag_ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!0},":ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!1},":flag_lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!0},":lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!1},":flag_lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!0},":lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!1},":flag_lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!0},":lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!1},":flag_ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!0},":ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!1},":flag_lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!0},":lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!1},":flag_lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!0},":lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!1},":flag_li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!0},":li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!1},":flag_lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!0},":lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!1},":flag_lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!0},":lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!1},":flag_la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!0},":la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!1},":flag_kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!0},":kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!1},":flag_ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!0},":ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!1},":flag_kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!0},":kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!1},":flag_kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!0},":kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!1},":flag_kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!0},":kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!1},":flag_kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!0},":kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!1},":flag_km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!0},":km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!1},":flag_ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!0},":ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!1},":flag_kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!0},":kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!1},":flag_kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!0},":kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!1},":flag_ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!0},":ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!1},":flag_jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!0},":jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!1},":flag_jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!0},":jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!1},":flag_jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!0},":jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!1},":flag_je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!0},":je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!1},":flag_it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!0},":it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!1},":flag_is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!0},":is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!1},":flag_ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!0},":ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!1},":flag_iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!0},":iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!1},":flag_io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!0},":io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!1},":flag_in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!0},":in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!1},":flag_im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!0},":im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!1},":flag_il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!0},":il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!1},":flag_ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!0},":ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!1},":flag_id:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!0},":indonesia:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!1},":flag_ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!0},":ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!1},":flag_hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!0},":hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!1},":flag_ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!0},":ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!1},":flag_hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!0},":hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!1},":flag_hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!0},":hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!1},":flag_hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!0},":hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!1},":flag_hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!0},":hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!1},":flag_gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!0},":gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!1},":flag_gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!0},":gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!1},":flag_gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!0},":gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!1},":flag_gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!0},":gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!1},":flag_gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!0},":gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!1},":flag_gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!0},":gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!1},":flag_gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!0},":gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!1},":flag_gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!0},":gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!1},":flag_gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!0},":gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!1},":flag_gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!0},":gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!1},":flag_gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!0},":gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!1},":flag_gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!0},":gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!1},":flag_gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!0},":gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!1},":flag_gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!0},":gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!1},":flag_gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!0},":gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!1},":flag_ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!0},":ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!1},":flag_gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!0},":gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!1},":flag_gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!0},":gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!1},":flag_ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!0},":ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!1},":flag_fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!0},":fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!1},":flag_fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!0},":fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!1},":flag_fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!0},":fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!1},":flag_fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!0},":fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!1},":flag_fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!0},":fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!1},":flag_fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!0},":fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!1},":flag_eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!0},":eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!1},":flag_et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!0},":et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!1},":flag_es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!0},":es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!1},":flag_er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!0},":er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!1},":flag_eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!0},":eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!1},":flag_eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!0},":eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!1},":flag_ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!0},":ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!1},":flag_ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!0},":ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!1},":flag_ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!0},":ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!1},":flag_dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!0},":dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!1},":flag_do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!0},":do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!1},":flag_dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!0},":dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!1},":flag_dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!0},":dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!1},":flag_dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!0},":dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!1},":flag_dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!0},":dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!1},":flag_de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!0},":de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!1},":flag_cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!0},":cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!1},":flag_cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!0},":cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!1},":flag_cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!0},":cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!1},":flag_cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!0},":cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!1},":flag_cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!0},":cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!1},":flag_cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!0},":cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!1},":flag_cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!0},":cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!1},":flag_cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!0},":cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!1},":flag_co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!0},":co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!1},":flag_cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!0},":cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!1},":flag_cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!0},":cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!1},":flag_cl:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!0},":chile:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!1},":flag_ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!0},":ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!1},":flag_ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!0},":ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!1},":flag_ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!0},":ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!1},":flag_cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!0},":cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!1},":flag_cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!0},":cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!1},":flag_cd:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!0},":congo:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!1},":flag_cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!0},":cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!1},":flag_ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!0},":ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!1},":flag_bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!0},":bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!1},":flag_by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!0},":by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!1},":flag_bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!0},":bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!1},":flag_bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!0},":bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",
-uc:"1f1e7-1f1fb",isCanonical:!1},":flag_bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!0},":bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!1},":flag_bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!0},":bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!1},":flag_br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!0},":br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!1},":flag_bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!0},":bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!1},":flag_bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!0},":bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!1},":flag_bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!0},":bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!1},":flag_bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!0},":bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!1},":flag_bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!0},":bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!1},":flag_bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!0},":bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!1},":flag_bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!0},":bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!1},":flag_bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!0},":bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!1},":flag_bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!0},":bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!1},":flag_bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!0},":bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!1},":flag_be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!0},":be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!1},":flag_bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!0},":bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!1},":flag_bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!0},":bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!1},":flag_ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!0},":ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!1},":flag_az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!0},":az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!1},":flag_ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!0},":ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!1},":flag_aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!0},":aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!1},":flag_au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!0},":au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!1},":flag_at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!0},":at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!1},":flag_as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!0},":as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!1},":flag_ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!0},":ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!1},":flag_aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!0},":aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!1},":flag_ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!0},":ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!1},":flag_am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!0},":am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!1},":flag_al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!0},":al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!1},":flag_ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!0},":ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!1},":flag_ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!0},":ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!1},":flag_af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!0},":af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!1},":flag_ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!0},":ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!1},":flag_ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!0},":ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!1},":flag_ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!0},":ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!1},":mahjong:":{unicode:["1f004-fe0f","1f004"],fname:"1f004",uc:"1f004",isCanonical:!0},":parking:":{unicode:["1f17f-fe0f","1f17f"],fname:"1f17f",uc:"1f17f",isCanonical:!0},":sa:":{unicode:["1f202-fe0f","1f202"],fname:"1f202",uc:"1f202",isCanonical:!0},":u7121:":{unicode:["1f21a-fe0f","1f21a"],fname:"1f21a",uc:"1f21a",isCanonical:!0},":u6307:":{unicode:["1f22f-fe0f","1f22f"],fname:"1f22f",uc:"1f22f",isCanonical:!0},":u6708:":{unicode:["1f237-fe0f","1f237"],fname:"1f237",uc:"1f237",isCanonical:!0},":film_frames:":{unicode:["1f39e-fe0f","1f39e"],fname:"1f39e",uc:"1f39e",isCanonical:!0},":tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!0},":admission_tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!1},":lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!0},":weight_lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!1},":golfer:":{unicode:["1f3cc-fe0f","1f3cc"],fname:"1f3cc",uc:"1f3cc",isCanonical:!0},":motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!0},":racing_motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!1},":race_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!0},":racing_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!1},":military_medal:":{unicode:["1f396-fe0f","1f396"],fname:"1f396",uc:"1f396",isCanonical:!0},":reminder_ribbon:":{unicode:["1f397-fe0f","1f397"],fname:"1f397",uc:"1f397",isCanonical:!0},":hot_pepper:":{unicode:["1f336-fe0f","1f336"],fname:"1f336",uc:"1f336",isCanonical:!0},":cloud_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!0},":cloud_with_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!1},":cloud_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!0},":cloud_with_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!1},":cloud_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!0},":cloud_with_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!1},":cloud_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!0},":cloud_with_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!1},":fog:":{unicode:["1f32b-fe0f","1f32b"],fname:"1f32b",uc:"1f32b",isCanonical:!0},":wind_blowing_face:":{unicode:["1f32c-fe0f","1f32c"],fname:"1f32c",uc:"1f32c",isCanonical:!0},":chipmunk:":{unicode:["1f43f-fe0f","1f43f"],fname:"1f43f",uc:"1f43f",isCanonical:!0},":spider:":{unicode:["1f577-fe0f","1f577"],fname:"1f577",uc:"1f577",isCanonical:!0},":spider_web:":{unicode:["1f578-fe0f","1f578"],fname:"1f578",uc:"1f578",isCanonical:!0},":thermometer:":{unicode:["1f321-fe0f","1f321"],fname:"1f321",uc:"1f321",isCanonical:!0},":microphone2:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!0},":studio_microphone:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!1},":level_slider:":{unicode:["1f39a-fe0f","1f39a"],fname:"1f39a",uc:"1f39a",isCanonical:!0},":control_knobs:":{unicode:["1f39b-fe0f","1f39b"],fname:"1f39b",uc:"1f39b",isCanonical:!0},":flag_white:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!0},":waving_white_flag:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!1},":rosette:":{unicode:["1f3f5-fe0f","1f3f5"],fname:"1f3f5",uc:"1f3f5",isCanonical:!0},":label:":{unicode:["1f3f7-fe0f","1f3f7"],fname:"1f3f7",uc:"1f3f7",isCanonical:!0},":projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!0},":film_projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!1},":om_symbol:":{unicode:["1f549-fe0f","1f549"],fname:"1f549",uc:"1f549",isCanonical:!0},":dove:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!0},":dove_of_peace:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!1},":candle:":{unicode:["1f56f-fe0f","1f56f"],fname:"1f56f",uc:"1f56f",isCanonical:!0},":clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!0},":mantlepiece_clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!1},":hole:":{unicode:["1f573-fe0f","1f573"],fname:"1f573",uc:"1f573",isCanonical:!0},":dark_sunglasses:":{unicode:["1f576-fe0f","1f576"],fname:"1f576",uc:"1f576",isCanonical:!0},":joystick:":{unicode:["1f579-fe0f","1f579"],fname:"1f579",uc:"1f579",isCanonical:!0},":paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!0},":linked_paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!1},":pen_ballpoint:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!0},":lower_left_ballpoint_pen:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!1},":pen_fountain:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!0},":lower_left_fountain_pen:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!1},":paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!0},":lower_left_paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!1},":crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!0},":lower_left_crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!1},":desktop:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!0},":desktop_computer:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!1},":printer:":{unicode:["1f5a8-fe0f","1f5a8"],fname:"1f5a8",uc:"1f5a8",isCanonical:!0},":trackball:":{unicode:["1f5b2-fe0f","1f5b2"],fname:"1f5b2",uc:"1f5b2",isCanonical:!0},":frame_photo:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!0},":frame_with_picture:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!1},":dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!0},":card_index_dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!1},":card_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!0},":card_file_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!1},":file_cabinet:":{unicode:["1f5c4-fe0f","1f5c4"],fname:"1f5c4",uc:"1f5c4",isCanonical:!0},":wastebasket:":{unicode:["1f5d1-fe0f","1f5d1"],fname:"1f5d1",uc:"1f5d1",isCanonical:!0},":notepad_spiral:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!0},":spiral_note_pad:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!1},":calendar_spiral:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!0},":spiral_calendar_pad:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!1},":compression:":{unicode:["1f5dc-fe0f","1f5dc"],fname:"1f5dc",uc:"1f5dc",isCanonical:!0},":key2:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!0},":old_key:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!1},":newspaper2:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!0},":rolled_up_newspaper:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!1},":dagger:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!0},":dagger_knife:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!1},":speaking_head:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!0},":speaking_head_in_silhouette:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!1},":speech_left:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!0},":left_speech_bubble:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!1},":anger_right:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!0},":right_anger_bubble:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!1},":ballot_box:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!0},":ballot_box_with_ballot:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!1},":map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!0},":world_map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!1},":tools:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!0},":hammer_and_wrench:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!1},":shield:":{unicode:["1f6e1-fe0f","1f6e1"],fname:"1f6e1",uc:"1f6e1",isCanonical:!0},":oil:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!0},":oil_drum:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!1},":satellite_orbital:":{unicode:["1f6f0-fe0f","1f6f0"],fname:"1f6f0",uc:"1f6f0",isCanonical:!0},":fork_knife_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!0},":fork_and_knife_with_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!1},":eye:":{unicode:["1f441-fe0f","1f441"],fname:"1f441",uc:"1f441",isCanonical:!0},":levitate:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!0},":man_in_business_suit_levitating:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!1},":spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!0},":sleuth_or_spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!1},":hand_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!0},":raised_hand_with_fingers_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!1},":mountain_snow:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!0},":snow_capped_mountain:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!1},":camping:":{unicode:["1f3d5-fe0f","1f3d5"],fname:"1f3d5",uc:"1f3d5",isCanonical:!0},":beach:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!0},":beach_with_umbrella:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!1},":construction_site:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!0},":building_construction:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!1},":homes:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!0},":house_buildings:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!1},":cityscape:":{unicode:["1f3d9-fe0f","1f3d9"],fname:"1f3d9",uc:"1f3d9",isCanonical:!0},":house_abandoned:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!0},":derelict_house_building:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!1},":classical_building:":{unicode:["1f3db-fe0f","1f3db"],fname:"1f3db",uc:"1f3db",isCanonical:!0},":desert:":{unicode:["1f3dc-fe0f","1f3dc"],fname:"1f3dc",uc:"1f3dc",isCanonical:!0},":island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!0},":desert_island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!1},":park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!0},":national_park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!1},":stadium:":{unicode:["1f3df-fe0f","1f3df"],fname:"1f3df",uc:"1f3df",isCanonical:!0},":couch:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!0},":couch_and_lamp:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!1},":shopping_bags:":{unicode:["1f6cd-fe0f","1f6cd"],fname:"1f6cd",uc:"1f6cd",isCanonical:!0},":bellhop:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!0},":bellhop_bell:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!1},":bed:":{unicode:["1f6cf-fe0f","1f6cf"],fname:"1f6cf",uc:"1f6cf",isCanonical:!0},":motorway:":{unicode:["1f6e3-fe0f","1f6e3"],fname:"1f6e3",uc:"1f6e3",isCanonical:!0},":railway_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!0},":railroad_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!1},":motorboat:":{unicode:["1f6e5-fe0f","1f6e5"],fname:"1f6e5",uc:"1f6e5",isCanonical:!0},":airplane_small:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!0},":small_airplane:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!1},":cruise_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!0},":passenger_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!1},":white_sun_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!0},":white_sun_with_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!1},":white_sun_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!0},":white_sun_behind_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!1},":white_sun_rain_cloud:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!0},":white_sun_behind_cloud_with_rain:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!1},":mouse_three_button:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!0},":three_button_mouse:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!1},":point_up_tone1:":{unicode:["261d-1f3fb"],fname:"261d-1f3fb",uc:"261d-1f3fb",isCanonical:!0},":point_up_tone2:":{unicode:["261d-1f3fc"],fname:"261d-1f3fc",uc:"261d-1f3fc",isCanonical:!0},":point_up_tone3:":{unicode:["261d-1f3fd"],fname:"261d-1f3fd",uc:"261d-1f3fd",isCanonical:!0},":point_up_tone4:":{unicode:["261d-1f3fe"],fname:"261d-1f3fe",uc:"261d-1f3fe",isCanonical:!0},":point_up_tone5:":{unicode:["261d-1f3ff"],fname:"261d-1f3ff",uc:"261d-1f3ff",isCanonical:!0},":v_tone1:":{unicode:["270c-1f3fb"],fname:"270c-1f3fb",uc:"270c-1f3fb",isCanonical:!0},":v_tone2:":{unicode:["270c-1f3fc"],fname:"270c-1f3fc",uc:"270c-1f3fc",isCanonical:!0},":v_tone3:":{unicode:["270c-1f3fd"],fname:"270c-1f3fd",uc:"270c-1f3fd",isCanonical:!0},":v_tone4:":{unicode:["270c-1f3fe"],fname:"270c-1f3fe",uc:"270c-1f3fe",isCanonical:!0},":v_tone5:":{unicode:["270c-1f3ff"],fname:"270c-1f3ff",uc:"270c-1f3ff",isCanonical:!0},":fist_tone1:":{unicode:["270a-1f3fb"],fname:"270a-1f3fb",uc:"270a-1f3fb",isCanonical:!0},":fist_tone2:":{unicode:["270a-1f3fc"],fname:"270a-1f3fc",uc:"270a-1f3fc",isCanonical:!0},":fist_tone3:":{unicode:["270a-1f3fd"],fname:"270a-1f3fd",uc:"270a-1f3fd",isCanonical:!0},":fist_tone4:":{unicode:["270a-1f3fe"],fname:"270a-1f3fe",uc:"270a-1f3fe",isCanonical:!0},":fist_tone5:":{unicode:["270a-1f3ff"],fname:"270a-1f3ff",uc:"270a-1f3ff",isCanonical:!0},":raised_hand_tone1:":{unicode:["270b-1f3fb"],fname:"270b-1f3fb",uc:"270b-1f3fb",isCanonical:!0},":raised_hand_tone2:":{unicode:["270b-1f3fc"],fname:"270b-1f3fc",uc:"270b-1f3fc",isCanonical:!0},":raised_hand_tone3:":{unicode:["270b-1f3fd"],fname:"270b-1f3fd",uc:"270b-1f3fd",isCanonical:!0},":raised_hand_tone4:":{unicode:["270b-1f3fe"],fname:"270b-1f3fe",uc:"270b-1f3fe",isCanonical:!0},":raised_hand_tone5:":{unicode:["270b-1f3ff"],fname:"270b-1f3ff",uc:"270b-1f3ff",isCanonical:!0},":writing_hand_tone1:":{unicode:["270d-1f3fb"],fname:"270d-1f3fb",uc:"270d-1f3fb",isCanonical:!0},":writing_hand_tone2:":{unicode:["270d-1f3fc"],fname:"270d-1f3fc",uc:"270d-1f3fc",isCanonical:!0},":writing_hand_tone3:":{unicode:["270d-1f3fd"],fname:"270d-1f3fd",uc:"270d-1f3fd",isCanonical:!0},":writing_hand_tone4:":{unicode:["270d-1f3fe"],fname:"270d-1f3fe",uc:"270d-1f3fe",isCanonical:!0},":writing_hand_tone5:":{unicode:["270d-1f3ff"],fname:"270d-1f3ff",uc:"270d-1f3ff",isCanonical:!0},":basketball_player_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!0},":person_with_ball_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!1},":basketball_player_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!0},":person_with_ball_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!1},":basketball_player_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!0},":person_with_ball_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!1},":basketball_player_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!0},":person_with_ball_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!1},":basketball_player_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!0},":person_with_ball_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!1},":copyright:":{unicode:["00a9-fe0f","00a9"],fname:"00a9",uc:"00a9",isCanonical:!0},":registered:":{unicode:["00ae-fe0f","00ae"],fname:"00ae",uc:"00ae",isCanonical:!0},":bangbang:":{unicode:["203c-fe0f","203c"],fname:"203c",uc:"203c",isCanonical:!0},":interrobang:":{unicode:["2049-fe0f","2049"],fname:"2049",uc:"2049",isCanonical:!0},":tm:":{unicode:["2122-fe0f","2122"],fname:"2122",uc:"2122",isCanonical:!0},":information_source:":{unicode:["2139-fe0f","2139"],fname:"2139",uc:"2139",isCanonical:!0},":left_right_arrow:":{unicode:["2194-fe0f","2194"],fname:"2194",uc:"2194",isCanonical:!0},":arrow_up_down:":{unicode:["2195-fe0f","2195"],fname:"2195",uc:"2195",isCanonical:!0},":arrow_upper_left:":{unicode:["2196-fe0f","2196"],fname:"2196",uc:"2196",isCanonical:!0},":arrow_upper_right:":{unicode:["2197-fe0f","2197"],fname:"2197",uc:"2197",isCanonical:!0},":arrow_lower_right:":{unicode:["2198-fe0f","2198"],fname:"2198",uc:"2198",isCanonical:!0},":arrow_lower_left:":{unicode:["2199-fe0f","2199"],fname:"2199",uc:"2199",isCanonical:!0},":leftwards_arrow_with_hook:":{unicode:["21a9-fe0f","21a9"],fname:"21a9",uc:"21a9",isCanonical:!0},":arrow_right_hook:":{unicode:["21aa-fe0f","21aa"],fname:"21aa",uc:"21aa",isCanonical:!0},":watch:":{unicode:["231a-fe0f","231a"],fname:"231a",uc:"231a",isCanonical:!0},":hourglass:":{unicode:["231b-fe0f","231b"],fname:"231b",uc:"231b",isCanonical:!0},":m:":{unicode:["24c2-fe0f","24c2"],fname:"24c2",uc:"24c2",isCanonical:!0},":black_small_square:":{unicode:["25aa-fe0f","25aa"],fname:"25aa",uc:"25aa",isCanonical:!0},":white_small_square:":{unicode:["25ab-fe0f","25ab"],fname:"25ab",uc:"25ab",isCanonical:!0},":arrow_forward:":{unicode:["25b6-fe0f","25b6"],fname:"25b6",uc:"25b6",isCanonical:!0},":arrow_backward:":{unicode:["25c0-fe0f","25c0"],fname:"25c0",uc:"25c0",isCanonical:!0},":white_medium_square:":{unicode:["25fb-fe0f","25fb"],fname:"25fb",uc:"25fb",isCanonical:!0},":black_medium_square:":{unicode:["25fc-fe0f","25fc"],fname:"25fc",uc:"25fc",isCanonical:!0},":white_medium_small_square:":{unicode:["25fd-fe0f","25fd"],fname:"25fd",uc:"25fd",isCanonical:!0},":black_medium_small_square:":{unicode:["25fe-fe0f","25fe"],fname:"25fe",uc:"25fe",isCanonical:!0},":sunny:":{unicode:["2600-fe0f","2600"],fname:"2600",uc:"2600",isCanonical:!0},":cloud:":{unicode:["2601-fe0f","2601"],fname:"2601",uc:"2601",isCanonical:!0},":telephone:":{unicode:["260e-fe0f","260e"],fname:"260e",uc:"260e",isCanonical:!0},":ballot_box_with_check:":{unicode:["2611-fe0f","2611"],fname:"2611",uc:"2611",isCanonical:!0},":umbrella:":{unicode:["2614-fe0f","2614"],fname:"2614",uc:"2614",isCanonical:!0},":coffee:":{unicode:["2615-fe0f","2615"],fname:"2615",uc:"2615",isCanonical:!0},":point_up:":{unicode:["261d-fe0f","261d"],fname:"261d",uc:"261d",isCanonical:!0},":relaxed:":{unicode:["263a-fe0f","263a"],fname:"263a",uc:"263a",isCanonical:!0},":aries:":{unicode:["2648-fe0f","2648"],fname:"2648",uc:"2648",isCanonical:!0},":taurus:":{unicode:["2649-fe0f","2649"],fname:"2649",uc:"2649",isCanonical:!0},":gemini:":{unicode:["264a-fe0f","264a"],fname:"264a",uc:"264a",isCanonical:!0},":cancer:":{unicode:["264b-fe0f","264b"],fname:"264b",uc:"264b",isCanonical:!0},":leo:":{unicode:["264c-fe0f","264c"],fname:"264c",uc:"264c",isCanonical:!0},":virgo:":{unicode:["264d-fe0f","264d"],fname:"264d",uc:"264d",isCanonical:!0},":libra:":{unicode:["264e-fe0f","264e"],fname:"264e",uc:"264e",isCanonical:!0},":scorpius:":{unicode:["264f-fe0f","264f"],fname:"264f",uc:"264f",isCanonical:!0},":sagittarius:":{unicode:["2650-fe0f","2650"],fname:"2650",uc:"2650",isCanonical:!0},":capricorn:":{unicode:["2651-fe0f","2651"],fname:"2651",uc:"2651",isCanonical:!0},":aquarius:":{unicode:["2652-fe0f","2652"],fname:"2652",uc:"2652",isCanonical:!0},":pisces:":{unicode:["2653-fe0f","2653"],fname:"2653",uc:"2653",isCanonical:!0},":spades:":{unicode:["2660-fe0f","2660"],fname:"2660",uc:"2660",isCanonical:!0},":clubs:":{unicode:["2663-fe0f","2663"],fname:"2663",uc:"2663",isCanonical:!0},":hearts:":{unicode:["2665-fe0f","2665"],fname:"2665",uc:"2665",isCanonical:!0},":diamonds:":{unicode:["2666-fe0f","2666"],fname:"2666",uc:"2666",isCanonical:!0},":hotsprings:":{unicode:["2668-fe0f","2668"],fname:"2668",uc:"2668",isCanonical:!0},":recycle:":{unicode:["267b-fe0f","267b"],fname:"267b",uc:"267b",isCanonical:!0},":wheelchair:":{unicode:["267f-fe0f","267f"],fname:"267f",uc:"267f",isCanonical:!0},":anchor:":{unicode:["2693-fe0f","2693"],fname:"2693",uc:"2693",isCanonical:!0},":warning:":{unicode:["26a0-fe0f","26a0"],fname:"26a0",uc:"26a0",isCanonical:!0},":zap:":{unicode:["26a1-fe0f","26a1"],fname:"26a1",uc:"26a1",isCanonical:!0},":white_circle:":{unicode:["26aa-fe0f","26aa"],fname:"26aa",uc:"26aa",isCanonical:!0},":black_circle:":{unicode:["26ab-fe0f","26ab"],fname:"26ab",uc:"26ab",isCanonical:!0},":soccer:":{unicode:["26bd-fe0f","26bd"],fname:"26bd",uc:"26bd",isCanonical:!0},":baseball:":{unicode:["26be-fe0f","26be"],fname:"26be",uc:"26be",isCanonical:!0},":snowman:":{unicode:["26c4-fe0f","26c4"],fname:"26c4",uc:"26c4",isCanonical:!0},":partly_sunny:":{unicode:["26c5-fe0f","26c5"],fname:"26c5",uc:"26c5",isCanonical:!0},":no_entry:":{unicode:["26d4-fe0f","26d4"],fname:"26d4",uc:"26d4",isCanonical:!0},":church:":{unicode:["26ea-fe0f","26ea"],fname:"26ea",uc:"26ea",isCanonical:!0},":fountain:":{unicode:["26f2-fe0f","26f2"],fname:"26f2",uc:"26f2",isCanonical:!0},":golf:":{unicode:["26f3-fe0f","26f3"],fname:"26f3",uc:"26f3",isCanonical:!0},":sailboat:":{unicode:["26f5-fe0f","26f5"],fname:"26f5",uc:"26f5",isCanonical:!0},":tent:":{unicode:["26fa-fe0f","26fa"],fname:"26fa",uc:"26fa",isCanonical:!0},":fuelpump:":{unicode:["26fd-fe0f","26fd"],fname:"26fd",uc:"26fd",isCanonical:!0},":scissors:":{unicode:["2702-fe0f","2702"],fname:"2702",uc:"2702",isCanonical:!0},":airplane:":{unicode:["2708-fe0f","2708"],fname:"2708",uc:"2708",isCanonical:!0},":envelope:":{unicode:["2709-fe0f","2709"],fname:"2709",uc:"2709",isCanonical:!0},":v:":{unicode:["270c-fe0f","270c"],fname:"270c",uc:"270c",isCanonical:!0},":pencil2:":{unicode:["270f-fe0f","270f"],fname:"270f",uc:"270f",isCanonical:!0},":black_nib:":{unicode:["2712-fe0f","2712"],fname:"2712",uc:"2712",isCanonical:!0},":heavy_check_mark:":{unicode:["2714-fe0f","2714"],fname:"2714",uc:"2714",isCanonical:!0},":heavy_multiplication_x:":{unicode:["2716-fe0f","2716"],fname:"2716",uc:"2716",isCanonical:!0},":eight_spoked_asterisk:":{unicode:["2733-fe0f","2733"],fname:"2733",uc:"2733",isCanonical:!0},":eight_pointed_black_star:":{unicode:["2734-fe0f","2734"],fname:"2734",uc:"2734",isCanonical:!0},":snowflake:":{unicode:["2744-fe0f","2744"],fname:"2744",uc:"2744",isCanonical:!0},":sparkle:":{unicode:["2747-fe0f","2747"],fname:"2747",uc:"2747",isCanonical:!0},":exclamation:":{unicode:["2757-fe0f","2757"],fname:"2757",uc:"2757",isCanonical:!0},":heart:":{unicode:["2764-fe0f","2764"],fname:"2764",uc:"2764",isCanonical:!0},":arrow_right:":{unicode:["27a1-fe0f","27a1"],fname:"27a1",uc:"27a1",isCanonical:!0},":arrow_heading_up:":{unicode:["2934-fe0f","2934"],fname:"2934",uc:"2934",isCanonical:!0},":arrow_heading_down:":{unicode:["2935-fe0f","2935"],fname:"2935",uc:"2935",isCanonical:!0},":arrow_left:":{unicode:["2b05-fe0f","2b05"],fname:"2b05",uc:"2b05",isCanonical:!0},":arrow_up:":{unicode:["2b06-fe0f","2b06"],fname:"2b06",uc:"2b06",isCanonical:!0},":arrow_down:":{unicode:["2b07-fe0f","2b07"],fname:"2b07",uc:"2b07",isCanonical:!0},":black_large_square:":{unicode:["2b1b-fe0f","2b1b"],fname:"2b1b",uc:"2b1b",isCanonical:!0},":white_large_square:":{unicode:["2b1c-fe0f","2b1c"],fname:"2b1c",uc:"2b1c",isCanonical:!0},":star:":{unicode:["2b50-fe0f","2b50"],fname:"2b50",uc:"2b50",isCanonical:!0},":o:":{unicode:["2b55-fe0f","2b55"],fname:"2b55",uc:"2b55",isCanonical:!0},":wavy_dash:":{unicode:["3030-fe0f","3030"],fname:"3030",uc:"3030",isCanonical:!0},":part_alternation_mark:":{unicode:["303d-fe0f","303d"],fname:"303d",uc:"303d",isCanonical:!0},":congratulations:":{unicode:["3297-fe0f","3297"],fname:"3297",uc:"3297",isCanonical:!0},":secret:":{unicode:["3299-fe0f","3299"],fname:"3299",uc:"3299",isCanonical:!0},":cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!0},":latin_cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!1},":keyboard:":{unicode:["2328-fe0f","2328"],fname:"2328",uc:"2328",isCanonical:!0},":writing_hand:":{unicode:["270d-fe0f","270d"],fname:"270d",uc:"270d",isCanonical:!0},":eject:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!0},":eject_symbol:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!1},":track_next:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!0},":next_track:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!1},":track_previous:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!0},":previous_track:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!1},":play_pause:":{unicode:["23ef-fe0f","23ef"],fname:"23ef",uc:"23ef",isCanonical:!0
-},":stopwatch:":{unicode:["23f1-fe0f","23f1"],fname:"23f1",uc:"23f1",isCanonical:!0},":timer:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!0},":timer_clock:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!1},":pause_button:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!0},":double_vertical_bar:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!1},":stop_button:":{unicode:["23f9-fe0f","23f9"],fname:"23f9",uc:"23f9",isCanonical:!0},":record_button:":{unicode:["23fa-fe0f","23fa"],fname:"23fa",uc:"23fa",isCanonical:!0},":umbrella2:":{unicode:["2602-fe0f","2602"],fname:"2602",uc:"2602",isCanonical:!0},":snowman2:":{unicode:["2603-fe0f","2603"],fname:"2603",uc:"2603",isCanonical:!0},":comet:":{unicode:["2604-fe0f","2604"],fname:"2604",uc:"2604",isCanonical:!0},":shamrock:":{unicode:["2618-fe0f","2618"],fname:"2618",uc:"2618",isCanonical:!0},":skull_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!0},":skull_and_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!1},":radioactive:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!0},":radioactive_sign:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!1},":biohazard:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!0},":biohazard_sign:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!1},":orthodox_cross:":{unicode:["2626-fe0f","2626"],fname:"2626",uc:"2626",isCanonical:!0},":star_and_crescent:":{unicode:["262a-fe0f","262a"],fname:"262a",uc:"262a",isCanonical:!0},":peace:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!0},":peace_symbol:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!1},":yin_yang:":{unicode:["262f-fe0f","262f"],fname:"262f",uc:"262f",isCanonical:!0},":wheel_of_dharma:":{unicode:["2638-fe0f","2638"],fname:"2638",uc:"2638",isCanonical:!0},":frowning2:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!0},":white_frowning_face:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!1},":hammer_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!0},":hammer_and_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!1},":crossed_swords:":{unicode:["2694-fe0f","2694"],fname:"2694",uc:"2694",isCanonical:!0},":scales:":{unicode:["2696-fe0f","2696"],fname:"2696",uc:"2696",isCanonical:!0},":alembic:":{unicode:["2697-fe0f","2697"],fname:"2697",uc:"2697",isCanonical:!0},":gear:":{unicode:["2699-fe0f","2699"],fname:"2699",uc:"2699",isCanonical:!0},":atom:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!0},":atom_symbol:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!1},":fleur-de-lis:":{unicode:["269c-fe0f","269c"],fname:"269c",uc:"269c",isCanonical:!0},":coffin:":{unicode:["26b0-fe0f","26b0"],fname:"26b0",uc:"26b0",isCanonical:!0},":urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!0},":funeral_urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!1},":thunder_cloud_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!0},":thunder_cloud_and_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!1},":pick:":{unicode:["26cf-fe0f","26cf"],fname:"26cf",uc:"26cf",isCanonical:!0},":helmet_with_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!0},":helmet_with_white_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!1},":chains:":{unicode:["26d3-fe0f","26d3"],fname:"26d3",uc:"26d3",isCanonical:!0},":shinto_shrine:":{unicode:["26e9-fe0f","26e9"],fname:"26e9",uc:"26e9",isCanonical:!0},":mountain:":{unicode:["26f0-fe0f","26f0"],fname:"26f0",uc:"26f0",isCanonical:!0},":beach_umbrella:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!0},":umbrella_on_ground:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!1},":ferry:":{unicode:["26f4-fe0f","26f4"],fname:"26f4",uc:"26f4",isCanonical:!0},":skier:":{unicode:["26f7-fe0f","26f7"],fname:"26f7",uc:"26f7",isCanonical:!0},":ice_skate:":{unicode:["26f8-fe0f","26f8"],fname:"26f8",uc:"26f8",isCanonical:!0},":basketball_player:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!0},":person_with_ball:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!1},":star_of_david:":{unicode:["2721-fe0f","2721"],fname:"2721",uc:"2721",isCanonical:!0},":heart_exclamation:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!0},":heavy_heart_exclamation_mark_ornament:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!1},":third_place:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!0},":third_place_medal:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!1},":second_place:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!0},":second_place_medal:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!1},":first_place:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!0},":first_place_medal:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!1},":fencer:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!0},":fencing:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!1},":goal:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!0},":goal_net:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!1},":handball:":{unicode:["1f93e"],fname:"1f93e",uc:"1f93e",isCanonical:!0},":regional_indicator_z:":{unicode:["1f1ff"],fname:"1f1ff",uc:"1f1ff",isCanonical:!0},":water_polo:":{unicode:["1f93d"],fname:"1f93d",uc:"1f93d",isCanonical:!0},":martial_arts_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!0},":karate_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!1},":boxing_glove:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!0},":boxing_gloves:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!1},":wrestlers:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!0},":wrestling:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!1},":juggling:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!0},":juggler:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!1},":cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!0},":person_doing_cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!1},":canoe:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!0},":kayak:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!1},":motor_scooter:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!0},":motorbike:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!1},":scooter:":{unicode:["1f6f4"],fname:"1f6f4",uc:"1f6f4",isCanonical:!0},":shopping_cart:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!0},":shopping_trolley:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!1},":black_joker:":{unicode:["1f0cf"],fname:"1f0cf",uc:"1f0cf",isCanonical:!0},":a:":{unicode:["1f170"],fname:"1f170",uc:"1f170",isCanonical:!0},":b:":{unicode:["1f171"],fname:"1f171",uc:"1f171",isCanonical:!0},":o2:":{unicode:["1f17e"],fname:"1f17e",uc:"1f17e",isCanonical:!0},":octagonal_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!0},":stop_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!1},":ab:":{unicode:["1f18e"],fname:"1f18e",uc:"1f18e",isCanonical:!0},":cl:":{unicode:["1f191"],fname:"1f191",uc:"1f191",isCanonical:!0},":regional_indicator_y:":{unicode:["1f1fe"],fname:"1f1fe",uc:"1f1fe",isCanonical:!0},":cool:":{unicode:["1f192"],fname:"1f192",uc:"1f192",isCanonical:!0},":free:":{unicode:["1f193"],fname:"1f193",uc:"1f193",isCanonical:!0},":id:":{unicode:["1f194"],fname:"1f194",uc:"1f194",isCanonical:!0},":new:":{unicode:["1f195"],fname:"1f195",uc:"1f195",isCanonical:!0},":ng:":{unicode:["1f196"],fname:"1f196",uc:"1f196",isCanonical:!0},":ok:":{unicode:["1f197"],fname:"1f197",uc:"1f197",isCanonical:!0},":sos:":{unicode:["1f198"],fname:"1f198",uc:"1f198",isCanonical:!0},":spoon:":{unicode:["1f944"],fname:"1f944",uc:"1f944",isCanonical:!0},":up:":{unicode:["1f199"],fname:"1f199",uc:"1f199",isCanonical:!0},":vs:":{unicode:["1f19a"],fname:"1f19a",uc:"1f19a",isCanonical:!0},":champagne_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!0},":clinking_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!1},":tumbler_glass:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!0},":whisky:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!1},":koko:":{unicode:["1f201"],fname:"1f201",uc:"1f201",isCanonical:!0},":stuffed_flatbread:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!0},":stuffed_pita:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!1},":u7981:":{unicode:["1f232"],fname:"1f232",uc:"1f232",isCanonical:!0},":u7a7a:":{unicode:["1f233"],fname:"1f233",uc:"1f233",isCanonical:!0},":u5408:":{unicode:["1f234"],fname:"1f234",uc:"1f234",isCanonical:!0},":u6e80:":{unicode:["1f235"],fname:"1f235",uc:"1f235",isCanonical:!0},":u6709:":{unicode:["1f236"],fname:"1f236",uc:"1f236",isCanonical:!0},":shallow_pan_of_food:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!0},":paella:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!1},":u7533:":{unicode:["1f238"],fname:"1f238",uc:"1f238",isCanonical:!0},":u5272:":{unicode:["1f239"],fname:"1f239",uc:"1f239",isCanonical:!0},":salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!0},":green_salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!1},":u55b6:":{unicode:["1f23a"],fname:"1f23a",uc:"1f23a",isCanonical:!0},":ideograph_advantage:":{unicode:["1f250"],fname:"1f250",uc:"1f250",isCanonical:!0},":accept:":{unicode:["1f251"],fname:"1f251",uc:"1f251",isCanonical:!0},":cyclone:":{unicode:["1f300"],fname:"1f300",uc:"1f300",isCanonical:!0},":french_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!0},":baguette_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!1},":foggy:":{unicode:["1f301"],fname:"1f301",uc:"1f301",isCanonical:!0},":closed_umbrella:":{unicode:["1f302"],fname:"1f302",uc:"1f302",isCanonical:!0},":night_with_stars:":{unicode:["1f303"],fname:"1f303",uc:"1f303",isCanonical:!0},":sunrise_over_mountains:":{unicode:["1f304"],fname:"1f304",uc:"1f304",isCanonical:!0},":sunrise:":{unicode:["1f305"],fname:"1f305",uc:"1f305",isCanonical:!0},":city_dusk:":{unicode:["1f306"],fname:"1f306",uc:"1f306",isCanonical:!0},":carrot:":{unicode:["1f955"],fname:"1f955",uc:"1f955",isCanonical:!0},":city_sunset:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!0},":city_sunrise:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!1},":rainbow:":{unicode:["1f308"],fname:"1f308",uc:"1f308",isCanonical:!0},":potato:":{unicode:["1f954"],fname:"1f954",uc:"1f954",isCanonical:!0},":bridge_at_night:":{unicode:["1f309"],fname:"1f309",uc:"1f309",isCanonical:!0},":ocean:":{unicode:["1f30a"],fname:"1f30a",uc:"1f30a",isCanonical:!0},":volcano:":{unicode:["1f30b"],fname:"1f30b",uc:"1f30b",isCanonical:!0},":milky_way:":{unicode:["1f30c"],fname:"1f30c",uc:"1f30c",isCanonical:!0},":earth_asia:":{unicode:["1f30f"],fname:"1f30f",uc:"1f30f",isCanonical:!0},":new_moon:":{unicode:["1f311"],fname:"1f311",uc:"1f311",isCanonical:!0},":bacon:":{unicode:["1f953"],fname:"1f953",uc:"1f953",isCanonical:!0},":first_quarter_moon:":{unicode:["1f313"],fname:"1f313",uc:"1f313",isCanonical:!0},":waxing_gibbous_moon:":{unicode:["1f314"],fname:"1f314",uc:"1f314",isCanonical:!0},":full_moon:":{unicode:["1f315"],fname:"1f315",uc:"1f315",isCanonical:!0},":crescent_moon:":{unicode:["1f319"],fname:"1f319",uc:"1f319",isCanonical:!0},":first_quarter_moon_with_face:":{unicode:["1f31b"],fname:"1f31b",uc:"1f31b",isCanonical:!0},":star2:":{unicode:["1f31f"],fname:"1f31f",uc:"1f31f",isCanonical:!0},":cucumber:":{unicode:["1f952"],fname:"1f952",uc:"1f952",isCanonical:!0},":stars:":{unicode:["1f320"],fname:"1f320",uc:"1f320",isCanonical:!0},":chestnut:":{unicode:["1f330"],fname:"1f330",uc:"1f330",isCanonical:!0},":avocado:":{unicode:["1f951"],fname:"1f951",uc:"1f951",isCanonical:!0},":seedling:":{unicode:["1f331"],fname:"1f331",uc:"1f331",isCanonical:!0},":palm_tree:":{unicode:["1f334"],fname:"1f334",uc:"1f334",isCanonical:!0},":cactus:":{unicode:["1f335"],fname:"1f335",uc:"1f335",isCanonical:!0},":tulip:":{unicode:["1f337"],fname:"1f337",uc:"1f337",isCanonical:!0},":cherry_blossom:":{unicode:["1f338"],fname:"1f338",uc:"1f338",isCanonical:!0},":rose:":{unicode:["1f339"],fname:"1f339",uc:"1f339",isCanonical:!0},":hibiscus:":{unicode:["1f33a"],fname:"1f33a",uc:"1f33a",isCanonical:!0},":sunflower:":{unicode:["1f33b"],fname:"1f33b",uc:"1f33b",isCanonical:!0},":blossom:":{unicode:["1f33c"],fname:"1f33c",uc:"1f33c",isCanonical:!0},":corn:":{unicode:["1f33d"],fname:"1f33d",uc:"1f33d",isCanonical:!0},":croissant:":{unicode:["1f950"],fname:"1f950",uc:"1f950",isCanonical:!0},":ear_of_rice:":{unicode:["1f33e"],fname:"1f33e",uc:"1f33e",isCanonical:!0},":herb:":{unicode:["1f33f"],fname:"1f33f",uc:"1f33f",isCanonical:!0},":four_leaf_clover:":{unicode:["1f340"],fname:"1f340",uc:"1f340",isCanonical:!0},":maple_leaf:":{unicode:["1f341"],fname:"1f341",uc:"1f341",isCanonical:!0},":fallen_leaf:":{unicode:["1f342"],fname:"1f342",uc:"1f342",isCanonical:!0},":leaves:":{unicode:["1f343"],fname:"1f343",uc:"1f343",isCanonical:!0},":mushroom:":{unicode:["1f344"],fname:"1f344",uc:"1f344",isCanonical:!0},":tomato:":{unicode:["1f345"],fname:"1f345",uc:"1f345",isCanonical:!0},":eggplant:":{unicode:["1f346"],fname:"1f346",uc:"1f346",isCanonical:!0},":grapes:":{unicode:["1f347"],fname:"1f347",uc:"1f347",isCanonical:!0},":melon:":{unicode:["1f348"],fname:"1f348",uc:"1f348",isCanonical:!0},":watermelon:":{unicode:["1f349"],fname:"1f349",uc:"1f349",isCanonical:!0},":tangerine:":{unicode:["1f34a"],fname:"1f34a",uc:"1f34a",isCanonical:!0},":wilted_rose:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!0},":wilted_flower:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!1},":banana:":{unicode:["1f34c"],fname:"1f34c",uc:"1f34c",isCanonical:!0},":pineapple:":{unicode:["1f34d"],fname:"1f34d",uc:"1f34d",isCanonical:!0},":apple:":{unicode:["1f34e"],fname:"1f34e",uc:"1f34e",isCanonical:!0},":green_apple:":{unicode:["1f34f"],fname:"1f34f",uc:"1f34f",isCanonical:!0},":peach:":{unicode:["1f351"],fname:"1f351",uc:"1f351",isCanonical:!0},":cherries:":{unicode:["1f352"],fname:"1f352",uc:"1f352",isCanonical:!0},":strawberry:":{unicode:["1f353"],fname:"1f353",uc:"1f353",isCanonical:!0},":rhino:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!0},":rhinoceros:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!1},":hamburger:":{unicode:["1f354"],fname:"1f354",uc:"1f354",isCanonical:!0},":pizza:":{unicode:["1f355"],fname:"1f355",uc:"1f355",isCanonical:!0},":meat_on_bone:":{unicode:["1f356"],fname:"1f356",uc:"1f356",isCanonical:!0},":lizard:":{unicode:["1f98e"],fname:"1f98e",uc:"1f98e",isCanonical:!0},":poultry_leg:":{unicode:["1f357"],fname:"1f357",uc:"1f357",isCanonical:!0},":rice_cracker:":{unicode:["1f358"],fname:"1f358",uc:"1f358",isCanonical:!0},":rice_ball:":{unicode:["1f359"],fname:"1f359",uc:"1f359",isCanonical:!0},":gorilla:":{unicode:["1f98d"],fname:"1f98d",uc:"1f98d",isCanonical:!0},":rice:":{unicode:["1f35a"],fname:"1f35a",uc:"1f35a",isCanonical:!0},":curry:":{unicode:["1f35b"],fname:"1f35b",uc:"1f35b",isCanonical:!0},":deer:":{unicode:["1f98c"],fname:"1f98c",uc:"1f98c",isCanonical:!0},":ramen:":{unicode:["1f35c"],fname:"1f35c",uc:"1f35c",isCanonical:!0},":spaghetti:":{unicode:["1f35d"],fname:"1f35d",uc:"1f35d",isCanonical:!0},":bread:":{unicode:["1f35e"],fname:"1f35e",uc:"1f35e",isCanonical:!0},":fries:":{unicode:["1f35f"],fname:"1f35f",uc:"1f35f",isCanonical:!0},":butterfly:":{unicode:["1f98b"],fname:"1f98b",uc:"1f98b",isCanonical:!0},":sweet_potato:":{unicode:["1f360"],fname:"1f360",uc:"1f360",isCanonical:!0},":dango:":{unicode:["1f361"],fname:"1f361",uc:"1f361",isCanonical:!0},":fox:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!0},":fox_face:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!1},":oden:":{unicode:["1f362"],fname:"1f362",uc:"1f362",isCanonical:!0},":sushi:":{unicode:["1f363"],fname:"1f363",uc:"1f363",isCanonical:!0},":owl:":{unicode:["1f989"],fname:"1f989",uc:"1f989",isCanonical:!0},":fried_shrimp:":{unicode:["1f364"],fname:"1f364",uc:"1f364",isCanonical:!0},":fish_cake:":{unicode:["1f365"],fname:"1f365",uc:"1f365",isCanonical:!0},":shark:":{unicode:["1f988"],fname:"1f988",uc:"1f988",isCanonical:!0},":icecream:":{unicode:["1f366"],fname:"1f366",uc:"1f366",isCanonical:!0},":bat:":{unicode:["1f987"],fname:"1f987",uc:"1f987",isCanonical:!0},":shaved_ice:":{unicode:["1f367"],fname:"1f367",uc:"1f367",isCanonical:!0},":regional_indicator_x:":{unicode:["1f1fd"],fname:"1f1fd",uc:"1f1fd",isCanonical:!0},":ice_cream:":{unicode:["1f368"],fname:"1f368",uc:"1f368",isCanonical:!0},":duck:":{unicode:["1f986"],fname:"1f986",uc:"1f986",isCanonical:!0},":doughnut:":{unicode:["1f369"],fname:"1f369",uc:"1f369",isCanonical:!0},":eagle:":{unicode:["1f985"],fname:"1f985",uc:"1f985",isCanonical:!0},":cookie:":{unicode:["1f36a"],fname:"1f36a",uc:"1f36a",isCanonical:!0},":black_heart:":{unicode:["1f5a4"],fname:"1f5a4",uc:"1f5a4",isCanonical:!0},":chocolate_bar:":{unicode:["1f36b"],fname:"1f36b",uc:"1f36b",isCanonical:!0},":candy:":{unicode:["1f36c"],fname:"1f36c",uc:"1f36c",isCanonical:!0},":lollipop:":{unicode:["1f36d"],fname:"1f36d",uc:"1f36d",isCanonical:!0},":custard:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!0},":pudding:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":flan:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":honey_pot:":{unicode:["1f36f"],fname:"1f36f",uc:"1f36f",isCanonical:!0},":fingers_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!0},":hand_with_index_and_middle_finger_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!1},":cake:":{unicode:["1f370"],fname:"1f370",uc:"1f370",isCanonical:!0},":bento:":{unicode:["1f371"],fname:"1f371",uc:"1f371",isCanonical:!0},":stew:":{unicode:["1f372"],fname:"1f372",uc:"1f372",isCanonical:!0},":handshake:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!0},":shaking_hands:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!1},":cooking:":{unicode:["1f373"],fname:"1f373",uc:"1f373",isCanonical:!0},":fork_and_knife:":{unicode:["1f374"],fname:"1f374",uc:"1f374",isCanonical:!0},":tea:":{unicode:["1f375"],fname:"1f375",uc:"1f375",isCanonical:!0},":sake:":{unicode:["1f376"],fname:"1f376",uc:"1f376",isCanonical:!0},":wine_glass:":{unicode:["1f377"],fname:"1f377",uc:"1f377",isCanonical:!0},":cocktail:":{unicode:["1f378"],fname:"1f378",uc:"1f378",isCanonical:!0},":tropical_drink:":{unicode:["1f379"],fname:"1f379",uc:"1f379",isCanonical:!0},":beer:":{unicode:["1f37a"],fname:"1f37a",uc:"1f37a",isCanonical:!0},":beers:":{unicode:["1f37b"],fname:"1f37b",uc:"1f37b",isCanonical:!0},":ribbon:":{unicode:["1f380"],fname:"1f380",uc:"1f380",isCanonical:!0},":gift:":{unicode:["1f381"],fname:"1f381",uc:"1f381",isCanonical:!0},":birthday:":{unicode:["1f382"],fname:"1f382",uc:"1f382",isCanonical:!0},":jack_o_lantern:":{unicode:["1f383"],fname:"1f383",uc:"1f383",isCanonical:!0},":left_facing_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!0},":left_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!1},":right_facing_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!0},":right_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!1},":christmas_tree:":{unicode:["1f384"],fname:"1f384",uc:"1f384",isCanonical:!0},":santa:":{unicode:["1f385"],fname:"1f385",uc:"1f385",isCanonical:!0},":fireworks:":{unicode:["1f386"],fname:"1f386",uc:"1f386",isCanonical:!0},":raised_back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!0},":back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!1},":sparkler:":{unicode:["1f387"],fname:"1f387",uc:"1f387",isCanonical:!0},":balloon:":{unicode:["1f388"],fname:"1f388",uc:"1f388",isCanonical:!0},":tada:":{unicode:["1f389"],fname:"1f389",uc:"1f389",isCanonical:!0},":confetti_ball:":{unicode:["1f38a"],fname:"1f38a",uc:"1f38a",isCanonical:!0},":tanabata_tree:":{unicode:["1f38b"],fname:"1f38b",uc:"1f38b",isCanonical:!0},":crossed_flags:":{unicode:["1f38c"],fname:"1f38c",uc:"1f38c",isCanonical:!0},":call_me:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!0},":call_me_hand:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!1},":bamboo:":{unicode:["1f38d"],fname:"1f38d",uc:"1f38d",isCanonical:!0},":man_dancing:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!0},":male_dancer:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!1},":dolls:":{unicode:["1f38e"],fname:"1f38e",uc:"1f38e",isCanonical:!0},":selfie:":{unicode:["1f933"],fname:"1f933",uc:"1f933",isCanonical:!0},":flags:":{unicode:["1f38f"],fname:"1f38f",uc:"1f38f",isCanonical:!0},":pregnant_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!0},":expecting_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!1},":wind_chime:":{unicode:["1f390"],fname:"1f390",uc:"1f390",isCanonical:!0},":face_palm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!0},":facepalm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!1},":shrug:":{unicode:["1f937"],fname:"1f937",uc:"1f937",isCanonical:!0},":rice_scene:":{unicode:["1f391"],fname:"1f391",uc:"1f391",isCanonical:!0},":school_satchel:":{unicode:["1f392"],fname:"1f392",uc:"1f392",isCanonical:!0},":mortar_board:":{unicode:["1f393"],fname:"1f393",uc:"1f393",isCanonical:!0},":carousel_horse:":{unicode:["1f3a0"],fname:"1f3a0",uc:"1f3a0",isCanonical:!0},":ferris_wheel:":{unicode:["1f3a1"],fname:"1f3a1",uc:"1f3a1",isCanonical:!0},":roller_coaster:":{unicode:["1f3a2"],fname:"1f3a2",uc:"1f3a2",isCanonical:!0},":fishing_pole_and_fish:":{unicode:["1f3a3"],fname:"1f3a3",uc:"1f3a3",isCanonical:!0},":microphone:":{unicode:["1f3a4"],fname:"1f3a4",uc:"1f3a4",isCanonical:!0},":movie_camera:":{unicode:["1f3a5"],fname:"1f3a5",uc:"1f3a5",isCanonical:!0},":cinema:":{unicode:["1f3a6"],fname:"1f3a6",uc:"1f3a6",isCanonical:!0},":headphones:":{unicode:["1f3a7"],fname:"1f3a7",uc:"1f3a7",isCanonical:!0},":mrs_claus:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!0},":mother_christmas:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!1},":art:":{unicode:["1f3a8"],fname:"1f3a8",uc:"1f3a8",isCanonical:!0},":man_in_tuxedo:":{unicode:["1f935"],fname:"1f935",uc:"1f935",isCanonical:!0},":tophat:":{unicode:["1f3a9"],fname:"1f3a9",uc:"1f3a9",isCanonical:!0},":circus_tent:":{unicode:["1f3aa"],fname:"1f3aa",uc:"1f3aa",isCanonical:!0},":prince:":{unicode:["1f934"],fname:"1f934",uc:"1f934",isCanonical:!0},":ticket:":{unicode:["1f3ab"],fname:"1f3ab",uc:"1f3ab",isCanonical:!0},":clapper:":{unicode:["1f3ac"],fname:"1f3ac",uc:"1f3ac",isCanonical:!0},":performing_arts:":{unicode:["1f3ad"],fname:"1f3ad",uc:"1f3ad",isCanonical:!0},":sneezing_face:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!0},":sneeze:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!1},":video_game:":{unicode:["1f3ae"],fname:"1f3ae",uc:"1f3ae",isCanonical:!0},":dart:":{unicode:["1f3af"],fname:"1f3af",uc:"1f3af",isCanonical:!0},":slot_machine:":{unicode:["1f3b0"],fname:"1f3b0",uc:"1f3b0",isCanonical:!0},":8ball:":{unicode:["1f3b1"],fname:"1f3b1",uc:"1f3b1",isCanonical:!0},":game_die:":{unicode:["1f3b2"],fname:"1f3b2",uc:"1f3b2",isCanonical:!0},":bowling:":{unicode:["1f3b3"],fname:"1f3b3",uc:"1f3b3",isCanonical:!0},":flower_playing_cards:":{unicode:["1f3b4"],fname:"1f3b4",uc:"1f3b4",isCanonical:!0},":lying_face:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!0},":liar:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!1},":musical_note:":{unicode:["1f3b5"],fname:"1f3b5",uc:"1f3b5",isCanonical:!0},":notes:":{unicode:["1f3b6"],fname:"1f3b6",uc:"1f3b6",isCanonical:!0},":saxophone:":{unicode:["1f3b7"],fname:"1f3b7",uc:"1f3b7",isCanonical:!0},":drooling_face:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!0},":drool:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!1},":guitar:":{unicode:["1f3b8"],fname:"1f3b8",uc:"1f3b8",isCanonical:!0},":musical_keyboard:":{unicode:["1f3b9"],fname:"1f3b9",uc:"1f3b9",isCanonical:!0},":trumpet:":{unicode:["1f3ba"],fname:"1f3ba",uc:"1f3ba",isCanonical:!0},":rofl:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!0},":rolling_on_the_floor_laughing:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!1},":violin:":{unicode:["1f3bb"],fname:"1f3bb",uc:"1f3bb",isCanonical:!0},":musical_score:":{unicode:["1f3bc"],fname:"1f3bc",uc:"1f3bc",isCanonical:!0},":running_shirt_with_sash:":{unicode:["1f3bd"],fname:"1f3bd",uc:"1f3bd",isCanonical:!0},":nauseated_face:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!0},":sick:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!1},":tennis:":{unicode:["1f3be"],fname:"1f3be",uc:"1f3be",isCanonical:!0},":ski:":{unicode:["1f3bf"],fname:"1f3bf",uc:"1f3bf",isCanonical:!0},":basketball:":{unicode:["1f3c0"],fname:"1f3c0",uc:"1f3c0",isCanonical:!0},":checkered_flag:":{unicode:["1f3c1"],fname:"1f3c1",uc:"1f3c1",isCanonical:!0},":clown:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!0},":clown_face:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!1},":snowboarder:":{unicode:["1f3c2"],fname:"1f3c2",uc:"1f3c2",isCanonical:!0},":runner:":{unicode:["1f3c3"],fname:"1f3c3",uc:"1f3c3",isCanonical:!0},":surfer:":{unicode:["1f3c4"],fname:"1f3c4",uc:"1f3c4",isCanonical:!0},":trophy:":{unicode:["1f3c6"],fname:"1f3c6",uc:"1f3c6",isCanonical:!0},":football:":{unicode:["1f3c8"],fname:"1f3c8",uc:"1f3c8",isCanonical:!0},":swimmer:":{unicode:["1f3ca"],fname:"1f3ca",uc:"1f3ca",isCanonical:!0},":house:":{unicode:["1f3e0"],fname:"1f3e0",uc:"1f3e0",isCanonical:!0},":house_with_garden:":{unicode:["1f3e1"],fname:"1f3e1",uc:"1f3e1",isCanonical:!0},":office:":{unicode:["1f3e2"],fname:"1f3e2",uc:"1f3e2",isCanonical:!0},":post_office:":{unicode:["1f3e3"],fname:"1f3e3",uc:"1f3e3",isCanonical:!0},":hospital:":{unicode:["1f3e5"],fname:"1f3e5",uc:"1f3e5",isCanonical:!0},":bank:":{unicode:["1f3e6"],fname:"1f3e6",uc:"1f3e6",isCanonical:!0},":atm:":{unicode:["1f3e7"],fname:"1f3e7",uc:"1f3e7",isCanonical:!0},":hotel:":{unicode:["1f3e8"],fname:"1f3e8",uc:"1f3e8",isCanonical:!0},":love_hotel:":{unicode:["1f3e9"],fname:"1f3e9",uc:"1f3e9",isCanonical:!0},":convenience_store:":{unicode:["1f3ea"],fname:"1f3ea",uc:"1f3ea",isCanonical:!0},":school:":{unicode:["1f3eb"],fname:"1f3eb",uc:"1f3eb",isCanonical:!0},":department_store:":{unicode:["1f3ec"],fname:"1f3ec",uc:"1f3ec",isCanonical:!0},":cowboy:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!0},":face_with_cowboy_hat:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!1},":factory:":{unicode:["1f3ed"],fname:"1f3ed",uc:"1f3ed",isCanonical:!0},":izakaya_lantern:":{unicode:["1f3ee"],fname:"1f3ee",uc:"1f3ee",isCanonical:!0},":japanese_castle:":{unicode:["1f3ef"],fname:"1f3ef",uc:"1f3ef",isCanonical:!0},":european_castle:":{unicode:["1f3f0"],fname:"1f3f0",uc:"1f3f0",isCanonical:!0},":snail:":{unicode:["1f40c"],fname:"1f40c",uc:"1f40c",isCanonical:!0},":snake:":{unicode:["1f40d"],fname:"1f40d",uc:"1f40d",isCanonical:!0},":racehorse:":{unicode:["1f40e"],fname:"1f40e",uc:"1f40e",isCanonical:!0},":sheep:":{unicode:["1f411"],fname:"1f411",uc:"1f411",isCanonical:!0},":monkey:":{unicode:["1f412"],fname:"1f412",uc:"1f412",isCanonical:!0},":chicken:":{unicode:["1f414"],fname:"1f414",uc:"1f414",isCanonical:!0},":boar:":{unicode:["1f417"],fname:"1f417",uc:"1f417",isCanonical:!0},":elephant:":{unicode:["1f418"],fname:"1f418",uc:"1f418",isCanonical:!0},":octopus:":{unicode:["1f419"],fname:"1f419",uc:"1f419",isCanonical:!0},":shell:":{unicode:["1f41a"],fname:"1f41a",uc:"1f41a",isCanonical:!0},":bug:":{unicode:["1f41b"],fname:"1f41b",uc:"1f41b",isCanonical:!0},":ant:":{unicode:["1f41c"],fname:"1f41c",uc:"1f41c",isCanonical:!0},":bee:":{unicode:["1f41d"],fname:"1f41d",uc:"1f41d",isCanonical:!0},":beetle:":{unicode:["1f41e"],fname:"1f41e",uc:"1f41e",isCanonical:!0},":fish:":{unicode:["1f41f"],fname:"1f41f",uc:"1f41f",isCanonical:!0},":tropical_fish:":{unicode:["1f420"],fname:"1f420",uc:"1f420",isCanonical:!0},":blowfish:":{unicode:["1f421"],fname:"1f421",uc:"1f421",isCanonical:!0},":turtle:":{unicode:["1f422"],fname:"1f422",uc:"1f422",isCanonical:!0},":hatching_chick:":{unicode:["1f423"],fname:"1f423",uc:"1f423",isCanonical:!0},":baby_chick:":{unicode:["1f424"],fname:"1f424",uc:"1f424",isCanonical:!0},":hatched_chick:":{unicode:["1f425"],fname:"1f425",uc:"1f425",isCanonical:!0},":bird:":{unicode:["1f426"],fname:"1f426",uc:"1f426",isCanonical:!0},":penguin:":{unicode:["1f427"],fname:"1f427",uc:"1f427",isCanonical:!0},":koala:":{unicode:["1f428"],fname:"1f428",uc:"1f428",isCanonical:!0},":poodle:":{unicode:["1f429"],fname:"1f429",uc:"1f429",isCanonical:!0},":camel:":{unicode:["1f42b"],fname:"1f42b",uc:"1f42b",isCanonical:!0},":dolphin:":{unicode:["1f42c"],fname:"1f42c",uc:"1f42c",isCanonical:!0},":mouse:":{unicode:["1f42d"],fname:"1f42d",uc:"1f42d",isCanonical:!0},":cow:":{unicode:["1f42e"],fname:"1f42e",uc:"1f42e",isCanonical:!0},":tiger:":{unicode:["1f42f"],fname:"1f42f",uc:"1f42f",isCanonical:!0},":rabbit:":{unicode:["1f430"],fname:"1f430",uc:"1f430",isCanonical:!0},":cat:":{unicode:["1f431"],fname:"1f431",uc:"1f431",isCanonical:!0},":dragon_face:":{unicode:["1f432"],fname:"1f432",uc:"1f432",isCanonical:!0},":whale:":{unicode:["1f433"],fname:"1f433",uc:"1f433",isCanonical:!0},":horse:":{unicode:["1f434"],fname:"1f434",uc:"1f434",isCanonical:!0},":monkey_face:":{unicode:["1f435"],fname:"1f435",uc:"1f435",isCanonical:!0},":dog:":{unicode:["1f436"],fname:"1f436",uc:"1f436",isCanonical:!0},":pig:":{unicode:["1f437"],fname:"1f437",uc:"1f437",isCanonical:!0},":frog:":{unicode:["1f438"],fname:"1f438",uc:"1f438",isCanonical:!0},":hamster:":{unicode:["1f439"],fname:"1f439",uc:"1f439",isCanonical:!0},":wolf:":{unicode:["1f43a"],fname:"1f43a",uc:"1f43a",isCanonical:!0},":bear:":{unicode:["1f43b"],fname:"1f43b",uc:"1f43b",isCanonical:!0},":panda_face:":{unicode:["1f43c"],fname:"1f43c",uc:"1f43c",isCanonical:!0},":pig_nose:":{unicode:["1f43d"],fname:"1f43d",uc:"1f43d",isCanonical:!0},":feet:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!0},":paw_prints:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!1},":eyes:":{unicode:["1f440"],fname:"1f440",uc:"1f440",isCanonical:!0},":ear:":{unicode:["1f442"],fname:"1f442",uc:"1f442",isCanonical:!0},":nose:":{unicode:["1f443"],fname:"1f443",uc:"1f443",isCanonical:!0},":lips:":{unicode:["1f444"],fname:"1f444",uc:"1f444",isCanonical:!0},":tongue:":{unicode:["1f445"],fname:"1f445",uc:"1f445",isCanonical:!0},":point_up_2:":{unicode:["1f446"],fname:"1f446",uc:"1f446",isCanonical:!0},":point_down:":{unicode:["1f447"],fname:"1f447",uc:"1f447",isCanonical:!0},":point_left:":{unicode:["1f448"],fname:"1f448",uc:"1f448",isCanonical:!0},":point_right:":{unicode:["1f449"],fname:"1f449",uc:"1f449",isCanonical:!0},":punch:":{unicode:["1f44a"],fname:"1f44a",uc:"1f44a",isCanonical:!0},":wave:":{unicode:["1f44b"],fname:"1f44b",uc:"1f44b",isCanonical:!0},":ok_hand:":{unicode:["1f44c"],fname:"1f44c",uc:"1f44c",isCanonical:!0},":thumbsup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!0},":+1:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbsdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!0},":-1:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":thumbdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":clap:":{unicode:["1f44f"],fname:"1f44f",uc:"1f44f",isCanonical:!0},":open_hands:":{
-unicode:["1f450"],fname:"1f450",uc:"1f450",isCanonical:!0},":crown:":{unicode:["1f451"],fname:"1f451",uc:"1f451",isCanonical:!0},":womans_hat:":{unicode:["1f452"],fname:"1f452",uc:"1f452",isCanonical:!0},":eyeglasses:":{unicode:["1f453"],fname:"1f453",uc:"1f453",isCanonical:!0},":necktie:":{unicode:["1f454"],fname:"1f454",uc:"1f454",isCanonical:!0},":shirt:":{unicode:["1f455"],fname:"1f455",uc:"1f455",isCanonical:!0},":jeans:":{unicode:["1f456"],fname:"1f456",uc:"1f456",isCanonical:!0},":dress:":{unicode:["1f457"],fname:"1f457",uc:"1f457",isCanonical:!0},":kimono:":{unicode:["1f458"],fname:"1f458",uc:"1f458",isCanonical:!0},":bikini:":{unicode:["1f459"],fname:"1f459",uc:"1f459",isCanonical:!0},":womans_clothes:":{unicode:["1f45a"],fname:"1f45a",uc:"1f45a",isCanonical:!0},":purse:":{unicode:["1f45b"],fname:"1f45b",uc:"1f45b",isCanonical:!0},":handbag:":{unicode:["1f45c"],fname:"1f45c",uc:"1f45c",isCanonical:!0},":pouch:":{unicode:["1f45d"],fname:"1f45d",uc:"1f45d",isCanonical:!0},":mans_shoe:":{unicode:["1f45e"],fname:"1f45e",uc:"1f45e",isCanonical:!0},":athletic_shoe:":{unicode:["1f45f"],fname:"1f45f",uc:"1f45f",isCanonical:!0},":high_heel:":{unicode:["1f460"],fname:"1f460",uc:"1f460",isCanonical:!0},":sandal:":{unicode:["1f461"],fname:"1f461",uc:"1f461",isCanonical:!0},":boot:":{unicode:["1f462"],fname:"1f462",uc:"1f462",isCanonical:!0},":footprints:":{unicode:["1f463"],fname:"1f463",uc:"1f463",isCanonical:!0},":bust_in_silhouette:":{unicode:["1f464"],fname:"1f464",uc:"1f464",isCanonical:!0},":boy:":{unicode:["1f466"],fname:"1f466",uc:"1f466",isCanonical:!0},":girl:":{unicode:["1f467"],fname:"1f467",uc:"1f467",isCanonical:!0},":man:":{unicode:["1f468"],fname:"1f468",uc:"1f468",isCanonical:!0},":woman:":{unicode:["1f469"],fname:"1f469",uc:"1f469",isCanonical:!0},":family:":{unicode:["1f46a"],fname:"1f46a",uc:"1f46a",isCanonical:!0},":couple:":{unicode:["1f46b"],fname:"1f46b",uc:"1f46b",isCanonical:!0},":cop:":{unicode:["1f46e"],fname:"1f46e",uc:"1f46e",isCanonical:!0},":dancers:":{unicode:["1f46f"],fname:"1f46f",uc:"1f46f",isCanonical:!0},":bride_with_veil:":{unicode:["1f470"],fname:"1f470",uc:"1f470",isCanonical:!0},":person_with_blond_hair:":{unicode:["1f471"],fname:"1f471",uc:"1f471",isCanonical:!0},":man_with_gua_pi_mao:":{unicode:["1f472"],fname:"1f472",uc:"1f472",isCanonical:!0},":man_with_turban:":{unicode:["1f473"],fname:"1f473",uc:"1f473",isCanonical:!0},":older_man:":{unicode:["1f474"],fname:"1f474",uc:"1f474",isCanonical:!0},":older_woman:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!0},":grandma:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!1},":baby:":{unicode:["1f476"],fname:"1f476",uc:"1f476",isCanonical:!0},":construction_worker:":{unicode:["1f477"],fname:"1f477",uc:"1f477",isCanonical:!0},":princess:":{unicode:["1f478"],fname:"1f478",uc:"1f478",isCanonical:!0},":japanese_ogre:":{unicode:["1f479"],fname:"1f479",uc:"1f479",isCanonical:!0},":japanese_goblin:":{unicode:["1f47a"],fname:"1f47a",uc:"1f47a",isCanonical:!0},":ghost:":{unicode:["1f47b"],fname:"1f47b",uc:"1f47b",isCanonical:!0},":angel:":{unicode:["1f47c"],fname:"1f47c",uc:"1f47c",isCanonical:!0},":alien:":{unicode:["1f47d"],fname:"1f47d",uc:"1f47d",isCanonical:!0},":space_invader:":{unicode:["1f47e"],fname:"1f47e",uc:"1f47e",isCanonical:!0},":imp:":{unicode:["1f47f"],fname:"1f47f",uc:"1f47f",isCanonical:!0},":skull:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!0},":skeleton:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!1},":card_index:":{unicode:["1f4c7"],fname:"1f4c7",uc:"1f4c7",isCanonical:!0},":information_desk_person:":{unicode:["1f481"],fname:"1f481",uc:"1f481",isCanonical:!0},":guardsman:":{unicode:["1f482"],fname:"1f482",uc:"1f482",isCanonical:!0},":dancer:":{unicode:["1f483"],fname:"1f483",uc:"1f483",isCanonical:!0},":lipstick:":{unicode:["1f484"],fname:"1f484",uc:"1f484",isCanonical:!0},":nail_care:":{unicode:["1f485"],fname:"1f485",uc:"1f485",isCanonical:!0},":ledger:":{unicode:["1f4d2"],fname:"1f4d2",uc:"1f4d2",isCanonical:!0},":massage:":{unicode:["1f486"],fname:"1f486",uc:"1f486",isCanonical:!0},":notebook:":{unicode:["1f4d3"],fname:"1f4d3",uc:"1f4d3",isCanonical:!0},":haircut:":{unicode:["1f487"],fname:"1f487",uc:"1f487",isCanonical:!0},":notebook_with_decorative_cover:":{unicode:["1f4d4"],fname:"1f4d4",uc:"1f4d4",isCanonical:!0},":barber:":{unicode:["1f488"],fname:"1f488",uc:"1f488",isCanonical:!0},":closed_book:":{unicode:["1f4d5"],fname:"1f4d5",uc:"1f4d5",isCanonical:!0},":syringe:":{unicode:["1f489"],fname:"1f489",uc:"1f489",isCanonical:!0},":book:":{unicode:["1f4d6"],fname:"1f4d6",uc:"1f4d6",isCanonical:!0},":pill:":{unicode:["1f48a"],fname:"1f48a",uc:"1f48a",isCanonical:!0},":green_book:":{unicode:["1f4d7"],fname:"1f4d7",uc:"1f4d7",isCanonical:!0},":kiss:":{unicode:["1f48b"],fname:"1f48b",uc:"1f48b",isCanonical:!0},":blue_book:":{unicode:["1f4d8"],fname:"1f4d8",uc:"1f4d8",isCanonical:!0},":love_letter:":{unicode:["1f48c"],fname:"1f48c",uc:"1f48c",isCanonical:!0},":orange_book:":{unicode:["1f4d9"],fname:"1f4d9",uc:"1f4d9",isCanonical:!0},":ring:":{unicode:["1f48d"],fname:"1f48d",uc:"1f48d",isCanonical:!0},":books:":{unicode:["1f4da"],fname:"1f4da",uc:"1f4da",isCanonical:!0},":gem:":{unicode:["1f48e"],fname:"1f48e",uc:"1f48e",isCanonical:!0},":name_badge:":{unicode:["1f4db"],fname:"1f4db",uc:"1f4db",isCanonical:!0},":couplekiss:":{unicode:["1f48f"],fname:"1f48f",uc:"1f48f",isCanonical:!0},":scroll:":{unicode:["1f4dc"],fname:"1f4dc",uc:"1f4dc",isCanonical:!0},":bouquet:":{unicode:["1f490"],fname:"1f490",uc:"1f490",isCanonical:!0},":pencil:":{unicode:["1f4dd"],fname:"1f4dd",uc:"1f4dd",isCanonical:!0},":couple_with_heart:":{unicode:["1f491"],fname:"1f491",uc:"1f491",isCanonical:!0},":telephone_receiver:":{unicode:["1f4de"],fname:"1f4de",uc:"1f4de",isCanonical:!0},":wedding:":{unicode:["1f492"],fname:"1f492",uc:"1f492",isCanonical:!0},":pager:":{unicode:["1f4df"],fname:"1f4df",uc:"1f4df",isCanonical:!0},":fax:":{unicode:["1f4e0"],fname:"1f4e0",uc:"1f4e0",isCanonical:!0},":heartbeat:":{unicode:["1f493"],fname:"1f493",uc:"1f493",isCanonical:!0},":satellite:":{unicode:["1f4e1"],fname:"1f4e1",uc:"1f4e1",isCanonical:!0},":loudspeaker:":{unicode:["1f4e2"],fname:"1f4e2",uc:"1f4e2",isCanonical:!0},":broken_heart:":{unicode:["1f494"],fname:"1f494",uc:"1f494",isCanonical:!0},":mega:":{unicode:["1f4e3"],fname:"1f4e3",uc:"1f4e3",isCanonical:!0},":outbox_tray:":{unicode:["1f4e4"],fname:"1f4e4",uc:"1f4e4",isCanonical:!0},":two_hearts:":{unicode:["1f495"],fname:"1f495",uc:"1f495",isCanonical:!0},":inbox_tray:":{unicode:["1f4e5"],fname:"1f4e5",uc:"1f4e5",isCanonical:!0},":package:":{unicode:["1f4e6"],fname:"1f4e6",uc:"1f4e6",isCanonical:!0},":sparkling_heart:":{unicode:["1f496"],fname:"1f496",uc:"1f496",isCanonical:!0},":e-mail:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!0},":email:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!1},":incoming_envelope:":{unicode:["1f4e8"],fname:"1f4e8",uc:"1f4e8",isCanonical:!0},":heartpulse:":{unicode:["1f497"],fname:"1f497",uc:"1f497",isCanonical:!0},":envelope_with_arrow:":{unicode:["1f4e9"],fname:"1f4e9",uc:"1f4e9",isCanonical:!0},":mailbox_closed:":{unicode:["1f4ea"],fname:"1f4ea",uc:"1f4ea",isCanonical:!0},":cupid:":{unicode:["1f498"],fname:"1f498",uc:"1f498",isCanonical:!0},":mailbox:":{unicode:["1f4eb"],fname:"1f4eb",uc:"1f4eb",isCanonical:!0},":postbox:":{unicode:["1f4ee"],fname:"1f4ee",uc:"1f4ee",isCanonical:!0},":blue_heart:":{unicode:["1f499"],fname:"1f499",uc:"1f499",isCanonical:!0},":newspaper:":{unicode:["1f4f0"],fname:"1f4f0",uc:"1f4f0",isCanonical:!0},":iphone:":{unicode:["1f4f1"],fname:"1f4f1",uc:"1f4f1",isCanonical:!0},":green_heart:":{unicode:["1f49a"],fname:"1f49a",uc:"1f49a",isCanonical:!0},":calling:":{unicode:["1f4f2"],fname:"1f4f2",uc:"1f4f2",isCanonical:!0},":vibration_mode:":{unicode:["1f4f3"],fname:"1f4f3",uc:"1f4f3",isCanonical:!0},":yellow_heart:":{unicode:["1f49b"],fname:"1f49b",uc:"1f49b",isCanonical:!0},":mobile_phone_off:":{unicode:["1f4f4"],fname:"1f4f4",uc:"1f4f4",isCanonical:!0},":signal_strength:":{unicode:["1f4f6"],fname:"1f4f6",uc:"1f4f6",isCanonical:!0},":purple_heart:":{unicode:["1f49c"],fname:"1f49c",uc:"1f49c",isCanonical:!0},":camera:":{unicode:["1f4f7"],fname:"1f4f7",uc:"1f4f7",isCanonical:!0},":video_camera:":{unicode:["1f4f9"],fname:"1f4f9",uc:"1f4f9",isCanonical:!0},":gift_heart:":{unicode:["1f49d"],fname:"1f49d",uc:"1f49d",isCanonical:!0},":tv:":{unicode:["1f4fa"],fname:"1f4fa",uc:"1f4fa",isCanonical:!0},":radio:":{unicode:["1f4fb"],fname:"1f4fb",uc:"1f4fb",isCanonical:!0},":revolving_hearts:":{unicode:["1f49e"],fname:"1f49e",uc:"1f49e",isCanonical:!0},":vhs:":{unicode:["1f4fc"],fname:"1f4fc",uc:"1f4fc",isCanonical:!0},":arrows_clockwise:":{unicode:["1f503"],fname:"1f503",uc:"1f503",isCanonical:!0},":heart_decoration:":{unicode:["1f49f"],fname:"1f49f",uc:"1f49f",isCanonical:!0},":loud_sound:":{unicode:["1f50a"],fname:"1f50a",uc:"1f50a",isCanonical:!0},":battery:":{unicode:["1f50b"],fname:"1f50b",uc:"1f50b",isCanonical:!0},":diamond_shape_with_a_dot_inside:":{unicode:["1f4a0"],fname:"1f4a0",uc:"1f4a0",isCanonical:!0},":electric_plug:":{unicode:["1f50c"],fname:"1f50c",uc:"1f50c",isCanonical:!0},":mag:":{unicode:["1f50d"],fname:"1f50d",uc:"1f50d",isCanonical:!0},":bulb:":{unicode:["1f4a1"],fname:"1f4a1",uc:"1f4a1",isCanonical:!0},":mag_right:":{unicode:["1f50e"],fname:"1f50e",uc:"1f50e",isCanonical:!0},":lock_with_ink_pen:":{unicode:["1f50f"],fname:"1f50f",uc:"1f50f",isCanonical:!0},":anger:":{unicode:["1f4a2"],fname:"1f4a2",uc:"1f4a2",isCanonical:!0},":closed_lock_with_key:":{unicode:["1f510"],fname:"1f510",uc:"1f510",isCanonical:!0},":key:":{unicode:["1f511"],fname:"1f511",uc:"1f511",isCanonical:!0},":bomb:":{unicode:["1f4a3"],fname:"1f4a3",uc:"1f4a3",isCanonical:!0},":lock:":{unicode:["1f512"],fname:"1f512",uc:"1f512",isCanonical:!0},":unlock:":{unicode:["1f513"],fname:"1f513",uc:"1f513",isCanonical:!0},":zzz:":{unicode:["1f4a4"],fname:"1f4a4",uc:"1f4a4",isCanonical:!0},":bell:":{unicode:["1f514"],fname:"1f514",uc:"1f514",isCanonical:!0},":bookmark:":{unicode:["1f516"],fname:"1f516",uc:"1f516",isCanonical:!0},":boom:":{unicode:["1f4a5"],fname:"1f4a5",uc:"1f4a5",isCanonical:!0},":link:":{unicode:["1f517"],fname:"1f517",uc:"1f517",isCanonical:!0},":radio_button:":{unicode:["1f518"],fname:"1f518",uc:"1f518",isCanonical:!0},":sweat_drops:":{unicode:["1f4a6"],fname:"1f4a6",uc:"1f4a6",isCanonical:!0},":back:":{unicode:["1f519"],fname:"1f519",uc:"1f519",isCanonical:!0},":end:":{unicode:["1f51a"],fname:"1f51a",uc:"1f51a",isCanonical:!0},":droplet:":{unicode:["1f4a7"],fname:"1f4a7",uc:"1f4a7",isCanonical:!0},":on:":{unicode:["1f51b"],fname:"1f51b",uc:"1f51b",isCanonical:!0},":soon:":{unicode:["1f51c"],fname:"1f51c",uc:"1f51c",isCanonical:!0},":dash:":{unicode:["1f4a8"],fname:"1f4a8",uc:"1f4a8",isCanonical:!0},":top:":{unicode:["1f51d"],fname:"1f51d",uc:"1f51d",isCanonical:!0},":underage:":{unicode:["1f51e"],fname:"1f51e",uc:"1f51e",isCanonical:!0},":poop:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!0},":shit:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":hankey:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":poo:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":keycap_ten:":{unicode:["1f51f"],fname:"1f51f",uc:"1f51f",isCanonical:!0},":muscle:":{unicode:["1f4aa"],fname:"1f4aa",uc:"1f4aa",isCanonical:!0},":capital_abcd:":{unicode:["1f520"],fname:"1f520",uc:"1f520",isCanonical:!0},":abcd:":{unicode:["1f521"],fname:"1f521",uc:"1f521",isCanonical:!0},":dizzy:":{unicode:["1f4ab"],fname:"1f4ab",uc:"1f4ab",isCanonical:!0},":1234:":{unicode:["1f522"],fname:"1f522",uc:"1f522",isCanonical:!0},":symbols:":{unicode:["1f523"],fname:"1f523",uc:"1f523",isCanonical:!0},":speech_balloon:":{unicode:["1f4ac"],fname:"1f4ac",uc:"1f4ac",isCanonical:!0},":abc:":{unicode:["1f524"],fname:"1f524",uc:"1f524",isCanonical:!0},":fire:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!0},":flame:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!1},":white_flower:":{unicode:["1f4ae"],fname:"1f4ae",uc:"1f4ae",isCanonical:!0},":flashlight:":{unicode:["1f526"],fname:"1f526",uc:"1f526",isCanonical:!0},":wrench:":{unicode:["1f527"],fname:"1f527",uc:"1f527",isCanonical:!0},":100:":{unicode:["1f4af"],fname:"1f4af",uc:"1f4af",isCanonical:!0},":hammer:":{unicode:["1f528"],fname:"1f528",uc:"1f528",isCanonical:!0},":nut_and_bolt:":{unicode:["1f529"],fname:"1f529",uc:"1f529",isCanonical:!0},":moneybag:":{unicode:["1f4b0"],fname:"1f4b0",uc:"1f4b0",isCanonical:!0},":knife:":{unicode:["1f52a"],fname:"1f52a",uc:"1f52a",isCanonical:!0},":gun:":{unicode:["1f52b"],fname:"1f52b",uc:"1f52b",isCanonical:!0},":currency_exchange:":{unicode:["1f4b1"],fname:"1f4b1",uc:"1f4b1",isCanonical:!0},":crystal_ball:":{unicode:["1f52e"],fname:"1f52e",uc:"1f52e",isCanonical:!0},":heavy_dollar_sign:":{unicode:["1f4b2"],fname:"1f4b2",uc:"1f4b2",isCanonical:!0},":six_pointed_star:":{unicode:["1f52f"],fname:"1f52f",uc:"1f52f",isCanonical:!0},":credit_card:":{unicode:["1f4b3"],fname:"1f4b3",uc:"1f4b3",isCanonical:!0},":beginner:":{unicode:["1f530"],fname:"1f530",uc:"1f530",isCanonical:!0},":trident:":{unicode:["1f531"],fname:"1f531",uc:"1f531",isCanonical:!0},":yen:":{unicode:["1f4b4"],fname:"1f4b4",uc:"1f4b4",isCanonical:!0},":black_square_button:":{unicode:["1f532"],fname:"1f532",uc:"1f532",isCanonical:!0},":white_square_button:":{unicode:["1f533"],fname:"1f533",uc:"1f533",isCanonical:!0},":dollar:":{unicode:["1f4b5"],fname:"1f4b5",uc:"1f4b5",isCanonical:!0},":red_circle:":{unicode:["1f534"],fname:"1f534",uc:"1f534",isCanonical:!0},":blue_circle:":{unicode:["1f535"],fname:"1f535",uc:"1f535",isCanonical:!0},":money_with_wings:":{unicode:["1f4b8"],fname:"1f4b8",uc:"1f4b8",isCanonical:!0},":large_orange_diamond:":{unicode:["1f536"],fname:"1f536",uc:"1f536",isCanonical:!0},":large_blue_diamond:":{unicode:["1f537"],fname:"1f537",uc:"1f537",isCanonical:!0},":chart:":{unicode:["1f4b9"],fname:"1f4b9",uc:"1f4b9",isCanonical:!0},":small_orange_diamond:":{unicode:["1f538"],fname:"1f538",uc:"1f538",isCanonical:!0},":small_blue_diamond:":{unicode:["1f539"],fname:"1f539",uc:"1f539",isCanonical:!0},":seat:":{unicode:["1f4ba"],fname:"1f4ba",uc:"1f4ba",isCanonical:!0},":small_red_triangle:":{unicode:["1f53a"],fname:"1f53a",uc:"1f53a",isCanonical:!0},":small_red_triangle_down:":{unicode:["1f53b"],fname:"1f53b",uc:"1f53b",isCanonical:!0},":computer:":{unicode:["1f4bb"],fname:"1f4bb",uc:"1f4bb",isCanonical:!0},":arrow_up_small:":{unicode:["1f53c"],fname:"1f53c",uc:"1f53c",isCanonical:!0},":briefcase:":{unicode:["1f4bc"],fname:"1f4bc",uc:"1f4bc",isCanonical:!0},":arrow_down_small:":{unicode:["1f53d"],fname:"1f53d",uc:"1f53d",isCanonical:!0},":clock1:":{unicode:["1f550"],fname:"1f550",uc:"1f550",isCanonical:!0},":minidisc:":{unicode:["1f4bd"],fname:"1f4bd",uc:"1f4bd",isCanonical:!0},":clock2:":{unicode:["1f551"],fname:"1f551",uc:"1f551",isCanonical:!0},":floppy_disk:":{unicode:["1f4be"],fname:"1f4be",uc:"1f4be",isCanonical:!0},":clock3:":{unicode:["1f552"],fname:"1f552",uc:"1f552",isCanonical:!0},":cd:":{unicode:["1f4bf"],fname:"1f4bf",uc:"1f4bf",isCanonical:!0},":clock4:":{unicode:["1f553"],fname:"1f553",uc:"1f553",isCanonical:!0},":dvd:":{unicode:["1f4c0"],fname:"1f4c0",uc:"1f4c0",isCanonical:!0},":clock5:":{unicode:["1f554"],fname:"1f554",uc:"1f554",isCanonical:!0},":clock6:":{unicode:["1f555"],fname:"1f555",uc:"1f555",isCanonical:!0},":file_folder:":{unicode:["1f4c1"],fname:"1f4c1",uc:"1f4c1",isCanonical:!0},":clock7:":{unicode:["1f556"],fname:"1f556",uc:"1f556",isCanonical:!0},":clock8:":{unicode:["1f557"],fname:"1f557",uc:"1f557",isCanonical:!0},":open_file_folder:":{unicode:["1f4c2"],fname:"1f4c2",uc:"1f4c2",isCanonical:!0},":clock9:":{unicode:["1f558"],fname:"1f558",uc:"1f558",isCanonical:!0},":clock10:":{unicode:["1f559"],fname:"1f559",uc:"1f559",isCanonical:!0},":page_with_curl:":{unicode:["1f4c3"],fname:"1f4c3",uc:"1f4c3",isCanonical:!0},":clock11:":{unicode:["1f55a"],fname:"1f55a",uc:"1f55a",isCanonical:!0},":clock12:":{unicode:["1f55b"],fname:"1f55b",uc:"1f55b",isCanonical:!0},":page_facing_up:":{unicode:["1f4c4"],fname:"1f4c4",uc:"1f4c4",isCanonical:!0},":mount_fuji:":{unicode:["1f5fb"],fname:"1f5fb",uc:"1f5fb",isCanonical:!0},":tokyo_tower:":{unicode:["1f5fc"],fname:"1f5fc",uc:"1f5fc",isCanonical:!0},":date:":{unicode:["1f4c5"],fname:"1f4c5",uc:"1f4c5",isCanonical:!0},":statue_of_liberty:":{unicode:["1f5fd"],fname:"1f5fd",uc:"1f5fd",isCanonical:!0},":japan:":{unicode:["1f5fe"],fname:"1f5fe",uc:"1f5fe",isCanonical:!0},":calendar:":{unicode:["1f4c6"],fname:"1f4c6",uc:"1f4c6",isCanonical:!0},":moyai:":{unicode:["1f5ff"],fname:"1f5ff",uc:"1f5ff",isCanonical:!0},":grin:":{unicode:["1f601"],fname:"1f601",uc:"1f601",isCanonical:!0},":joy:":{unicode:["1f602"],fname:"1f602",uc:"1f602",isCanonical:!0},":smiley:":{unicode:["1f603"],fname:"1f603",uc:"1f603",isCanonical:!0},":chart_with_upwards_trend:":{unicode:["1f4c8"],fname:"1f4c8",uc:"1f4c8",isCanonical:!0},":smile:":{unicode:["1f604"],fname:"1f604",uc:"1f604",isCanonical:!0},":sweat_smile:":{unicode:["1f605"],fname:"1f605",uc:"1f605",isCanonical:!0},":chart_with_downwards_trend:":{unicode:["1f4c9"],fname:"1f4c9",uc:"1f4c9",isCanonical:!0},":laughing:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!0},":satisfied:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!1},":wink:":{unicode:["1f609"],fname:"1f609",uc:"1f609",isCanonical:!0},":bar_chart:":{unicode:["1f4ca"],fname:"1f4ca",uc:"1f4ca",isCanonical:!0},":blush:":{unicode:["1f60a"],fname:"1f60a",uc:"1f60a",isCanonical:!0},":yum:":{unicode:["1f60b"],fname:"1f60b",uc:"1f60b",isCanonical:!0},":clipboard:":{unicode:["1f4cb"],fname:"1f4cb",uc:"1f4cb",isCanonical:!0},":relieved:":{unicode:["1f60c"],fname:"1f60c",uc:"1f60c",isCanonical:!0},":heart_eyes:":{unicode:["1f60d"],fname:"1f60d",uc:"1f60d",isCanonical:!0},":pushpin:":{unicode:["1f4cc"],fname:"1f4cc",uc:"1f4cc",isCanonical:!0},":smirk:":{unicode:["1f60f"],fname:"1f60f",uc:"1f60f",isCanonical:!0},":unamused:":{unicode:["1f612"],fname:"1f612",uc:"1f612",isCanonical:!0},":round_pushpin:":{unicode:["1f4cd"],fname:"1f4cd",uc:"1f4cd",isCanonical:!0},":sweat:":{unicode:["1f613"],fname:"1f613",uc:"1f613",isCanonical:!0},":pensive:":{unicode:["1f614"],fname:"1f614",uc:"1f614",isCanonical:!0},":paperclip:":{unicode:["1f4ce"],fname:"1f4ce",uc:"1f4ce",isCanonical:!0},":confounded:":{unicode:["1f616"],fname:"1f616",uc:"1f616",isCanonical:!0},":kissing_heart:":{unicode:["1f618"],fname:"1f618",uc:"1f618",isCanonical:!0},":straight_ruler:":{unicode:["1f4cf"],fname:"1f4cf",uc:"1f4cf",isCanonical:!0},":kissing_closed_eyes:":{unicode:["1f61a"],fname:"1f61a",uc:"1f61a",isCanonical:!0},":stuck_out_tongue_winking_eye:":{unicode:["1f61c"],fname:"1f61c",uc:"1f61c",isCanonical:!0},":triangular_ruler:":{unicode:["1f4d0"],fname:"1f4d0",uc:"1f4d0",isCanonical:!0},":stuck_out_tongue_closed_eyes:":{unicode:["1f61d"],fname:"1f61d",uc:"1f61d",isCanonical:!0},":disappointed:":{unicode:["1f61e"],fname:"1f61e",uc:"1f61e",isCanonical:!0},":bookmark_tabs:":{unicode:["1f4d1"],fname:"1f4d1",uc:"1f4d1",isCanonical:!0},":angry:":{unicode:["1f620"],fname:"1f620",uc:"1f620",isCanonical:!0},":rage:":{unicode:["1f621"],fname:"1f621",uc:"1f621",isCanonical:!0},":cry:":{unicode:["1f622"],fname:"1f622",uc:"1f622",isCanonical:!0},":persevere:":{unicode:["1f623"],fname:"1f623",uc:"1f623",isCanonical:!0},":triumph:":{unicode:["1f624"],fname:"1f624",uc:"1f624",isCanonical:!0},":disappointed_relieved:":{unicode:["1f625"],fname:"1f625",uc:"1f625",isCanonical:!0},":fearful:":{unicode:["1f628"],fname:"1f628",uc:"1f628",isCanonical:!0},":weary:":{unicode:["1f629"],fname:"1f629",uc:"1f629",isCanonical:!0},":sleepy:":{unicode:["1f62a"],fname:"1f62a",uc:"1f62a",isCanonical:!0},":tired_face:":{unicode:["1f62b"],fname:"1f62b",uc:"1f62b",isCanonical:!0},":sob:":{unicode:["1f62d"],fname:"1f62d",uc:"1f62d",isCanonical:!0},":cold_sweat:":{unicode:["1f630"],fname:"1f630",uc:"1f630",isCanonical:!0},":scream:":{unicode:["1f631"],fname:"1f631",uc:"1f631",isCanonical:!0},":astonished:":{unicode:["1f632"],fname:"1f632",uc:"1f632",isCanonical:!0},":flushed:":{unicode:["1f633"],fname:"1f633",uc:"1f633",isCanonical:!0},":dizzy_face:":{unicode:["1f635"],fname:"1f635",uc:"1f635",isCanonical:!0},":mask:":{unicode:["1f637"],fname:"1f637",uc:"1f637",isCanonical:!0},":smile_cat:":{unicode:["1f638"],fname:"1f638",uc:"1f638",isCanonical:!0},":joy_cat:":{unicode:["1f639"],fname:"1f639",uc:"1f639",isCanonical:!0},":smiley_cat:":{unicode:["1f63a"],fname:"1f63a",uc:"1f63a",isCanonical:!0},":heart_eyes_cat:":{unicode:["1f63b"],fname:"1f63b",uc:"1f63b",isCanonical:!0},":smirk_cat:":{unicode:["1f63c"],fname:"1f63c",uc:"1f63c",isCanonical:!0},":kissing_cat:":{unicode:["1f63d"],fname:"1f63d",uc:"1f63d",isCanonical:!0},":pouting_cat:":{unicode:["1f63e"],fname:"1f63e",uc:"1f63e",isCanonical:!0},":crying_cat_face:":{unicode:["1f63f"],fname:"1f63f",uc:"1f63f",isCanonical:!0},":scream_cat:":{unicode:["1f640"],fname:"1f640",uc:"1f640",isCanonical:!0},":no_good:":{unicode:["1f645"],fname:"1f645",uc:"1f645",isCanonical:!0},":ok_woman:":{unicode:["1f646"],fname:"1f646",uc:"1f646",isCanonical:!0},":bow:":{unicode:["1f647"],fname:"1f647",uc:"1f647",isCanonical:!0},":see_no_evil:":{unicode:["1f648"],fname:"1f648",uc:"1f648",isCanonical:!0},":hear_no_evil:":{unicode:["1f649"],fname:"1f649",uc:"1f649",isCanonical:!0},":speak_no_evil:":{unicode:["1f64a"],fname:"1f64a",uc:"1f64a",isCanonical:!0},":raising_hand:":{unicode:["1f64b"],fname:"1f64b",uc:"1f64b",isCanonical:!0},":raised_hands:":{unicode:["1f64c"],fname:"1f64c",uc:"1f64c",isCanonical:!0},":person_frowning:":{unicode:["1f64d"],fname:"1f64d",uc:"1f64d",isCanonical:!0},":person_with_pouting_face:":{unicode:["1f64e"],fname:"1f64e",uc:"1f64e",isCanonical:!0},":pray:":{unicode:["1f64f"],fname:"1f64f",uc:"1f64f",isCanonical:!0},":rocket:":{unicode:["1f680"],fname:"1f680",uc:"1f680",isCanonical:!0},":railway_car:":{unicode:["1f683"],fname:"1f683",uc:"1f683",isCanonical:!0},":bullettrain_side:":{unicode:["1f684"],fname:"1f684",uc:"1f684",isCanonical:!0},":bullettrain_front:":{unicode:["1f685"],fname:"1f685",uc:"1f685",isCanonical:!0},":metro:":{unicode:["1f687"],fname:"1f687",uc:"1f687",isCanonical:!0},":station:":{unicode:["1f689"],fname:"1f689",uc:"1f689",isCanonical:!0},":bus:":{unicode:["1f68c"],fname:"1f68c",uc:"1f68c",isCanonical:!0},":busstop:":{unicode:["1f68f"],fname:"1f68f",uc:"1f68f",isCanonical:!0},":ambulance:":{unicode:["1f691"],fname:"1f691",uc:"1f691",isCanonical:!0},":fire_engine:":{unicode:["1f692"],fname:"1f692",uc:"1f692",isCanonical:!0},":police_car:":{unicode:["1f693"],fname:"1f693",uc:"1f693",isCanonical:!0},":taxi:":{unicode:["1f695"],fname:"1f695",uc:"1f695",isCanonical:!0},":red_car:":{unicode:["1f697"],fname:"1f697",uc:"1f697",isCanonical:!0},":blue_car:":{unicode:["1f699"],fname:"1f699",uc:"1f699",isCanonical:!0},":truck:":{unicode:["1f69a"],fname:"1f69a",uc:"1f69a",isCanonical:!0},":ship:":{unicode:["1f6a2"],fname:"1f6a2",uc:"1f6a2",isCanonical:!0},":speedboat:":{unicode:["1f6a4"],fname:"1f6a4",uc:"1f6a4",isCanonical:!0},":traffic_light:":{unicode:["1f6a5"],fname:"1f6a5",uc:"1f6a5",isCanonical:!0},":construction:":{unicode:["1f6a7"],fname:"1f6a7",uc:"1f6a7",isCanonical:!0},":rotating_light:":{unicode:["1f6a8"],fname:"1f6a8",uc:"1f6a8",isCanonical:!0},":triangular_flag_on_post:":{unicode:["1f6a9"],fname:"1f6a9",uc:"1f6a9",isCanonical:!0},":door:":{unicode:["1f6aa"],fname:"1f6aa",uc:"1f6aa",isCanonical:!0},":no_entry_sign:":{unicode:["1f6ab"],fname:"1f6ab",uc:"1f6ab",isCanonical:!0},":smoking:":{unicode:["1f6ac"],fname:"1f6ac",uc:"1f6ac",isCanonical:!0},":no_smoking:":{unicode:["1f6ad"],fname:"1f6ad",uc:"1f6ad",isCanonical:!0},":bike:":{unicode:["1f6b2"],fname:"1f6b2",uc:"1f6b2",isCanonical:!0},":walking:":{unicode:["1f6b6"],fname:"1f6b6",uc:"1f6b6",isCanonical:!0},":mens:":{unicode:["1f6b9"],fname:"1f6b9",uc:"1f6b9",isCanonical:!0},":womens:":{unicode:["1f6ba"],fname:"1f6ba",uc:"1f6ba",isCanonical:!0},":restroom:":{unicode:["1f6bb"],fname:"1f6bb",uc:"1f6bb",isCanonical:!0},":baby_symbol:":{unicode:["1f6bc"],fname:"1f6bc",uc:"1f6bc",isCanonical:!0},":toilet:":{unicode:["1f6bd"],fname:"1f6bd",uc:"1f6bd",isCanonical:!0},":wc:":{unicode:["1f6be"],fname:"1f6be",uc:"1f6be",isCanonical:!0},":bath:":{unicode:["1f6c0"],fname:"1f6c0",uc:"1f6c0",isCanonical:!0},":metal:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!0},":sign_of_the_horns:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!1},":grinning:":{unicode:["1f600"],fname:"1f600",uc:"1f600",isCanonical:!0},":innocent:":{unicode:["1f607"],fname:"1f607",uc:"1f607",isCanonical:!0},":smiling_imp:":{unicode:["1f608"],fname:"1f608",uc:"1f608",isCanonical:!0},":sunglasses:":{unicode:["1f60e"],fname:"1f60e",uc:"1f60e",isCanonical:!0},":neutral_face:":{unicode:["1f610"],fname:"1f610",uc:"1f610",isCanonical:!0},":expressionless:":{unicode:["1f611"],fname:"1f611",uc:"1f611",isCanonical:!0},":confused:":{unicode:["1f615"],fname:"1f615",uc:"1f615",isCanonical:!0},":kissing:":{unicode:["1f617"],fname:"1f617",uc:"1f617",isCanonical:!0},":kissing_smiling_eyes:":{unicode:["1f619"],fname:"1f619",uc:"1f619",isCanonical:!0},":stuck_out_tongue:":{unicode:["1f61b"],fname:"1f61b",uc:"1f61b",isCanonical:!0},":worried:":{unicode:["1f61f"],fname:"1f61f",uc:"1f61f",isCanonical:!0},":frowning:":{unicode:["1f626"],fname:"1f626",uc:"1f626",isCanonical:!0},":anguished:":{unicode:["1f627"],fname:"1f627",uc:"1f627",isCanonical:!0},":grimacing:":{unicode:["1f62c"],fname:"1f62c",uc:"1f62c",isCanonical:!0},":open_mouth:":{unicode:["1f62e"],fname:"1f62e",uc:"1f62e",isCanonical:!0},":hushed:":{unicode:["1f62f"],fname:"1f62f",uc:"1f62f",isCanonical:!0},":sleeping:":{unicode:["1f634"],fname:"1f634",uc:"1f634",isCanonical:!0},":no_mouth:":{unicode:["1f636"],fname:"1f636",uc:"1f636",isCanonical:!0},":helicopter:":{unicode:["1f681"],fname:"1f681",uc:"1f681",isCanonical:!0},":steam_locomotive:":{unicode:["1f682"],fname:"1f682",uc:"1f682",isCanonical:!0},":train2:":{unicode:["1f686"],fname:"1f686",uc:"1f686",isCanonical:!0},":light_rail:":{unicode:["1f688"],fname:"1f688",uc:"1f688",isCanonical:!0},":tram:":{unicode:["1f68a"],fname:"1f68a",uc:"1f68a",isCanonical:!0},":oncoming_bus:":{unicode:["1f68d"],fname:"1f68d",uc:"1f68d",isCanonical:!0},":trolleybus:":{unicode:["1f68e"],fname:"1f68e",uc:"1f68e",isCanonical:!0},":minibus:":{unicode:["1f690"],fname:"1f690",uc:"1f690",isCanonical:!0},":oncoming_police_car:":{unicode:["1f694"],fname:"1f694",uc:"1f694",isCanonical:!0},":oncoming_taxi:":{unicode:["1f696"],fname:"1f696",uc:"1f696",isCanonical:!0},":oncoming_automobile:":{unicode:["1f698"],fname:"1f698",uc:"1f698",isCanonical:!0},":articulated_lorry:":{unicode:["1f69b"],fname:"1f69b",uc:"1f69b",isCanonical:!0},":tractor:":{unicode:["1f69c"],fname:"1f69c",uc:"1f69c",isCanonical:!0},":monorail:":{unicode:["1f69d"],fname:"1f69d",uc:"1f69d",isCanonical:!0},":mountain_railway:":{unicode:["1f69e"],fname:"1f69e",uc:"1f69e",isCanonical:!0},":suspension_railway:":{unicode:["1f69f"],fname:"1f69f",uc:"1f69f",isCanonical:!0},":mountain_cableway:":{unicode:["1f6a0"],fname:"1f6a0",uc:"1f6a0",isCanonical:!0},":aerial_tramway:":{unicode:["1f6a1"],fname:"1f6a1",uc:"1f6a1",isCanonical:!0},":rowboat:":{unicode:["1f6a3"],fname:"1f6a3",uc:"1f6a3",isCanonical:!0},":vertical_traffic_light:":{unicode:["1f6a6"],fname:"1f6a6",uc:"1f6a6",isCanonical:!0},":put_litter_in_its_place:":{unicode:["1f6ae"],fname:"1f6ae",uc:"1f6ae",isCanonical:!0},":do_not_litter:":{unicode:["1f6af"],fname:"1f6af",uc:"1f6af",isCanonical:!0},":potable_water:":{unicode:["1f6b0"],fname:"1f6b0",uc:"1f6b0",isCanonical:!0},":non-potable_water:":{unicode:["1f6b1"],fname:"1f6b1",uc:"1f6b1",isCanonical:!0},":no_bicycles:":{unicode:["1f6b3"],fname:"1f6b3",uc:"1f6b3",isCanonical:!0},":bicyclist:":{unicode:["1f6b4"],fname:"1f6b4",uc:"1f6b4",isCanonical:!0},":mountain_bicyclist:":{unicode:["1f6b5"],fname:"1f6b5",uc:"1f6b5",isCanonical:!0},":no_pedestrians:":{unicode:["1f6b7"],fname:"1f6b7",uc:"1f6b7",isCanonical:!0},":children_crossing:":{unicode:["1f6b8"],fname:"1f6b8",uc:"1f6b8",isCanonical:!0},":shower:":{unicode:["1f6bf"],fname:"1f6bf",uc:"1f6bf",isCanonical:!0},":bathtub:":{unicode:["1f6c1"],fname:"1f6c1",uc:"1f6c1",isCanonical:!0},":passport_control:":{unicode:["1f6c2"],fname:"1f6c2",uc:"1f6c2",isCanonical:!0},":customs:":{unicode:["1f6c3"],fname:"1f6c3",uc:"1f6c3",isCanonical:!0},":baggage_claim:":{unicode:["1f6c4"],fname:"1f6c4",uc:"1f6c4",isCanonical:!0},":left_luggage:":{unicode:["1f6c5"],fname:"1f6c5",uc:"1f6c5",isCanonical:!0},":earth_africa:":{unicode:["1f30d"],fname:"1f30d",uc:"1f30d",isCanonical:!0},":earth_americas:":{unicode:["1f30e"],fname:"1f30e",uc:"1f30e",isCanonical:!0},":globe_with_meridians:":{unicode:["1f310"],fname:"1f310",uc:"1f310",isCanonical:!0},":waxing_crescent_moon:":{unicode:["1f312"],fname:"1f312",uc:"1f312",isCanonical:!0},":waning_gibbous_moon:":{unicode:["1f316"],fname:"1f316",uc:"1f316",isCanonical:!0},":last_quarter_moon:":{unicode:["1f317"],fname:"1f317",uc:"1f317",isCanonical:!0},":waning_crescent_moon:":{unicode:["1f318"],fname:"1f318",uc:"1f318",isCanonical:!0},":new_moon_with_face:":{unicode:["1f31a"],fname:"1f31a",uc:"1f31a",isCanonical:!0},":last_quarter_moon_with_face:":{unicode:["1f31c"],fname:"1f31c",uc:"1f31c",isCanonical:!0},":full_moon_with_face:":{unicode:["1f31d"],fname:"1f31d",uc:"1f31d",isCanonical:!0},":sun_with_face:":{unicode:["1f31e"],fname:"1f31e",uc:"1f31e",isCanonical:!0},":evergreen_tree:":{unicode:["1f332"],fname:"1f332",uc:"1f332",isCanonical:!0},":deciduous_tree:":{unicode:["1f333"],fname:"1f333",uc:"1f333",isCanonical:!0},":lemon:":{unicode:["1f34b"],fname:"1f34b",uc:"1f34b",isCanonical:!0},":pear:":{unicode:["1f350"],fname:"1f350",uc:"1f350",isCanonical:!0},":baby_bottle:":{unicode:["1f37c"],fname:"1f37c",uc:"1f37c",isCanonical:!0},":horse_racing:":{unicode:["1f3c7"],fname:"1f3c7",uc:"1f3c7",isCanonical:!0},":rugby_football:":{unicode:["1f3c9"],fname:"1f3c9",uc:"1f3c9",isCanonical:!0},":european_post_office:":{unicode:["1f3e4"],fname:"1f3e4",uc:"1f3e4",isCanonical:!0},":rat:":{unicode:["1f400"],fname:"1f400",uc:"1f400",isCanonical:!0},":mouse2:":{unicode:["1f401"],fname:"1f401",uc:"1f401",isCanonical:!0},":ox:":{unicode:["1f402"],fname:"1f402",uc:"1f402",isCanonical:!0},":water_buffalo:":{unicode:["1f403"],fname:"1f403",uc:"1f403",isCanonical:!0},":cow2:":{unicode:["1f404"],fname:"1f404",uc:"1f404",isCanonical:!0},":tiger2:":{unicode:["1f405"],fname:"1f405",uc:"1f405",isCanonical:!0},":leopard:":{unicode:["1f406"],fname:"1f406",uc:"1f406",isCanonical:!0},":rabbit2:":{unicode:["1f407"],fname:"1f407",uc:"1f407",isCanonical:!0},":cat2:":{unicode:["1f408"],fname:"1f408",uc:"1f408",isCanonical:!0},":dragon:":{unicode:["1f409"],fname:"1f409",uc:"1f409",isCanonical:!0},":crocodile:":{unicode:["1f40a"],fname:"1f40a",uc:"1f40a",isCanonical:!0},":whale2:":{unicode:["1f40b"],fname:"1f40b",uc:"1f40b",isCanonical:!0},":ram:":{unicode:["1f40f"],fname:"1f40f",uc:"1f40f",isCanonical:!0},":goat:":{unicode:["1f410"],fname:"1f410",uc:"1f410",isCanonical:!0},":rooster:":{unicode:["1f413"],fname:"1f413",uc:"1f413",isCanonical:!0},":dog2:":{unicode:["1f415"],fname:"1f415",uc:"1f415",isCanonical:!0},":pig2:":{unicode:["1f416"],fname:"1f416",uc:"1f416",isCanonical:!0},":dromedary_camel:":{unicode:["1f42a"],fname:"1f42a",uc:"1f42a",isCanonical:!0},":busts_in_silhouette:":{unicode:["1f465"],fname:"1f465",uc:"1f465",isCanonical:!0},":two_men_holding_hands:":{unicode:["1f46c"],fname:"1f46c",uc:"1f46c",isCanonical:!0},":two_women_holding_hands:":{unicode:["1f46d"],fname:"1f46d",uc:"1f46d",isCanonical:!0},":thought_balloon:":{unicode:["1f4ad"],fname:"1f4ad",uc:"1f4ad",isCanonical:!0},":euro:":{unicode:["1f4b6"],fname:"1f4b6",uc:"1f4b6",isCanonical:!0},":pound:":{unicode:["1f4b7"],fname:"1f4b7",uc:"1f4b7",isCanonical:!0},":mailbox_with_mail:":{unicode:["1f4ec"],fname:"1f4ec",uc:"1f4ec",isCanonical:!0},":mailbox_with_no_mail:":{unicode:["1f4ed"],
-fname:"1f4ed",uc:"1f4ed",isCanonical:!0},":postal_horn:":{unicode:["1f4ef"],fname:"1f4ef",uc:"1f4ef",isCanonical:!0},":no_mobile_phones:":{unicode:["1f4f5"],fname:"1f4f5",uc:"1f4f5",isCanonical:!0},":twisted_rightwards_arrows:":{unicode:["1f500"],fname:"1f500",uc:"1f500",isCanonical:!0},":repeat:":{unicode:["1f501"],fname:"1f501",uc:"1f501",isCanonical:!0},":repeat_one:":{unicode:["1f502"],fname:"1f502",uc:"1f502",isCanonical:!0},":arrows_counterclockwise:":{unicode:["1f504"],fname:"1f504",uc:"1f504",isCanonical:!0},":low_brightness:":{unicode:["1f505"],fname:"1f505",uc:"1f505",isCanonical:!0},":high_brightness:":{unicode:["1f506"],fname:"1f506",uc:"1f506",isCanonical:!0},":mute:":{unicode:["1f507"],fname:"1f507",uc:"1f507",isCanonical:!0},":sound:":{unicode:["1f509"],fname:"1f509",uc:"1f509",isCanonical:!0},":no_bell:":{unicode:["1f515"],fname:"1f515",uc:"1f515",isCanonical:!0},":microscope:":{unicode:["1f52c"],fname:"1f52c",uc:"1f52c",isCanonical:!0},":telescope:":{unicode:["1f52d"],fname:"1f52d",uc:"1f52d",isCanonical:!0},":clock130:":{unicode:["1f55c"],fname:"1f55c",uc:"1f55c",isCanonical:!0},":clock230:":{unicode:["1f55d"],fname:"1f55d",uc:"1f55d",isCanonical:!0},":clock330:":{unicode:["1f55e"],fname:"1f55e",uc:"1f55e",isCanonical:!0},":clock430:":{unicode:["1f55f"],fname:"1f55f",uc:"1f55f",isCanonical:!0},":clock530:":{unicode:["1f560"],fname:"1f560",uc:"1f560",isCanonical:!0},":clock630:":{unicode:["1f561"],fname:"1f561",uc:"1f561",isCanonical:!0},":clock730:":{unicode:["1f562"],fname:"1f562",uc:"1f562",isCanonical:!0},":clock830:":{unicode:["1f563"],fname:"1f563",uc:"1f563",isCanonical:!0},":clock930:":{unicode:["1f564"],fname:"1f564",uc:"1f564",isCanonical:!0},":clock1030:":{unicode:["1f565"],fname:"1f565",uc:"1f565",isCanonical:!0},":clock1130:":{unicode:["1f566"],fname:"1f566",uc:"1f566",isCanonical:!0},":clock1230:":{unicode:["1f567"],fname:"1f567",uc:"1f567",isCanonical:!0},":speaker:":{unicode:["1f508"],fname:"1f508",uc:"1f508",isCanonical:!0},":train:":{unicode:["1f68b"],fname:"1f68b",uc:"1f68b",isCanonical:!0},":medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!0},":sports_medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!1},":flag_black:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!0},":waving_black_flag:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!1},":camera_with_flash:":{unicode:["1f4f8"],fname:"1f4f8",uc:"1f4f8",isCanonical:!0},":sleeping_accommodation:":{unicode:["1f6cc"],fname:"1f6cc",uc:"1f6cc",isCanonical:!0},":middle_finger:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!0},":reversed_hand_with_middle_finger_extended:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!1},":vulcan:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!1},":slight_frown:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!0},":slightly_frowning_face:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!1},":slight_smile:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!0},":slightly_smiling_face:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!1},":airplane_departure:":{unicode:["1f6eb"],fname:"1f6eb",uc:"1f6eb",isCanonical:!0},":airplane_arriving:":{unicode:["1f6ec"],fname:"1f6ec",uc:"1f6ec",isCanonical:!0},":tone1:":{unicode:["1f3fb"],fname:"1f3fb",uc:"1f3fb",isCanonical:!0},":tone2:":{unicode:["1f3fc"],fname:"1f3fc",uc:"1f3fc",isCanonical:!0},":tone3:":{unicode:["1f3fd"],fname:"1f3fd",uc:"1f3fd",isCanonical:!0},":tone4:":{unicode:["1f3fe"],fname:"1f3fe",uc:"1f3fe",isCanonical:!0},":tone5:":{unicode:["1f3ff"],fname:"1f3ff",uc:"1f3ff",isCanonical:!0},":upside_down:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!0},":upside_down_face:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!1},":money_mouth:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!0},":money_mouth_face:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!1},":nerd:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!0},":nerd_face:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!1},":hugging:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!0},":hugging_face:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!1},":rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!0},":face_with_rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!1},":thinking:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!0},":thinking_face:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!1},":zipper_mouth:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!0},":zipper_mouth_face:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!1},":thermometer_face:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!0},":face_with_thermometer:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!1},":head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!0},":face_with_head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!1},":robot:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!0},":robot_face:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!1},":lion_face:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!0},":lion:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!1},":unicorn:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!0},":unicorn_face:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!1},":scorpion:":{unicode:["1f982"],fname:"1f982",uc:"1f982",isCanonical:!0},":crab:":{unicode:["1f980"],fname:"1f980",uc:"1f980",isCanonical:!0},":turkey:":{unicode:["1f983"],fname:"1f983",uc:"1f983",isCanonical:!0},":cheese:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!0},":cheese_wedge:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!1},":hotdog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!0},":hot_dog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!1},":taco:":{unicode:["1f32e"],fname:"1f32e",uc:"1f32e",isCanonical:!0},":burrito:":{unicode:["1f32f"],fname:"1f32f",uc:"1f32f",isCanonical:!0},":popcorn:":{unicode:["1f37f"],fname:"1f37f",uc:"1f37f",isCanonical:!0},":champagne:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!0},":bottle_with_popping_cork:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!1},":bow_and_arrow:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!0},":archery:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!1},":amphora:":{unicode:["1f3fa"],fname:"1f3fa",uc:"1f3fa",isCanonical:!0},":place_of_worship:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!0},":worship_symbol:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!1},":kaaba:":{unicode:["1f54b"],fname:"1f54b",uc:"1f54b",isCanonical:!0},":mosque:":{unicode:["1f54c"],fname:"1f54c",uc:"1f54c",isCanonical:!0},":synagogue:":{unicode:["1f54d"],fname:"1f54d",uc:"1f54d",isCanonical:!0},":menorah:":{unicode:["1f54e"],fname:"1f54e",uc:"1f54e",isCanonical:!0},":prayer_beads:":{unicode:["1f4ff"],fname:"1f4ff",uc:"1f4ff",isCanonical:!0},":cricket:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!0},":cricket_bat_ball:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!1},":volleyball:":{unicode:["1f3d0"],fname:"1f3d0",uc:"1f3d0",isCanonical:!0},":field_hockey:":{unicode:["1f3d1"],fname:"1f3d1",uc:"1f3d1",isCanonical:!0},":hockey:":{unicode:["1f3d2"],fname:"1f3d2",uc:"1f3d2",isCanonical:!0},":ping_pong:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!0},":table_tennis:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!1},":badminton:":{unicode:["1f3f8"],fname:"1f3f8",uc:"1f3f8",isCanonical:!0},":drum:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!0},":drum_with_drumsticks:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!1},":shrimp:":{unicode:["1f990"],fname:"1f990",uc:"1f990",isCanonical:!0},":squid:":{unicode:["1f991"],fname:"1f991",uc:"1f991",isCanonical:!0},":egg:":{unicode:["1f95a"],fname:"1f95a",uc:"1f95a",isCanonical:!0},":milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!0},":glass_of_milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!1},":peanuts:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!0},":shelled_peanut:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!1},":kiwi:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!0},":kiwifruit:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!1},":pancakes:":{unicode:["1f95e"],fname:"1f95e",uc:"1f95e",isCanonical:!0},":regional_indicator_w:":{unicode:["1f1fc"],fname:"1f1fc",uc:"1f1fc",isCanonical:!0},":regional_indicator_v:":{unicode:["1f1fb"],fname:"1f1fb",uc:"1f1fb",isCanonical:!0},":regional_indicator_u:":{unicode:["1f1fa"],fname:"1f1fa",uc:"1f1fa",isCanonical:!0},":regional_indicator_t:":{unicode:["1f1f9"],fname:"1f1f9",uc:"1f1f9",isCanonical:!0},":regional_indicator_s:":{unicode:["1f1f8"],fname:"1f1f8",uc:"1f1f8",isCanonical:!0},":regional_indicator_r:":{unicode:["1f1f7"],fname:"1f1f7",uc:"1f1f7",isCanonical:!0},":regional_indicator_q:":{unicode:["1f1f6"],fname:"1f1f6",uc:"1f1f6",isCanonical:!0},":regional_indicator_p:":{unicode:["1f1f5"],fname:"1f1f5",uc:"1f1f5",isCanonical:!0},":regional_indicator_o:":{unicode:["1f1f4"],fname:"1f1f4",uc:"1f1f4",isCanonical:!0},":regional_indicator_n:":{unicode:["1f1f3"],fname:"1f1f3",uc:"1f1f3",isCanonical:!0},":regional_indicator_m:":{unicode:["1f1f2"],fname:"1f1f2",uc:"1f1f2",isCanonical:!0},":regional_indicator_l:":{unicode:["1f1f1"],fname:"1f1f1",uc:"1f1f1",isCanonical:!0},":regional_indicator_k:":{unicode:["1f1f0"],fname:"1f1f0",uc:"1f1f0",isCanonical:!0},":regional_indicator_j:":{unicode:["1f1ef"],fname:"1f1ef",uc:"1f1ef",isCanonical:!0},":regional_indicator_i:":{unicode:["1f1ee"],fname:"1f1ee",uc:"1f1ee",isCanonical:!0},":regional_indicator_h:":{unicode:["1f1ed"],fname:"1f1ed",uc:"1f1ed",isCanonical:!0},":regional_indicator_g:":{unicode:["1f1ec"],fname:"1f1ec",uc:"1f1ec",isCanonical:!0},":regional_indicator_f:":{unicode:["1f1eb"],fname:"1f1eb",uc:"1f1eb",isCanonical:!0},":regional_indicator_e:":{unicode:["1f1ea"],fname:"1f1ea",uc:"1f1ea",isCanonical:!0},":regional_indicator_d:":{unicode:["1f1e9"],fname:"1f1e9",uc:"1f1e9",isCanonical:!0},":regional_indicator_c:":{unicode:["1f1e8"],fname:"1f1e8",uc:"1f1e8",isCanonical:!0},":regional_indicator_b:":{unicode:["1f1e7"],fname:"1f1e7",uc:"1f1e7",isCanonical:!0},":regional_indicator_a:":{unicode:["1f1e6"],fname:"1f1e6",uc:"1f1e6",isCanonical:!0},":fast_forward:":{unicode:["23e9"],fname:"23e9",uc:"23e9",isCanonical:!0},":rewind:":{unicode:["23ea"],fname:"23ea",uc:"23ea",isCanonical:!0},":arrow_double_up:":{unicode:["23eb"],fname:"23eb",uc:"23eb",isCanonical:!0},":arrow_double_down:":{unicode:["23ec"],fname:"23ec",uc:"23ec",isCanonical:!0},":alarm_clock:":{unicode:["23f0"],fname:"23f0",uc:"23f0",isCanonical:!0},":hourglass_flowing_sand:":{unicode:["23f3"],fname:"23f3",uc:"23f3",isCanonical:!0},":ophiuchus:":{unicode:["26ce"],fname:"26ce",uc:"26ce",isCanonical:!0},":white_check_mark:":{unicode:["2705"],fname:"2705",uc:"2705",isCanonical:!0},":fist:":{unicode:["270a"],fname:"270a",uc:"270a",isCanonical:!0},":raised_hand:":{unicode:["270b"],fname:"270b",uc:"270b",isCanonical:!0},":sparkles:":{unicode:["2728"],fname:"2728",uc:"2728",isCanonical:!0},":x:":{unicode:["274c"],fname:"274c",uc:"274c",isCanonical:!0},":negative_squared_cross_mark:":{unicode:["274e"],fname:"274e",uc:"274e",isCanonical:!0},":question:":{unicode:["2753"],fname:"2753",uc:"2753",isCanonical:!0},":grey_question:":{unicode:["2754"],fname:"2754",uc:"2754",isCanonical:!0},":grey_exclamation:":{unicode:["2755"],fname:"2755",uc:"2755",isCanonical:!0},":heavy_plus_sign:":{unicode:["2795"],fname:"2795",uc:"2795",isCanonical:!0},":heavy_minus_sign:":{unicode:["2796"],fname:"2796",uc:"2796",isCanonical:!0},":heavy_division_sign:":{unicode:["2797"],fname:"2797",uc:"2797",isCanonical:!0},":curly_loop:":{unicode:["27b0"],fname:"27b0",uc:"27b0",isCanonical:!0},":loop:":{unicode:["27bf"],fname:"27bf",uc:"27bf",isCanonical:!0}};var b,c=[];for(b in a.emojioneList)a.emojioneList.hasOwnProperty(b)&&c.push(b.replace(/[+]/g,"\\$&"));a.shortnames=c.join("|"),a.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f642",":-)":"1f642","=]":"1f642","=)":"1f642",":]":"1f642","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},a.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",a.unicodeRegexp="(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)",
-a.jsEscapeMap={"👩‍❤️‍💋‍👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","👩❤💋👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤💋👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-200d-1f468-200d-1f466-200d-1f466","👨👨👦👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-200d-1f468-200d-1f467-200d-1f466","👨👨👧👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-200d-1f468-200d-1f467-200d-1f467","👨👨👧👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-200d-1f469-200d-1f466-200d-1f466","👨👩👦👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-200d-1f469-200d-1f467-200d-1f466","👨👩👧👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-200d-1f469-200d-1f467-200d-1f467","👨👩👧👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-200d-1f469-200d-1f466-200d-1f466","👩👩👦👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-200d-1f469-200d-1f467-200d-1f466","👩👩👧👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-200d-1f469-200d-1f467-200d-1f467","👩👩👧👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-200d-2764-fe0f-200d-1f469","👩❤👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-200d-2764-fe0f-200d-1f468","👨❤👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-200d-1f468-200d-1f466","👨👨👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-200d-1f468-200d-1f467","👨👨👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-200d-1f469-200d-1f467","👨👩👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-200d-1f469-200d-1f466","👩👩👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-200d-1f469-200d-1f467","👩👩👧":"1f469-1f469-1f467","🏳️‍🌈":"1f3f3-fe0f-200d-1f308","🏳🌈":"1f3f3-1f308","👁‍🗨":"1f441-200d-1f5e8","👁🗨":"1f441-1f5e8","#️⃣":"0023-fe0f-20e3","#⃣":"0023-20e3","0️⃣":"0030-fe0f-20e3","0⃣":"0030-20e3","1️⃣":"0031-fe0f-20e3","1⃣":"0031-20e3","2️⃣":"0032-fe0f-20e3","2⃣":"0032-20e3","3️⃣":"0033-fe0f-20e3","3⃣":"0033-20e3","4️⃣":"0034-fe0f-20e3","4⃣":"0034-20e3","5️⃣":"0035-fe0f-20e3","5⃣":"0035-20e3","6️⃣":"0036-fe0f-20e3","6⃣":"0036-20e3","7️⃣":"0037-fe0f-20e3","7⃣":"0037-20e3","8️⃣":"0038-fe0f-20e3","8⃣":"0038-20e3","9️⃣":"0039-fe0f-20e3","9⃣":"0039-20e3","*️⃣":"002a-fe0f-20e3","*⃣":"002a-20e3","🤾🏿":"1f93e-1f3ff","🤾🏾":"1f93e-1f3fe","🤾🏽":"1f93e-1f3fd","🤾🏼":"1f93e-1f3fc","🤾🏻":"1f93e-1f3fb","🤽🏿":"1f93d-1f3ff","🤽🏾":"1f93d-1f3fe","🤽🏽":"1f93d-1f3fd","🤽🏼":"1f93d-1f3fc","🤽🏻":"1f93d-1f3fb","🤼🏿":"1f93c-1f3ff","🤼🏾":"1f93c-1f3fe","🤼🏽":"1f93c-1f3fd","🤼🏼":"1f93c-1f3fc","🤼🏻":"1f93c-1f3fb","🤹🏿":"1f939-1f3ff","🤹🏾":"1f939-1f3fe","🤹🏽":"1f939-1f3fd","🤹🏼":"1f939-1f3fc","🤹🏻":"1f939-1f3fb","🤸🏿":"1f938-1f3ff","🤸🏾":"1f938-1f3fe","🤸🏽":"1f938-1f3fd","🤸🏼":"1f938-1f3fc","🤸🏻":"1f938-1f3fb","🤷🏿":"1f937-1f3ff","🤷🏾":"1f937-1f3fe","🤷🏽":"1f937-1f3fd","🤷🏼":"1f937-1f3fc","🤷🏻":"1f937-1f3fb","🤶🏿":"1f936-1f3ff","🤶🏾":"1f936-1f3fe","🤶🏽":"1f936-1f3fd","🤶🏼":"1f936-1f3fc","🤶🏻":"1f936-1f3fb","🤵🏿":"1f935-1f3ff","🤵🏾":"1f935-1f3fe","🤵🏽":"1f935-1f3fd","🤵🏼":"1f935-1f3fc","🤵🏻":"1f935-1f3fb","🤴🏿":"1f934-1f3ff","🤴🏾":"1f934-1f3fe","🤴🏽":"1f934-1f3fd","🤴🏼":"1f934-1f3fc","🤴🏻":"1f934-1f3fb","🤳🏿":"1f933-1f3ff","🤳🏾":"1f933-1f3fe","🤳🏽":"1f933-1f3fd","🤳🏼":"1f933-1f3fc","🤳🏻":"1f933-1f3fb","🤰🏿":"1f930-1f3ff","🤰🏾":"1f930-1f3fe","🤰🏽":"1f930-1f3fd","🤰🏼":"1f930-1f3fc","🤰🏻":"1f930-1f3fb","🤦🏿":"1f926-1f3ff","🤦🏾":"1f926-1f3fe","🤦🏽":"1f926-1f3fd","🤦🏼":"1f926-1f3fc","🤦🏻":"1f926-1f3fb","🤞🏿":"1f91e-1f3ff","🤞🏾":"1f91e-1f3fe","🤞🏽":"1f91e-1f3fd","🤞🏼":"1f91e-1f3fc","🤞🏻":"1f91e-1f3fb","🤝🏿":"1f91d-1f3ff","🤝🏾":"1f91d-1f3fe","🤝🏽":"1f91d-1f3fd","🤝🏼":"1f91d-1f3fc","🤝🏻":"1f91d-1f3fb","🤜🏿":"1f91c-1f3ff","🤜🏾":"1f91c-1f3fe","🤜🏽":"1f91c-1f3fd","🤜🏼":"1f91c-1f3fc","🤜🏻":"1f91c-1f3fb","🤛🏿":"1f91b-1f3ff","🤛🏾":"1f91b-1f3fe","🤛🏽":"1f91b-1f3fd","🤛🏼":"1f91b-1f3fc","🤛🏻":"1f91b-1f3fb","🤚🏿":"1f91a-1f3ff","🤚🏾":"1f91a-1f3fe","🤚🏽":"1f91a-1f3fd","🤚🏼":"1f91a-1f3fc","🤚🏻":"1f91a-1f3fb","🤙🏿":"1f919-1f3ff","🤙🏾":"1f919-1f3fe","🤙🏽":"1f919-1f3fd","🤙🏼":"1f919-1f3fc","🤙🏻":"1f919-1f3fb","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕺🏿":"1f57a-1f3ff","🕺🏾":"1f57a-1f3fe","🕺🏽":"1f57a-1f3fd","🕺🏼":"1f57a-1f3fc","🕺🏻":"1f57a-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004-fe0f","🀄":"1f004","🅿️":"1f17f-fe0f","🅿":"1f17f","🈂️":"1f202-fe0f","🈂":"1f202","🈚️":"1f21a-fe0f","🈚":"1f21a","🈯️":"1f22f-fe0f","🈯":"1f22f","🈷️":"1f237-fe0f","🈷":"1f237","🎞️":"1f39e-fe0f","🎞":"1f39e","🎟️":"1f39f-fe0f","🎟":"1f39f","🏋️":"1f3cb-fe0f","🏋":"1f3cb","🏌️":"1f3cc-fe0f","🏌":"1f3cc","🏍️":"1f3cd-fe0f","🏍":"1f3cd","🏎️":"1f3ce-fe0f","🏎":"1f3ce","🎖️":"1f396-fe0f","🎖":"1f396","🎗️":"1f397-fe0f","🎗":"1f397","🌶️":"1f336-fe0f","🌶":"1f336","🌧️":"1f327-fe0f","🌧":"1f327","🌨️":"1f328-fe0f","🌨":"1f328","🌩️":"1f329-fe0f","🌩":"1f329","🌪️":"1f32a-fe0f","🌪":"1f32a","🌫️":"1f32b-fe0f","🌫":"1f32b","🌬️":"1f32c-fe0f","🌬":"1f32c","🐿️":"1f43f-fe0f","🐿":"1f43f","🕷️":"1f577-fe0f","🕷":"1f577","🕸️":"1f578-fe0f","🕸":"1f578","🌡️":"1f321-fe0f","🌡":"1f321","🎙️":"1f399-fe0f","🎙":"1f399","🎚️":"1f39a-fe0f","🎚":"1f39a","🎛️":"1f39b-fe0f","🎛":"1f39b","🏳️":"1f3f3-fe0f","🏳":"1f3f3","🏵️":"1f3f5-fe0f","🏵":"1f3f5","🏷️":"1f3f7-fe0f","🏷":"1f3f7","📽️":"1f4fd-fe0f","📽":"1f4fd","🕉️":"1f549-fe0f","🕉":"1f549","🕊️":"1f54a-fe0f","🕊":"1f54a","🕯️":"1f56f-fe0f","🕯":"1f56f","🕰️":"1f570-fe0f","🕰":"1f570","🕳️":"1f573-fe0f","🕳":"1f573","🕶️":"1f576-fe0f","🕶":"1f576","🕹️":"1f579-fe0f","🕹":"1f579","🖇️":"1f587-fe0f","🖇":"1f587","🖊️":"1f58a-fe0f","🖊":"1f58a","🖋️":"1f58b-fe0f","🖋":"1f58b","🖌️":"1f58c-fe0f","🖌":"1f58c","🖍️":"1f58d-fe0f","🖍":"1f58d","🖥️":"1f5a5-fe0f","🖥":"1f5a5","🖨️":"1f5a8-fe0f","🖨":"1f5a8","🖲️":"1f5b2-fe0f","🖲":"1f5b2","🖼️":"1f5bc-fe0f","🖼":"1f5bc","🗂️":"1f5c2-fe0f","🗂":"1f5c2","🗃️":"1f5c3-fe0f","🗃":"1f5c3","🗄️":"1f5c4-fe0f","🗄":"1f5c4","🗑️":"1f5d1-fe0f","🗑":"1f5d1","🗒️":"1f5d2-fe0f","🗒":"1f5d2","🗓️":"1f5d3-fe0f","🗓":"1f5d3","🗜️":"1f5dc-fe0f","🗜":"1f5dc","🗝️":"1f5dd-fe0f","🗝":"1f5dd","🗞️":"1f5de-fe0f","🗞":"1f5de","🗡️":"1f5e1-fe0f","🗡":"1f5e1","🗣️":"1f5e3-fe0f","🗣":"1f5e3","🗨️":"1f5e8-fe0f","🗨":"1f5e8","🗯️":"1f5ef-fe0f","🗯":"1f5ef","🗳️":"1f5f3-fe0f","🗳":"1f5f3","🗺️":"1f5fa-fe0f","🗺":"1f5fa","🛠️":"1f6e0-fe0f","🛠":"1f6e0","🛡️":"1f6e1-fe0f","🛡":"1f6e1","🛢️":"1f6e2-fe0f","🛢":"1f6e2","🛰️":"1f6f0-fe0f","🛰":"1f6f0","🍽️":"1f37d-fe0f","🍽":"1f37d","👁️":"1f441-fe0f","👁":"1f441","🕴️":"1f574-fe0f","🕴":"1f574","🕵️":"1f575-fe0f","🕵":"1f575","🖐️":"1f590-fe0f","🖐":"1f590","🏔️":"1f3d4-fe0f","🏔":"1f3d4","🏕️":"1f3d5-fe0f","🏕":"1f3d5","🏖️":"1f3d6-fe0f","🏖":"1f3d6","🏗️":"1f3d7-fe0f","🏗":"1f3d7","🏘️":"1f3d8-fe0f","🏘":"1f3d8","🏙️":"1f3d9-fe0f","🏙":"1f3d9","🏚️":"1f3da-fe0f","🏚":"1f3da","🏛️":"1f3db-fe0f","🏛":"1f3db","🏜️":"1f3dc-fe0f","🏜":"1f3dc","🏝️":"1f3dd-fe0f","🏝":"1f3dd","🏞️":"1f3de-fe0f","🏞":"1f3de","🏟️":"1f3df-fe0f","🏟":"1f3df","🛋️":"1f6cb-fe0f","🛋":"1f6cb","🛍️":"1f6cd-fe0f","🛍":"1f6cd","🛎️":"1f6ce-fe0f","🛎":"1f6ce","🛏️":"1f6cf-fe0f","🛏":"1f6cf","🛣️":"1f6e3-fe0f","🛣":"1f6e3","🛤️":"1f6e4-fe0f","🛤":"1f6e4","🛥️":"1f6e5-fe0f","🛥":"1f6e5","🛩️":"1f6e9-fe0f","🛩":"1f6e9","🛳️":"1f6f3-fe0f","🛳":"1f6f3","🌤️":"1f324-fe0f","🌤":"1f324","🌥️":"1f325-fe0f","🌥":"1f325","🌦️":"1f326-fe0f","🌦":"1f326","🖱️":"1f5b1-fe0f","🖱":"1f5b1","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9-fe0f","©":"00a9","®️":"00ae-fe0f","®":"00ae","‼️":"203c-fe0f","‼":"203c","⁉️":"2049-fe0f","⁉":"2049","™️":"2122-fe0f","™":"2122","ℹ️":"2139-fe0f","ℹ":"2139","↔️":"2194-fe0f","↔":"2194","↕️":"2195-fe0f","↕":"2195","↖️":"2196-fe0f","↖":"2196","↗️":"2197-fe0f","↗":"2197","↘️":"2198-fe0f","↘":"2198","↙️":"2199-fe0f","↙":"2199","↩️":"21a9-fe0f","↩":"21a9","↪️":"21aa-fe0f","↪":"21aa","⌚️":"231a-fe0f","⌚":"231a","⌛️":"231b-fe0f","⌛":"231b","Ⓜ️":"24c2-fe0f","Ⓜ":"24c2","▪️":"25aa-fe0f","▪":"25aa","▫️":"25ab-fe0f","▫":"25ab","▶️":"25b6-fe0f","▶":"25b6","◀️":"25c0-fe0f","◀":"25c0","◻️":"25fb-fe0f","◻":"25fb","◼️":"25fc-fe0f","◼":"25fc","◽️":"25fd-fe0f","◽":"25fd","◾️":"25fe-fe0f","◾":"25fe","☀️":"2600-fe0f","☀":"2600","☁️":"2601-fe0f","☁":"2601","☎️":"260e-fe0f","☎":"260e","☑️":"2611-fe0f","☑":"2611","☔️":"2614-fe0f","☔":"2614","☕️":"2615-fe0f","☕":"2615","☝️":"261d-fe0f","☝":"261d","☺️":"263a-fe0f","☺":"263a","♈️":"2648-fe0f","♈":"2648","♉️":"2649-fe0f","♉":"2649","♊️":"264a-fe0f","♊":"264a","♋️":"264b-fe0f","♋":"264b","♌️":"264c-fe0f","♌":"264c","♍️":"264d-fe0f","♍":"264d","♎️":"264e-fe0f","♎":"264e","♏️":"264f-fe0f","♏":"264f","♐️":"2650-fe0f","♐":"2650","♑️":"2651-fe0f","♑":"2651","♒️":"2652-fe0f","♒":"2652","♓️":"2653-fe0f","♓":"2653","♠️":"2660-fe0f","♠":"2660","♣️":"2663-fe0f","♣":"2663","♥️":"2665-fe0f","♥":"2665","♦️":"2666-fe0f","♦":"2666","♨️":"2668-fe0f","♨":"2668","♻️":"267b-fe0f","♻":"267b","♿️":"267f-fe0f","♿":"267f","⚓️":"2693-fe0f","⚓":"2693","⚠️":"26a0-fe0f","⚠":"26a0","⚡️":"26a1-fe0f","⚡":"26a1","⚪️":"26aa-fe0f","⚪":"26aa","⚫️":"26ab-fe0f","⚫":"26ab","⚽️":"26bd-fe0f","⚽":"26bd","⚾️":"26be-fe0f","⚾":"26be","⛄️":"26c4-fe0f","⛄":"26c4","⛅️":"26c5-fe0f","⛅":"26c5","⛔️":"26d4-fe0f","⛔":"26d4","⛪️":"26ea-fe0f","⛪":"26ea","⛲️":"26f2-fe0f","⛲":"26f2","⛳️":"26f3-fe0f","⛳":"26f3","⛵️":"26f5-fe0f","⛵":"26f5","⛺️":"26fa-fe0f","⛺":"26fa","⛽️":"26fd-fe0f","⛽":"26fd","✂️":"2702-fe0f","✂":"2702","✈️":"2708-fe0f","✈":"2708","✉️":"2709-fe0f","✉":"2709","✌️":"270c-fe0f","✌":"270c","✏️":"270f-fe0f","✏":"270f","✒️":"2712-fe0f","✒":"2712","✔️":"2714-fe0f","✔":"2714","✖️":"2716-fe0f","✖":"2716","✳️":"2733-fe0f","✳":"2733","✴️":"2734-fe0f","✴":"2734","❄️":"2744-fe0f","❄":"2744","❇️":"2747-fe0f","❇":"2747","❗️":"2757-fe0f","❗":"2757","❤️":"2764-fe0f","❤":"2764","➡️":"27a1-fe0f","➡":"27a1","⤴️":"2934-fe0f","⤴":"2934","⤵️":"2935-fe0f","⤵":"2935","⬅️":"2b05-fe0f","⬅":"2b05","⬆️":"2b06-fe0f","⬆":"2b06","⬇️":"2b07-fe0f","⬇":"2b07","⬛️":"2b1b-fe0f","⬛":"2b1b","⬜️":"2b1c-fe0f","⬜":"2b1c","⭐️":"2b50-fe0f","⭐":"2b50","⭕️":"2b55-fe0f","⭕":"2b55","〰️":"3030-fe0f","〰":"3030","〽️":"303d-fe0f","〽":"303d","㊗️":"3297-fe0f","㊗":"3297","㊙️":"3299-fe0f","㊙":"3299","✝️":"271d-fe0f","✝":"271d","⌨️":"2328-fe0f","⌨":"2328","✍️":"270d-fe0f","✍":"270d","⏏️":"23cf-fe0f","⏏":"23cf","⏭️":"23ed-fe0f","⏭":"23ed","⏮️":"23ee-fe0f","⏮":"23ee","⏯️":"23ef-fe0f","⏯":"23ef","⏱️":"23f1-fe0f","⏱":"23f1","⏲️":"23f2-fe0f","⏲":"23f2","⏸️":"23f8-fe0f","⏸":"23f8","⏹️":"23f9-fe0f","⏹":"23f9","⏺️":"23fa-fe0f","⏺":"23fa","☂️":"2602-fe0f","☂":"2602","☃️":"2603-fe0f","☃":"2603","☄️":"2604-fe0f","☄":"2604","☘️":"2618-fe0f","☘":"2618","☠️":"2620-fe0f","☠":"2620","☢️":"2622-fe0f","☢":"2622","☣️":"2623-fe0f","☣":"2623","☦️":"2626-fe0f","☦":"2626","☪️":"262a-fe0f","☪":"262a","☮️":"262e-fe0f","☮":"262e","☯️":"262f-fe0f","☯":"262f","☸️":"2638-fe0f","☸":"2638","☹️":"2639-fe0f","☹":"2639","⚒️":"2692-fe0f","⚒":"2692","⚔️":"2694-fe0f","⚔":"2694","⚖️":"2696-fe0f","⚖":"2696","⚗️":"2697-fe0f","⚗":"2697","⚙️":"2699-fe0f","⚙":"2699","⚛️":"269b-fe0f","⚛":"269b","⚜️":"269c-fe0f","⚜":"269c","⚰️":"26b0-fe0f","⚰":"26b0","⚱️":"26b1-fe0f","⚱":"26b1","⛈️":"26c8-fe0f","⛈":"26c8","⛏️":"26cf-fe0f","⛏":"26cf","⛑️":"26d1-fe0f","⛑":"26d1","⛓️":"26d3-fe0f","⛓":"26d3","⛩️":"26e9-fe0f","⛩":"26e9","⛰️":"26f0-fe0f","⛰":"26f0","⛱️":"26f1-fe0f","⛱":"26f1","⛴️":"26f4-fe0f","⛴":"26f4","⛷️":"26f7-fe0f","⛷":"26f7","⛸️":"26f8-fe0f","⛸":"26f8","⛹️":"26f9-fe0f","⛹":"26f9","✡️":"2721-fe0f","✡":"2721","❣️":"2763-fe0f","❣":"2763","🥉":"1f949","🥈":"1f948","🥇":"1f947","🤺":"1f93a","🥅":"1f945","🤾":"1f93e","🇿":"1f1ff","🤽":"1f93d","🥋":"1f94b","🥊":"1f94a","🤼":"1f93c","🤹":"1f939","🤸":"1f938","🛶":"1f6f6","🛵":"1f6f5","🛴":"1f6f4","🛒":"1f6d2","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🛑":"1f6d1","🆎":"1f18e","🆑":"1f191","🇾":"1f1fe","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🥄":"1f944","🆙":"1f199","🆚":"1f19a","🥂":"1f942","🥃":"1f943","🈁":"1f201","🥙":"1f959","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🥘":"1f958","🈸":"1f238","🈹":"1f239","🥗":"1f957","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🥖":"1f956","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🥕":"1f955","🌇":"1f307","🌈":"1f308","🥔":"1f954","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🥓":"1f953","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🥒":"1f952","🌠":"1f320","🌰":"1f330","🥑":"1f951","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🥐":"1f950","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🥀":"1f940","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🦏":"1f98f","🍔":"1f354","🍕":"1f355","🍖":"1f356","🦎":"1f98e","🍗":"1f357","🍘":"1f358","🍙":"1f359","🦍":"1f98d","🍚":"1f35a","🍛":"1f35b","🦌":"1f98c","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🦋":"1f98b","🍠":"1f360","🍡":"1f361","🦊":"1f98a","🍢":"1f362","🍣":"1f363","🦉":"1f989","🍤":"1f364","🍥":"1f365","🦈":"1f988","🍦":"1f366","🦇":"1f987","🍧":"1f367","🇽":"1f1fd","🍨":"1f368","🦆":"1f986","🍩":"1f369","🦅":"1f985","🍪":"1f36a","🖤":"1f5a4","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🤞":"1f91e","🍰":"1f370","🍱":"1f371","🍲":"1f372","🤝":"1f91d","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🤛":"1f91b","🤜":"1f91c","🎄":"1f384","🎅":"1f385","🎆":"1f386","🤚":"1f91a","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🤙":"1f919","🎍":"1f38d","🕺":"1f57a","🎎":"1f38e","🤳":"1f933","🎏":"1f38f","🤰":"1f930","🎐":"1f390","🤦":"1f926","🤷":"1f937","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🤶":"1f936","🎨":"1f3a8","🤵":"1f935","🎩":"1f3a9","🎪":"1f3aa","🤴":"1f934","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🤧":"1f927","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🤥":"1f925","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🤤":"1f924","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🤣":"1f923","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🤢":"1f922","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🤡":"1f921","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🤠":"1f920","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682",
-"🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🏅":"1f3c5","🏴":"1f3f4","📸":"1f4f8","🛌":"1f6cc","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🛫":"1f6eb","🛬":"1f6ec","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥁":"1f941","🦐":"1f990","🦑":"1f991","🥚":"1f95a","🥛":"1f95b","🥜":"1f95c","🥝":"1f95d","🥞":"1f95e","🇼":"1f1fc","🇻":"1f1fb","🇺":"1f1fa","🇹":"1f1f9","🇸":"1f1f8","🇷":"1f1f7","🇶":"1f1f6","🇵":"1f1f5","🇴":"1f1f4","🇳":"1f1f3","🇲":"1f1f2","🇱":"1f1f1","🇰":"1f1f0","🇯":"1f1ef","🇮":"1f1ee","🇭":"1f1ed","🇬":"1f1ec","🇫":"1f1eb","🇪":"1f1ea","🇩":"1f1e9","🇨":"1f1e8","🇧":"1f1e7","🇦":"1f1e6","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✅":"2705","✊":"270a","✋":"270b","✨":"2728","❌":"274c","❎":"274e","❓":"2753","❔":"2754","❕":"2755","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","©":"00a9","®":"00ae","‼":"203c","⁉":"2049","™":"2122","ℹ":"2139","↔":"2194","↕":"2195","↖":"2196","↗":"2197","↘":"2198","↙":"2199","↩":"21a9","↪":"21aa","⌚":"231a","⌛":"231b","Ⓜ":"24c2","▪":"25aa","▫":"25ab","▶":"25b6","◀":"25c0","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","☀":"2600","☁":"2601","☎":"260e","☑":"2611","☔":"2614","☕":"2615","☝":"261d","☺":"263a","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","♠":"2660","♣":"2663","♥":"2665","♦":"2666","♨":"2668","♻":"267b","♿":"267f","⚓":"2693","⚠":"26a0","⚡":"26a1","⚪":"26aa","⚫":"26ab","⚽":"26bd","⚾":"26be","⛄":"26c4","⛅":"26c5","⛔":"26d4","⛪":"26ea","⛲":"26f2","⛳":"26f3","⛵":"26f5","⛺":"26fa","⛽":"26fd","✂":"2702","✈":"2708","✉":"2709","✌":"270c","✏":"270f","✒":"2712","✔":"2714","✖":"2716","✳":"2733","✴":"2734","❄":"2744","❇":"2747","❗":"2757","❤":"2764","➡":"27a1","⤴":"2934","⤵":"2935","⬅":"2b05","⬆":"2b06","⬇":"2b07","⬛":"2b1b","⬜":"2b1c","⭐":"2b50","⭕":"2b55","〰":"3030","〽":"303d","㊗":"3297","㊙":"3299","🀄":"1f004","🅿":"1f17f","🈂":"1f202","🈚":"1f21a","🈯":"1f22f","🈷":"1f237","🎞":"1f39e","🎟":"1f39f","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏵":"1f3f5","🏷":"1f3f7","📽":"1f4fd","✝":"271d","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗨":"1f5e8","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","✍":"270d","🖐":"1f590","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛳":"1f6f3","⏏":"23cf","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☂":"2602","☃":"2603","☄":"2604","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☪":"262a","☮":"262e","☯":"262f","☸":"2638","☹":"2639","⚒":"2692","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9","✡":"2721","❣":"2763","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1"},a.imagePathPNG="https://cdn.jsdelivr.net/emojione/assets/png/",a.imagePathSVG="https://cdn.jsdelivr.net/emojione/assets/svg/",a.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",a.imageType="png",a.imageTitleTag=!0,a.sprites=!1,a.unicodeAlt=!0,a.ascii=!1,a.cacheBustParam="?v=2.2.7",a.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnames+")","gi"),a.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),a.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.unicodeRegexp+")","gi"),a.toImage=function(b){return b=a.unicodeToImage(b),b=a.shortnameToImage(b)},a.unifyUnicode=function(b){return b=a.toShort(b),b=a.shortnameToUnicode(b)},a.shortnameToAscii=function(b){var c,d=a.objectFlip(a.asciiList);return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b].unicode[a.emojioneList[b].unicode.length-1],"undefined"!=typeof d[c]?d[c]:b):b})},a.shortnameToUnicode=function(b){var c,d,e;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b].unicode[0].toUpperCase(),d=a.emojioneList[b].fname,e=a.emojioneList[b].uc,a.convert(e)):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,d,e,f){return"undefined"!=typeof f&&""!==f&&a.unescapeHTML(f)in a.asciiList?(f=a.unescapeHTML(f),c=a.asciiList[f].toUpperCase(),e+a.convert(c)):b})),b},a.shortnameToImage=function(b){var c,d,e,f;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(d=a.emojioneList[b].unicode[a.emojioneList[b].unicode.length-1],f=a.imageTitleTag?'title="'+b+'"':"",e=a.unicodeAlt?a.convert(d.toUpperCase()):b,c="png"===a.imageType?a.sprites?'<span class="emojione emojione-'+d+'" '+f+">"+e+"</span>":'<img class="emojione" alt="'+e+'" '+f+' src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,g,h,i){return"undefined"!=typeof i&&""!==i&&a.unescapeHTML(i)in a.asciiList?(i=a.unescapeHTML(i),d=a.asciiList[i],f=a.imageTitleTag?'title="'+a.escapeHTML(i)+'"':"",e=a.unicodeAlt?a.convert(d.toUpperCase()):a.escapeHTML(i),c="png"===a.imageType?a.sprites?h+'<span class="emojione emojione-'+d+'" '+f+">"+e+"</span>":h+'<img class="emojione" alt="'+e+'" '+f+' src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':h+'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b})),b},a.unicodeToImage=function(b){var c,d,e,f,g,h,i=a.mapUnicodeToShort();return b=b.replace(a.regUnicode,function(b){return"undefined"!=typeof b&&""!==b&&b in a.jsEscapeMap?(d=a.jsEscapeMap[b],e=i[d],f=a.emojioneList[e].fname,g=a.unicodeAlt?a.convert(d.toUpperCase()):e,h=a.imageTitleTag?'title="'+e+'"':"",c="png"===a.imageType?a.sprites?'<span class="emojione emojione-'+d+'" '+h+">"+g+"</span>":'<img class="emojione" alt="'+g+'" '+h+' src="'+a.imagePathPNG+f+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+g+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<img class="emojione" alt="'+g+'" '+h+' src="'+a.imagePathSVG+f+".svg"+a.cacheBustParam+'"/>'):b})},a.toShort=function(b){var c=a.getUnicodeReplacementRegEx(),d=a.mapUnicodeCharactersToShort();return a.replaceAll(b,c,d)},a.convert=function(a){if(a.indexOf("-")>-1){for(var b=[],c=a.split("-"),d=0;d<c.length;d++){var e=parseInt(c[d],16);if(e>=65536&&1114111>=e){var f=Math.floor((e-65536)/1024)+55296,g=(e-65536)%1024+56320;e=String.fromCharCode(f)+String.fromCharCode(g)}else e=String.fromCharCode(e);b.push(e)}return b.join("")}var c=parseInt(a,16);if(c>=65536&&1114111>=c){var f=Math.floor((c-65536)/1024)+55296,g=(c-65536)%1024+56320;return String.fromCharCode(f)+String.fromCharCode(g)}return String.fromCharCode(c)},a.escapeHTML=function(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return a.replace(/[&<>"']/g,function(a){return b[a]})},a.unescapeHTML=function(a){var b={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return a.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(a){return b[a]})},a.mapEmojioneList=function(b){for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d=0,e=a.emojioneList[c].unicode.length;e>d;d++){var f=a.emojioneList[c].unicode[d];b(f,c)}},a.mapUnicodeToShort=function(){return a.memMapShortToUnicode||(a.memMapShortToUnicode={},a.mapEmojioneList(function(b,c){a.memMapShortToUnicode[b]=c})),a.memMapShortToUnicode},a.memoizeReplacement=function(){if(!a.unicodeReplacementRegEx||!a.memMapShortToUnicodeCharacters){var b=[];a.memMapShortToUnicodeCharacters={},a.mapEmojioneList(function(c,d){var e=a.convert(c);a.emojioneList[d].isCanonical&&(a.memMapShortToUnicodeCharacters[e]=d),b.push(e)}),a.unicodeReplacementRegEx=b.join("|")}},a.mapUnicodeCharactersToShort=function(){return a.memoizeReplacement(),a.memMapShortToUnicodeCharacters},a.getUnicodeReplacementRegEx=function(){return a.memoizeReplacement(),a.unicodeReplacementRegEx},a.objectFlip=function(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c},a.escapeRegExp=function(a){return a.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g,"\\$&")},a.replaceAll=function(b,c,d){var e=a.escapeRegExp(c),f=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+e+")","gi"),g=function(a,b){return"undefined"==typeof b||""===b?a:d[b]};return b.replace(f,g)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione); \ No newline at end of file
diff --git a/build/js/jsxc/lib/favico.js/favico.js b/build/js/jsxc/lib/favico.js/favico.js
deleted file mode 100644
index 530c986..0000000
--- a/build/js/jsxc/lib/favico.js/favico.js
+++ /dev/null
@@ -1,857 +0,0 @@
-/**
- * @license MIT
- * @fileOverview Favico animations
- * @author Miroslav Magda, http://blog.ejci.net
- * @version 0.3.10
- */
-
-/**
- * Create new favico instance
- * @param {Object} Options
- * @return {Object} Favico object
- * @example
- * var favico = new Favico({
- * bgColor : '#d00',
- * textColor : '#fff',
- * fontFamily : 'sans-serif',
- * fontStyle : 'bold',
- * position : 'down',
- * type : 'circle',
- * animation : 'slide',
- * dataUrl: function(url){},
- * win: top
- * });
- */
-(function () {
-
- var Favico = (function (opt) {
- 'use strict';
- opt = (opt) ? opt : {};
- var _def = {
- bgColor: '#d00',
- textColor: '#fff',
- fontFamily: 'sans-serif', //Arial,Verdana,Times New Roman,serif,sans-serif,...
- fontStyle: 'bold', //normal,italic,oblique,bold,bolder,lighter,100,200,300,400,500,600,700,800,900
- type: 'circle',
- position: 'down', // down, up, left, leftup (upleft)
- animation: 'slide',
- elementId: false,
- dataUrl: false,
- win: window
- };
- var _opt, _orig, _h, _w, _canvas, _context, _img, _ready, _lastBadge, _running, _readyCb, _stop, _browser, _animTimeout, _drawTimeout, _doc;
-
- _browser = {};
- _browser.ff = typeof InstallTrigger != 'undefined';
- _browser.chrome = !!window.chrome;
- _browser.opera = !!window.opera || navigator.userAgent.indexOf('Opera') >= 0;
- _browser.ie = /*@cc_on!@*/false;
- _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 = false;
- /**
- * Initialize favico
- */
- var init = function () {
- //merge initial options
- _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;
- var isLeft = _opt.position.indexOf('left') > -1;
-
- //transform animation
- if (isUp || isLeft) {
- for (var i = 0; i < animation.types['' + _opt.animation].length; i++) {
- var step = animation.types['' + _opt.animation][i];
-
- if (isUp) {
- if (step.y < 0.6) {
- step.y = step.y - 0.4;
- } else {
- step.y = step.y - 2 * step.y + (1 - step.w);
- }
- }
-
- if (isLeft) {
- if (step.x < 0.6) {
- step.x = step.x - 0.4;
- } else {
- 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();
- //create temp canvas
- _canvas = document.createElement('canvas');
- //create temp image
- _img = document.createElement('img');
- if (_orig.hasAttribute('href')) {
- _img.setAttribute('crossOrigin', 'anonymous');
- //get width/height
- _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', _orig.getAttribute('href'));
- } else {
- _img.onload = function () {
- _h = 32;
- _w = 32;
- _img.height = _h;
- _img.width = _w;
- _canvas.height = _h;
- _canvas.width = _w;
- _context = _canvas.getContext('2d');
- icon.ready();
- };
- _img.setAttribute('src', '');
- }
-
- };
- /**
- * Icon namespace
- */
- var icon = {};
- /**
- * Icon is ready (reset icon) and start animation (if ther is any)
- */
- icon.ready = function () {
- _ready = true;
- icon.reset();
- _readyCb();
- };
- /**
- * Reset icon to default state
- */
- icon.reset = function () {
- //reset
- if (!_ready) {
- return;
- }
- _queue = [];
- _lastBadge = false;
- _running = false;
- _context.clearRect(0, 0, _w, _h);
- _context.drawImage(_img, 0, 0, _w, _h);
- //_stop=true;
- link.setIcon(_canvas);
- //webcam('stop');
- //video('stop');
- window.clearTimeout(_animTimeout);
- window.clearTimeout(_drawTimeout);
- };
- /**
- * Start animation
- */
- icon.start = function () {
- if (!_ready || _running) {
- return;
- }
- var finished = function () {
- _lastBadge = _queue[0];
- _running = false;
- if (_queue.length > 0) {
- _queue.shift();
- icon.start();
- } else {
-
- }
- };
- if (_queue.length > 0) {
- _running = true;
- var run = function () {
- // apply options for this animation
- ['type', 'animation', 'bgColor', 'textColor', 'fontFamily', 'fontStyle'].forEach(function (a) {
- if (a in _queue[0].options) {
- _opt[a] = _queue[0].options[a];
- }
- });
- animation.run(_queue[0].options, function () {
- finished();
- }, false);
- };
- if (_lastBadge) {
- animation.run(_lastBadge.options, function () {
- run();
- }, true);
- } else {
- run();
- }
- }
- };
-
- /**
- * Badge types
- */
- var type = {};
- var options = function (opt) {
- opt.n = ((typeof opt.n) === 'number') ? Math.abs(opt.n | 0) : 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;
- return opt;
- };
- /**
- * Generate circle
- * @param {Object} opt Badge options
- */
- type.circle = function (opt) {
- opt = options(opt);
- var more = false;
- if (opt.len === 2) {
- opt.x = opt.x - opt.w * 0.4;
- opt.w = opt.w * 1.4;
- more = true;
- } else if (opt.len >= 3) {
- opt.x = opt.x - opt.w * 0.65;
- opt.w = opt.w * 1.65;
- more = true;
- }
- _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 ? 0.85 : 1)) + "px " + _opt.fontFamily;
- _context.textAlign = 'center';
- if (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);
- } else {
- _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 + ')';
- //_context.fillText((more) ? '9+' : opt.n, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.15));
- if ((typeof opt.n) === 'number' && opt.n > 999) {
- _context.fillText(((opt.n > 9999) ? 9 : Math.floor(opt.n / 1000)) + 'k+', Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.2));
- } else {
- _context.fillText(opt.n, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.15));
- }
- _context.closePath();
- };
- /**
- * Generate rectangle
- * @param {Object} opt Badge options
- */
- type.rectangle = function (opt) {
- opt = options(opt);
- var more = false;
- if (opt.len === 2) {
- opt.x = opt.x - opt.w * 0.4;
- opt.w = opt.w * 1.4;
- more = true;
- } else if (opt.len >= 3) {
- opt.x = opt.x - opt.w * 0.65;
- opt.w = opt.w * 1.65;
- more = true;
- }
- _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 ? 0.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 + ')';
- //_context.fillText((more) ? '9+' : opt.n, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.15));
- if ((typeof opt.n) === 'number' && opt.n > 999) {
- _context.fillText(((opt.n > 9999) ? 9 : Math.floor(opt.n / 1000)) + 'k+', Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.2));
- } else {
- _context.fillText(opt.n, Math.floor(opt.x + opt.w / 2), Math.floor(opt.y + opt.h - opt.h * 0.15));
- }
- _context.closePath();
- };
-
- /**
- * Set badge
- */
- var badge = function (number, opts) {
- opts = ((typeof opts) === 'string' ? {
- animation: opts
- } : opts) || {};
- _readyCb = function () {
- try {
- if (typeof (number) === 'number' ? (number > 0) : (number !== '')) {
- var q = {
- type: 'badge',
- options: {
- n: number
- }
- };
- if ('animation' in opts && animation.types['' + opts.animation]) {
- q.options.animation = '' + opts.animation;
- }
- if ('type' in opts && type['' + opts.type]) {
- q.options.type = '' + opts.type;
- }
- ['bgColor', 'textColor'].forEach(function (o) {
- if (o in opts) {
- q.options[o] = hexToRgb(opts[o]);
- }
- });
- ['fontStyle', 'fontFamily'].forEach(function (o) {
- if (o in opts) {
- q.options[o] = opts[o];
- }
- });
- _queue.push(q);
- if (_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);
- }
- };
- if (_ready) {
- _readyCb();
- }
- };
-
- /**
- * Set image as icon
- */
- var image = function (imageElement) {
- _readyCb = function () {
- try {
- var w = imageElement.width;
- var h = imageElement.height;
- var newImg = document.createElement('img');
- var ratio = (w / _w < h / _h) ? (w / _w) : (h / _h);
- newImg.setAttribute('crossOrigin', 'anonymous');
- newImg.onload=function(){
- _context.clearRect(0, 0, _w, _h);
- _context.drawImage(newImg, 0, 0, _w, _h);
- link.setIcon(_canvas);
- };
- newImg.setAttribute('src', imageElement.getAttribute('src'));
- newImg.height = (h / ratio);
- newImg.width = (w / ratio);
- } catch (e) {
- throw new Error('Error setting image. Message: ' + e.message);
- }
- };
- if (_ready) {
- _readyCb();
- }
- };
- /**
- * Set video as icon
- */
- var video = function (videoElement) {
- _readyCb = function () {
- try {
- if (videoElement === 'stop') {
- _stop = true;
- icon.reset();
- _stop = false;
- return;
- }
- //var w = videoElement.width;
- //var h = videoElement.height;
- //var ratio = (w / _w < h / _h) ? (w / _w) : (h / _h);
- videoElement.addEventListener('play', function () {
- drawVideo(this);
- }, false);
-
- } catch (e) {
- throw new Error('Error setting video. Message: ' + e.message);
- }
- };
- if (_ready) {
- _readyCb();
- }
- };
- /**
- * Set video as icon
- */
- var webcam = function (action) {
- //UR
- if (!window.URL || !window.URL.createObjectURL) {
- window.URL = window.URL || {};
- window.URL.createObjectURL = function (obj) {
- return obj;
- };
- }
- if (_browser.supported) {
- var newVideo = false;
- navigator.getUserMedia = navigator.getUserMedia || navigator.oGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
- _readyCb = function () {
- try {
- if (action === 'stop') {
- _stop = true;
- icon.reset();
- _stop = false;
- return;
- }
- newVideo = document.createElement('video');
- newVideo.width = _w;
- newVideo.height = _h;
- navigator.getUserMedia({
- video: true,
- audio: false
- }, function (stream) {
- newVideo.src = URL.createObjectURL(stream);
- newVideo.play();
- drawVideo(newVideo);
- }, function () {
- });
- } catch (e) {
- throw new Error('Error setting webcam. Message: ' + e.message);
- }
- };
- if (_ready) {
- _readyCb();
- }
- }
-
- };
-
- /**
- * Draw video to context and repeat :)
- */
- function drawVideo(video) {
- if (video.paused || video.ended || _stop) {
- return false;
- }
- //nasty hack for FF webcam (Thanks to Julian Ćwirko, kontakt@redsunmedia.pl)
- try {
- _context.clearRect(0, 0, _w, _h);
- _context.drawImage(video, 0, 0, _w, _h);
- } catch (e) {
-
- }
- _drawTimeout = setTimeout(function () {
- drawVideo(video);
- }, animation.duration);
- link.setIcon(_canvas);
- }
-
- var link = {};
- /**
- * Get icon from HEAD tag or create a new <link> element
- */
- link.getIcon = function () {
- var elm = false;
- //get link element
- var getLink = function () {
- var link = _doc.getElementsByTagName('head')[0].getElementsByTagName('link');
- for (var l = link.length, i = (l - 1); i >= 0; i--) {
- if ((/(^|\s)icon(\s|$)/i).test(link[i].getAttribute('rel'))) {
- return link[i];
- }
- }
- return false;
- };
- if (_opt.element) {
- elm = _opt.element;
- } else if (_opt.elementId) {
- //if img element identified by elementId
- elm = _doc.getElementById(_opt.elementId);
- elm.setAttribute('href', elm.getAttribute('src'));
- } else {
- //if link element
- elm = getLink();
- if (elm === false) {
- elm = _doc.createElement('link');
- elm.setAttribute('rel', 'icon');
- _doc.getElementsByTagName('head')[0].appendChild(elm);
- }
- }
- elm.setAttribute('type', 'image/png');
- return elm;
- };
- link.setIcon = function (canvas) {
- var url = canvas.toDataURL('image/png');
- if (_opt.dataUrl) {
- //if using custom exporter
- _opt.dataUrl(url);
- }
- if (_opt.element) {
- _opt.element.setAttribute('href', url);
- _opt.element.setAttribute('src', url);
- } else if (_opt.elementId) {
- //if is attached to element (image)
- var elm = _doc.getElementById(_opt.elementId);
- elm.setAttribute('href', url);
- elm.setAttribute('src', url);
- } else {
- //if is attached to fav icon
- if (_browser.ff || _browser.opera) {
- //for FF we need to "recreate" element, atach to dom and remove old <link>
- //var originalType = _orig.getAttribute('rel');
- var old = _orig;
- _orig = _doc.createElement('link');
- //_orig.setAttribute('rel', originalType);
- if (_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);
- if (old.parentNode) {
- old.parentNode.removeChild(old);
- }
- } else {
- _orig.setAttribute('href', url);
- }
- }
- };
-
- //http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb#answer-5624139
- //HEX to RGB convertor
- 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)
- } : false;
- }
-
- /**
- * Merge options
- */
- function merge(def, opt) {
- var mergedOpt = {};
- var attrname;
- for (attrname in def) {
- mergedOpt[attrname] = def[attrname];
- }
- for (attrname in opt) {
- mergedOpt[attrname] = opt[attrname];
- }
- return mergedOpt;
- }
-
- /**
- * Cross-browser page visibility shim
- * http://stackoverflow.com/questions/12536562/detect-whether-a-window-is-visible
- */
- function isPageHidden() {
- return _doc.hidden || _doc.msHidden || _doc.webkitHidden || _doc.mozHidden;
- }
-
- /**
- * @namespace animation
- */
- var animation = {};
- /**
- * Animation "frame" duration
- */
- animation.duration = 40;
- /**
- * Animation types (none,fade,pop,slide)
- */
- animation.types = {};
- animation.types.fade = [{
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.0
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.1
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.2
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.3
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.4
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.5
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.6
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.7
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.8
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 0.9
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 1.0
- }];
- animation.types.none = [{
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 1
- }];
- animation.types.pop = [{
- x: 1,
- y: 1,
- w: 0,
- h: 0,
- o: 1
- }, {
- x: 0.9,
- y: 0.9,
- w: 0.1,
- h: 0.1,
- o: 1
- }, {
- x: 0.8,
- y: 0.8,
- w: 0.2,
- h: 0.2,
- o: 1
- }, {
- x: 0.7,
- y: 0.7,
- w: 0.3,
- h: 0.3,
- o: 1
- }, {
- x: 0.6,
- y: 0.6,
- w: 0.4,
- h: 0.4,
- o: 1
- }, {
- x: 0.5,
- y: 0.5,
- w: 0.5,
- h: 0.5,
- o: 1
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 1
- }];
- animation.types.popFade = [{
- x: 0.75,
- y: 0.75,
- w: 0,
- h: 0,
- o: 0
- }, {
- x: 0.65,
- y: 0.65,
- w: 0.1,
- h: 0.1,
- o: 0.2
- }, {
- x: 0.6,
- y: 0.6,
- w: 0.2,
- h: 0.2,
- o: 0.4
- }, {
- x: 0.55,
- y: 0.55,
- w: 0.3,
- h: 0.3,
- o: 0.6
- }, {
- x: 0.50,
- y: 0.50,
- w: 0.4,
- h: 0.4,
- o: 0.8
- }, {
- x: 0.45,
- y: 0.45,
- w: 0.5,
- h: 0.5,
- o: 0.9
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 1
- }];
- animation.types.slide = [{
- x: 0.4,
- y: 1,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.9,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.9,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.8,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.7,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.6,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.5,
- w: 0.6,
- h: 0.6,
- o: 1
- }, {
- x: 0.4,
- y: 0.4,
- w: 0.6,
- h: 0.6,
- o: 1
- }];
- /**
- * Run animation
- * @param {Object} opt Animation options
- * @param {Object} cb Callabak after all steps are done
- * @param {Object} revert Reverse order? true|false
- * @param {Object} step Optional step number (frame bumber)
- */
- animation.run = function (opt, cb, revert, step) {
- var animationType = animation.types[isPageHidden() ? 'none' : _opt.animation];
- if (revert === true) {
- step = (typeof step !== 'undefined') ? step : animationType.length - 1;
- } else {
- step = (typeof step !== 'undefined') ? step : 0;
- }
- cb = (cb) ? cb : function () {
- };
- if ((step < animationType.length) && (step >= 0)) {
- type[_opt.type](merge(opt, animationType[step]));
- _animTimeout = setTimeout(function () {
- if (revert) {
- step = step - 1;
- } else {
- step = step + 1;
- }
- animation.run(opt, cb, revert, step);
- }, animation.duration);
-
- link.setIcon(_canvas);
- } else {
- cb();
- return;
- }
- };
- //auto init
- init();
- return {
- badge: badge,
- video: video,
- image: image,
- webcam: webcam,
- reset: icon.reset,
- browser: {
- supported: _browser.supported
- }
- };
- });
-
- // AMD / RequireJS
- if (typeof define !== 'undefined' && define.amd) {
- define([], function () {
- return Favico;
- });
- }
- // CommonJS
- else if (typeof module !== 'undefined' && module.exports) {
- module.exports = Favico;
- }
- // included directly via <script> tag
- else {
- this.Favico = Favico;
- }
-
-})();
diff --git a/build/js/jsxc/lib/i18next/i18next.min.js b/build/js/jsxc/lib/i18next/i18next.min.js
deleted file mode 100644
index 5d5a298..0000000
--- a/build/js/jsxc/lib/i18next/i18next.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n));
-}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D});
diff --git a/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js b/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js
deleted file mode 100644
index 79e6ed1..0000000
--- a/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a}); \ No newline at end of file
diff --git a/build/js/jsxc/lib/jquery.min.js b/build/js/jsxc/lib/jquery.min.js
deleted file mode 100644
index e5ace11..0000000
--- a/build/js/jsxc/lib/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
-},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))
-},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
diff --git a/build/js/jsxc/lib/jquery.ui.min.js b/build/js/jsxc/lib/jquery.ui.min.js
deleted file mode 100644
index f26f027..0000000
--- a/build/js/jsxc/lib/jquery.ui.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*! jQuery UI - v1.10.3 - 2013-10-20
-* http://jqueryui.com
-* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js
-* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
-
-(function(e,t){function i(t,i){var s,n,r,o=t.nodeName.toLowerCase();return"area"===o?(s=t.parentNode,n=s.name,t.href&&n&&"map"===s.nodeName.toLowerCase()?(r=e("img[usemap=#"+n+"]")[0],!!r&&a(r)):!1):(/input|select|textarea|button|object/.test(o)?!t.disabled:"a"===o?t.href||i:i)&&a(t)}function a(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var s=0,n=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.3",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,a){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),a&&a.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var a,s,n=e(this[0]);n.length&&n[0]!==document;){if(a=n.css("position"),("absolute"===a||"relative"===a||"fixed"===a)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++s)})},removeUniqueId:function(){return this.each(function(){n.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,a){return!!e.data(t,a[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var a=e.attr(t,"tabindex"),s=isNaN(a);return(s||a>=0)&&i(t,!s)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(i,a){function s(t,i,a,s){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,a&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===a?["Left","Right"]:["Top","Bottom"],r=a.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+a]=function(i){return i===t?o["inner"+a].call(this):this.each(function(){e(this).css(r,s(this,i)+"px")})},e.fn["outer"+a]=function(t,i){return"number"!=typeof t?o["outer"+a].call(this,t):this.each(function(){e(this).css(r,s(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,a){var s,n=e.ui[t].prototype;for(s in a)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([i,a[s]])},call:function(e,t,i){var a,s=e.plugins[t];if(s&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(a=0;s.length>a;a++)e.options[s[a][0]]&&s[a][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var a=i&&"left"===i?"scrollLeft":"scrollTop",s=!1;return t[a]>0?!0:(t[a]=1,s=t[a]>0,t[a]=0,s)}})})(jQuery);(function(e,t){var i=0,s=Array.prototype.slice,a=e.cleanData;e.cleanData=function(t){for(var i,s=0;null!=(i=t[s]);s++)try{e(i).triggerHandler("remove")}catch(n){}a(t)},e.widget=function(i,s,a){var n,r,o,h,l={},u=i.split(".")[0];i=i.split(".")[1],n=u+"-"+i,a||(a=s,s=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[u]=e[u]||{},r=e[u][i],o=e[u][i]=function(e,i){return this._createWidget?(arguments.length&&this._createWidget(e,i),t):new o(e,i)},e.extend(o,r,{version:a.version,_proto:e.extend({},a),_childConstructors:[]}),h=new s,h.options=e.widget.extend({},h.options),e.each(a,function(i,a){return e.isFunction(a)?(l[i]=function(){var e=function(){return s.prototype[i].apply(this,arguments)},t=function(e){return s.prototype[i].apply(this,e)};return function(){var i,s=this._super,n=this._superApply;return this._super=e,this._superApply=t,i=a.apply(this,arguments),this._super=s,this._superApply=n,i}}(),t):(l[i]=a,t)}),o.prototype=e.widget.extend(h,{widgetEventPrefix:r?h.widgetEventPrefix:i},l,{constructor:o,namespace:u,widgetName:i,widgetFullName:n}),r?(e.each(r._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete r._childConstructors):s._childConstructors.push(o),e.widget.bridge(i,o)},e.widget.extend=function(i){for(var a,n,r=s.call(arguments,1),o=0,h=r.length;h>o;o++)for(a in r[o])n=r[o][a],r[o].hasOwnProperty(a)&&n!==t&&(i[a]=e.isPlainObject(n)?e.isPlainObject(i[a])?e.widget.extend({},i[a],n):e.widget.extend({},n):n);return i},e.widget.bridge=function(i,a){var n=a.prototype.widgetFullName||i;e.fn[i]=function(r){var o="string"==typeof r,h=s.call(arguments,1),l=this;return r=!o&&h.length?e.widget.extend.apply(null,[r].concat(h)):r,o?this.each(function(){var s,a=e.data(this,n);return a?e.isFunction(a[r])&&"_"!==r.charAt(0)?(s=a[r].apply(a,h),s!==a&&s!==t?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):t):e.error("no such method '"+r+"' for "+i+" widget instance"):e.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+r+"'")}):this.each(function(){var t=e.data(this,n);t?t.option(r||{})._init():e.data(this,n,new a(r,this))}),l}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,s){s=e(s||this.defaultElement||this)[0],this.element=e(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),s!==this&&(e.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===s&&this.destroy()}}),this.document=e(s.style?s.ownerDocument:s.document||s),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(i,s){var a,n,r,o=i;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof i)if(o={},a=i.split("."),i=a.shift(),a.length){for(n=o[i]=e.widget.extend({},this.options[i]),r=0;a.length-1>r;r++)n[a[r]]=n[a[r]]||{},n=n[a[r]];if(i=a.pop(),s===t)return n[i]===t?null:n[i];n[i]=s}else{if(s===t)return this.options[i]===t?null:this.options[i];o[i]=s}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,a){var n,r=this;"boolean"!=typeof i&&(a=s,s=i,i=!1),a?(s=n=e(s),this.bindings=this.bindings.add(s)):(a=s,s=this.element,n=this.widget()),e.each(a,function(a,o){function h(){return i||r.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?r[o]:o).apply(r,arguments):t}"string"!=typeof o&&(h.guid=o.guid=o.guid||h.guid||e.guid++);var l=a.match(/^(\w+)\s*(.*)$/),u=l[1]+r.eventNamespace,c=l[2];c?n.delegate(c,u,h):s.bind(u,h)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var a,n,r=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],n=i.originalEvent)for(a in n)a in i||(i[a]=n[a]);return this.element.trigger(i,s),!(e.isFunction(r)&&r.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,a,n){"string"==typeof a&&(a={effect:a});var r,o=a?a===!0||"number"==typeof a?i:a.effect||i:t;a=a||{},"number"==typeof a&&(a={duration:a}),r=!e.isEmptyObject(a),a.complete=n,a.delay&&s.delay(a.delay),r&&e.effects&&e.effects.effect[o]?s[t](a):o!==t&&s[o]?s[o](a.duration,a.easing,n):s.queue(function(i){e(this)[t](),n&&n.call(s[0]),i()})}})})(jQuery);(function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.3",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,a=1===i.which,n="string"==typeof this.options.cancel&&i.target.nodeName?e(i.target).closest(this.options.cancel).length:!1;return a&&!n&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return s._mouseMove(e)},this._mouseUpDelegate=function(e){return s._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery);(function(e,t){function i(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function s(t,i){return parseInt(e.css(t,i),10)||0}function a(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,r=Math.max,o=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,c=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var i,s,a=e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),r=a.children()[0];return e("body").append(a),i=r.offsetWidth,a.css("overflow","scroll"),s=r.offsetWidth,i===s&&(s=a[0].clientWidth),a.remove(),n=i-s},getScrollInfo:function(t){var i=t.isWindow?"":t.element.css("overflow-x"),s=t.isWindow?"":t.element.css("overflow-y"),a="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,n="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:n?e.position.scrollbarWidth():0,height:a?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]);return{element:i,isWindow:s,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return f.apply(this,arguments);t=e.extend({},t);var n,p,m,g,v,y,b=e(t.of),_=e.position.getWithinInfo(t.within),x=e.position.getScrollInfo(_),k=(t.collision||"flip").split(" "),w={};return y=a(b),b[0].preventDefault&&(t.at="left top"),p=y.width,m=y.height,g=y.offset,v=e.extend({},g),e.each(["my","at"],function(){var e,i,s=(t[this]||"").split(" ");1===s.length&&(s=l.test(s[0])?s.concat(["center"]):u.test(s[0])?["center"].concat(s):["center","center"]),s[0]=l.test(s[0])?s[0]:"center",s[1]=u.test(s[1])?s[1]:"center",e=c.exec(s[0]),i=c.exec(s[1]),w[this]=[e?e[0]:0,i?i[0]:0],t[this]=[d.exec(s[0])[0],d.exec(s[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===t.at[0]?v.left+=p:"center"===t.at[0]&&(v.left+=p/2),"bottom"===t.at[1]?v.top+=m:"center"===t.at[1]&&(v.top+=m/2),n=i(w.at,p,m),v.left+=n[0],v.top+=n[1],this.each(function(){var a,l,u=e(this),c=u.outerWidth(),d=u.outerHeight(),f=s(this,"marginLeft"),y=s(this,"marginTop"),D=c+f+s(this,"marginRight")+x.width,T=d+y+s(this,"marginBottom")+x.height,M=e.extend({},v),S=i(w.my,u.outerWidth(),u.outerHeight());"right"===t.my[0]?M.left-=c:"center"===t.my[0]&&(M.left-=c/2),"bottom"===t.my[1]?M.top-=d:"center"===t.my[1]&&(M.top-=d/2),M.left+=S[0],M.top+=S[1],e.support.offsetFractions||(M.left=h(M.left),M.top=h(M.top)),a={marginLeft:f,marginTop:y},e.each(["left","top"],function(i,s){e.ui.position[k[i]]&&e.ui.position[k[i]][s](M,{targetWidth:p,targetHeight:m,elemWidth:c,elemHeight:d,collisionPosition:a,collisionWidth:D,collisionHeight:T,offset:[n[0]+S[0],n[1]+S[1]],my:t.my,at:t.at,within:_,elem:u})}),t.using&&(l=function(e){var i=g.left-M.left,s=i+p-c,a=g.top-M.top,n=a+m-d,h={target:{element:b,left:g.left,top:g.top,width:p,height:m},element:{element:u,left:M.left,top:M.top,width:c,height:d},horizontal:0>s?"left":i>0?"right":"center",vertical:0>n?"top":a>0?"bottom":"middle"};c>p&&p>o(i+s)&&(h.horizontal="center"),d>m&&m>o(a+n)&&(h.vertical="middle"),h.important=r(o(i),o(s))>r(o(a),o(n))?"horizontal":"vertical",t.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,a=s.isWindow?s.scrollLeft:s.offset.left,n=s.width,o=e.left-t.collisionPosition.marginLeft,h=a-o,l=o+t.collisionWidth-n-a;t.collisionWidth>n?h>0&&0>=l?(i=e.left+h+t.collisionWidth-n-a,e.left+=h-i):e.left=l>0&&0>=h?a:h>l?a+n-t.collisionWidth:a:h>0?e.left+=h:l>0?e.left-=l:e.left=r(e.left-o,e.left)},top:function(e,t){var i,s=t.within,a=s.isWindow?s.scrollTop:s.offset.top,n=t.within.height,o=e.top-t.collisionPosition.marginTop,h=a-o,l=o+t.collisionHeight-n-a;t.collisionHeight>n?h>0&&0>=l?(i=e.top+h+t.collisionHeight-n-a,e.top+=h-i):e.top=l>0&&0>=h?a:h>l?a+n-t.collisionHeight:a:h>0?e.top+=h:l>0?e.top-=l:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var i,s,a=t.within,n=a.offset.left+a.scrollLeft,r=a.width,h=a.isWindow?a.scrollLeft:a.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,c=l+t.collisionWidth-r-h,d="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+d+p+f+t.collisionWidth-r-n,(0>i||o(u)>i)&&(e.left+=d+p+f)):c>0&&(s=e.left-t.collisionPosition.marginLeft+d+p+f-h,(s>0||c>o(s))&&(e.left+=d+p+f))},top:function(e,t){var i,s,a=t.within,n=a.offset.top+a.scrollTop,r=a.height,h=a.isWindow?a.scrollTop:a.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,c=l+t.collisionHeight-r-h,d="top"===t.my[1],p=d?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-r-n,e.top+p+f+m>u&&(0>s||o(u)>s)&&(e.top+=p+f+m)):c>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,e.top+p+f+m>c&&(i>0||c>o(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,a,n,r=document.getElementsByTagName("body")[0],o=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(n in s)t.style[n]=s[n];t.appendChild(o),i=r||document.documentElement,i.insertBefore(t,i.firstChild),o.style.cssText="position: absolute; left: 10.7432222px;",a=e(o).offset().left,e.support.offsetFractions=a>10&&11>a,t.innerHTML="",i.removeChild(t)}()})(jQuery);(function(e){e.widget("ui.draggable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var i=this.options;return this.helper||i.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(i.iframeFix===!0?"iframe":i.iframeFix).each(function(){e("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var i=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),!i){var a=this._uiHash();if(this._trigger("drag",t,a)===!1)return this._mouseUp({}),!1;this.position=a.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var i=this,a=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(a=e.ui.ddmanager.drop(this,t)),this.dropped&&(a=this.dropped,this.dropped=!1),"original"!==this.options.helper||e.contains(this.element[0].ownerDocument,this.element[0])?("invalid"===this.options.revert&&!a||"valid"===this.options.revert&&a||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,a)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",t)!==!1&&i._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1):!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return this.options.handle?!!e(t.target).closest(this.element.find(this.options.handle)).length:!0},_createHelper:function(t){var i=this.options,a=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return a.parents("body").length||a.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),a[0]===this.element[0]||/(fixed|absolute)/.test(a.css("position"))||a.css("position","absolute"),a},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,a,s=this.options;return s.containment?"window"===s.containment?(this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):"document"===s.containment?(this.containment=[0,0,e(document).width()-this.helperProportions.width-this.margins.left,(e(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):s.containment.constructor===Array?(this.containment=s.containment,undefined):("parent"===s.containment&&(s.containment=this.helper[0].parentNode),i=e(s.containment),a=i[0],a&&(t="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(t?Math.max(a.scrollWidth,a.offsetWidth):a.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(a.scrollHeight,a.offsetHeight):a.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),undefined):(this.containment=null,undefined)},_convertPositionTo:function(t,i){i||(i=this.position);var a="absolute"===t?1:-1,s="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent;return this.offset.scroll||(this.offset.scroll={top:s.scrollTop(),left:s.scrollLeft()}),{top:i.top+this.offset.relative.top*a+this.offset.parent.top*a-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top)*a,left:i.left+this.offset.relative.left*a+this.offset.parent.left*a-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)*a}},_generatePosition:function(t){var i,a,s,n,r=this.options,o="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=t.pageX,h=t.pageY;return this.offset.scroll||(this.offset.scroll={top:o.scrollTop(),left:o.scrollLeft()}),this.originalPosition&&(this.containment&&(this.relative_container?(a=this.relative_container.offset(),i=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(h=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),r.grid&&(s=r.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/r.grid[1])*r.grid[1]:this.originalPageY,h=i?s-this.offset.click.top>=i[1]||s-this.offset.click.top>i[3]?s:s-this.offset.click.top>=i[1]?s-r.grid[1]:s+r.grid[1]:s,n=r.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/r.grid[0])*r.grid[0]:this.originalPageX,l=i?n-this.offset.click.left>=i[0]||n-this.offset.click.left>i[2]?n:n-this.offset.click.left>=i[0]?n-r.grid[0]:n+r.grid[0]:n)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,i,a){return a=a||this._uiHash(),e.ui.plugin.call(this,t,[i,a]),"drag"===t&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,i,a)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,i){var a=e(this).data("ui-draggable"),s=a.options,n=e.extend({},i,{item:a.element});a.sortables=[],e(s.connectToSortable).each(function(){var i=e.data(this,"ui-sortable");i&&!i.options.disabled&&(a.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",t,n))})},stop:function(t,i){var a=e(this).data("ui-draggable"),s=e.extend({},i,{item:a.element});e.each(a.sortables,function(){this.instance.isOver?(this.instance.isOver=0,a.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,"original"===a.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,s))})},drag:function(t,i){var a=e(this).data("ui-draggable"),s=this;e.each(a.sortables,function(){var n=!1,r=this;this.instance.positionAbs=a.positionAbs,this.instance.helperProportions=a.helperProportions,this.instance.offset.click=a.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(n=!0,e.each(a.sortables,function(){return this.instance.positionAbs=a.positionAbs,this.instance.helperProportions=a.helperProportions,this.instance.offset.click=a.offset.click,this!==r&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(r.instance.element[0],this.instance.element[0])&&(n=!1),n})),n?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(s).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=a.offset.click.top,this.instance.offset.click.left=a.offset.click.left,this.instance.offset.parent.left-=a.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=a.offset.parent.top-this.instance.offset.parent.top,a._trigger("toSortable",t),a.dropped=this.instance.element,a.currentItem=a.element,this.instance.fromOutside=a),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),a._trigger("fromSortable",t),a.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(){var t=e("body"),i=e(this).data("ui-draggable").options;t.css("cursor")&&(i._cursor=t.css("cursor")),t.css("cursor",i.cursor)},stop:function(){var t=e(this).data("ui-draggable").options;t._cursor&&e("body").css("cursor",t._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,i){var a=e(i.helper),s=e(this).data("ui-draggable").options;a.css("opacity")&&(s._opacity=a.css("opacity")),a.css("opacity",s.opacity)},stop:function(t,i){var a=e(this).data("ui-draggable").options;a._opacity&&e(i.helper).css("opacity",a._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(){var t=e(this).data("ui-draggable");t.scrollParent[0]!==document&&"HTML"!==t.scrollParent[0].tagName&&(t.overflowOffset=t.scrollParent.offset())},drag:function(t){var i=e(this).data("ui-draggable"),a=i.options,s=!1;i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(a.axis&&"x"===a.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-t.pageY<a.scrollSensitivity?i.scrollParent[0].scrollTop=s=i.scrollParent[0].scrollTop+a.scrollSpeed:t.pageY-i.overflowOffset.top<a.scrollSensitivity&&(i.scrollParent[0].scrollTop=s=i.scrollParent[0].scrollTop-a.scrollSpeed)),a.axis&&"y"===a.axis||(i.overflowOffset.left+i.scrollParent[0].offsetWidth-t.pageX<a.scrollSensitivity?i.scrollParent[0].scrollLeft=s=i.scrollParent[0].scrollLeft+a.scrollSpeed:t.pageX-i.overflowOffset.left<a.scrollSensitivity&&(i.scrollParent[0].scrollLeft=s=i.scrollParent[0].scrollLeft-a.scrollSpeed))):(a.axis&&"x"===a.axis||(t.pageY-e(document).scrollTop()<a.scrollSensitivity?s=e(document).scrollTop(e(document).scrollTop()-a.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<a.scrollSensitivity&&(s=e(document).scrollTop(e(document).scrollTop()+a.scrollSpeed))),a.axis&&"y"===a.axis||(t.pageX-e(document).scrollLeft()<a.scrollSensitivity?s=e(document).scrollLeft(e(document).scrollLeft()-a.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<a.scrollSensitivity&&(s=e(document).scrollLeft(e(document).scrollLeft()+a.scrollSpeed)))),s!==!1&&e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(i,t)}}),e.ui.plugin.add("draggable","snap",{start:function(){var t=e(this).data("ui-draggable"),i=t.options;t.snapElements=[],e(i.snap.constructor!==String?i.snap.items||":data(ui-draggable)":i.snap).each(function(){var i=e(this),a=i.offset();this!==t.element[0]&&t.snapElements.push({item:this,width:i.outerWidth(),height:i.outerHeight(),top:a.top,left:a.left})})},drag:function(t,i){var a,s,n,r,o,l,h,u,d,c,p=e(this).data("ui-draggable"),f=p.options,m=f.snapTolerance,g=i.offset.left,v=g+p.helperProportions.width,y=i.offset.top,b=y+p.helperProportions.height;for(d=p.snapElements.length-1;d>=0;d--)o=p.snapElements[d].left,l=o+p.snapElements[d].width,h=p.snapElements[d].top,u=h+p.snapElements[d].height,o-m>v||g>l+m||h-m>b||y>u+m||!e.contains(p.snapElements[d].item.ownerDocument,p.snapElements[d].item)?(p.snapElements[d].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[d].item})),p.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(a=m>=Math.abs(h-b),s=m>=Math.abs(u-y),n=m>=Math.abs(o-v),r=m>=Math.abs(l-g),a&&(i.position.top=p._convertPositionTo("relative",{top:h-p.helperProportions.height,left:0}).top-p.margins.top),s&&(i.position.top=p._convertPositionTo("relative",{top:u,left:0}).top-p.margins.top),n&&(i.position.left=p._convertPositionTo("relative",{top:0,left:o-p.helperProportions.width}).left-p.margins.left),r&&(i.position.left=p._convertPositionTo("relative",{top:0,left:l}).left-p.margins.left)),c=a||s||n||r,"outer"!==f.snapMode&&(a=m>=Math.abs(h-y),s=m>=Math.abs(u-b),n=m>=Math.abs(o-g),r=m>=Math.abs(l-v),a&&(i.position.top=p._convertPositionTo("relative",{top:h,left:0}).top-p.margins.top),s&&(i.position.top=p._convertPositionTo("relative",{top:u-p.helperProportions.height,left:0}).top-p.margins.top),n&&(i.position.left=p._convertPositionTo("relative",{top:0,left:o}).left-p.margins.left),r&&(i.position.left=p._convertPositionTo("relative",{top:0,left:l-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[d].snapping&&(a||s||n||r||c)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,t,e.extend(p._uiHash(),{snapItem:p.snapElements[d].item})),p.snapElements[d].snapping=a||s||n||r||c)}}),e.ui.plugin.add("draggable","stack",{start:function(){var t,i=this.data("ui-draggable").options,a=e.makeArray(e(i.stack)).sort(function(t,i){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(i).css("zIndex"),10)||0)});a.length&&(t=parseInt(e(a[0]).css("zIndex"),10)||0,e(a).each(function(i){e(this).css("zIndex",t+i)}),this.css("zIndex",t+a.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,i){var a=e(i.helper),s=e(this).data("ui-draggable").options;a.css("zIndex")&&(s._zIndex=a.css("zIndex")),a.css("zIndex",s.zIndex)},stop:function(t,i){var a=e(this).data("ui-draggable").options;a._zIndex&&e(i.helper).css("zIndex",a._zIndex)}})})(jQuery);(function(e){function t(e,t,i){return e>t&&t+i>e}e.widget("ui.droppable",{version:"1.10.3",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t=this.options,i=t.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(i)?i:function(e){return e.is(i)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},e.ui.ddmanager.droppables[t.scope]=e.ui.ddmanager.droppables[t.scope]||[],e.ui.ddmanager.droppables[t.scope].push(this),t.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){for(var t=0,i=e.ui.ddmanager.droppables[this.options.scope];i.length>t;t++)i[t]===this&&i.splice(t,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,i){"accept"===t&&(this.accept=e.isFunction(i)?i:function(e){return e.is(i)}),e.Widget.prototype._setOption.apply(this,arguments)},_activate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",t,this.ui(i))},_deactivate:function(t){var i=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",t,this.ui(i))},_over:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(i)))},_out:function(t){var i=e.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(i)))},_drop:function(t,i){var a=i||e.ui.ddmanager.current,s=!1;return a&&(a.currentItem||a.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=e.data(this,"ui-droppable");return t.options.greedy&&!t.options.disabled&&t.options.scope===a.options.scope&&t.accept.call(t.element[0],a.currentItem||a.element)&&e.ui.intersect(a,e.extend(t,{offset:t.element.offset()}),t.options.tolerance)?(s=!0,!1):undefined}),s?!1:this.accept.call(this.element[0],a.currentItem||a.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(a)),this.element):!1):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(e,i,a){if(!i.offset)return!1;var s,n,r=(e.positionAbs||e.position.absolute).left,o=r+e.helperProportions.width,l=(e.positionAbs||e.position.absolute).top,h=l+e.helperProportions.height,u=i.offset.left,d=u+i.proportions.width,c=i.offset.top,p=c+i.proportions.height;switch(a){case"fit":return r>=u&&d>=o&&l>=c&&p>=h;case"intersect":return r+e.helperProportions.width/2>u&&d>o-e.helperProportions.width/2&&l+e.helperProportions.height/2>c&&p>h-e.helperProportions.height/2;case"pointer":return s=(e.positionAbs||e.position.absolute).left+(e.clickOffset||e.offset.click).left,n=(e.positionAbs||e.position.absolute).top+(e.clickOffset||e.offset.click).top,t(n,c,i.proportions.height)&&t(s,u,i.proportions.width);case"touch":return(l>=c&&p>=l||h>=c&&p>=h||c>l&&h>p)&&(r>=u&&d>=r||o>=u&&d>=o||u>r&&o>d);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,i){var a,s,n=e.ui.ddmanager.droppables[t.options.scope]||[],r=i?i.type:null,o=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(a=0;n.length>a;a++)if(!(n[a].options.disabled||t&&!n[a].accept.call(n[a].element[0],t.currentItem||t.element))){for(s=0;o.length>s;s++)if(o[s]===n[a].element[0]){n[a].proportions.height=0;continue e}n[a].visible="none"!==n[a].element.css("display"),n[a].visible&&("mousedown"===r&&n[a]._activate.call(n[a],i),n[a].offset=n[a].element.offset(),n[a].proportions={width:n[a].element[0].offsetWidth,height:n[a].element[0].offsetHeight})}},drop:function(t,i){var a=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(a=this._drop.call(this,i)||a),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),a},dragStart:function(t,i){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)})},drag:function(t,i){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,i),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var a,s,n,r=e.ui.intersect(t,this,this.options.tolerance),o=!r&&this.isover?"isout":r&&!this.isover?"isover":null;o&&(this.options.greedy&&(s=this.options.scope,n=this.element.parents(":data(ui-droppable)").filter(function(){return e.data(this,"ui-droppable").options.scope===s}),n.length&&(a=e.data(n[0],"ui-droppable"),a.greedyChild="isover"===o)),a&&"isover"===o&&(a.isover=!1,a.isout=!0,a._out.call(a,i)),this[o]=!0,this["isout"===o?"isover":"isout"]=!1,this["isover"===o?"_over":"_out"].call(this,i),a&&"isout"===o&&(a.isout=!1,a.isover=!0,a._over.call(a,i)))}})},dragStop:function(t,i){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,i)}}})(jQuery);(function(e){function t(e){return parseInt(e,10)||0}function i(e){return!isNaN(parseInt(e,10))}e.widget("ui.resizable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var t,i,s,a,n,r=this,o=this.options;if(this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!o.aspectRatio,aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=o.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},i=0;t.length>i;i++)s=e.trim(t[i]),n="ui-resizable-"+s,a=e("<div class='ui-resizable-handle "+n+"'></div>"),a.css({zIndex:o.zIndex}),"se"===s&&a.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(a);this._renderAxis=function(t){var i,s,a,n;t=t||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=e(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=e(this.handles[i],this.element),n=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),a=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(a,n),this._proportionallyResize()),e(this.handles[i]).length},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){r.resizing||(this.className&&(a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=a&&a[1]?a[1]:"se")}),o.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){o.disabled||(e(this).removeClass("ui-resizable-autohide"),r._handles.show())}).mouseleave(function(){o.disabled||r.resizing||(e(this).addClass("ui-resizable-autohide"),r._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,i=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(t){var i,s,a=!1;for(i in this.handles)s=e(this.handles[i])[0],(s===t.target||e.contains(s,t.target))&&(a=!0);return!this.options.disabled&&a},_mouseStart:function(i){var s,a,n,r=this.options,o=this.element.position(),h=this.element;return this.resizing=!0,/absolute/.test(h.css("position"))?h.css({position:"absolute",top:h.css("top"),left:h.css("left")}):h.is(".ui-draggable")&&h.css({position:"absolute",top:o.top,left:o.left}),this._renderProxy(),s=t(this.helper.css("left")),a=t(this.helper.css("top")),r.containment&&(s+=e(r.containment).scrollLeft()||0,a+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:a},this.size=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:a},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:i.pageX,top:i.pageY},this.aspectRatio="number"==typeof r.aspectRatio?r.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===n?this.axis+"-resize":n),h.addClass("ui-resizable-resizing"),this._propagate("start",i),!0},_mouseDrag:function(t){var i,s=this.helper,a={},n=this.originalMousePosition,r=this.axis,o=this.position.top,h=this.position.left,l=this.size.width,u=this.size.height,c=t.pageX-n.left||0,d=t.pageY-n.top||0,p=this._change[r];return p?(i=p.apply(this,[t,c,d]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),this.position.top!==o&&(a.top=this.position.top+"px"),this.position.left!==h&&(a.left=this.position.left+"px"),this.size.width!==l&&(a.width=this.size.width+"px"),this.size.height!==u&&(a.height=this.size.height+"px"),s.css(a),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(a)||this._trigger("resize",t,this.ui()),!1):!1},_mouseStop:function(t){this.resizing=!1;var i,s,a,n,r,o,h,l=this.options,u=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),a=s&&e.ui.hasScroll(i[0],"left")?0:u.sizeDiff.height,n=s?0:u.sizeDiff.width,r={width:u.helper.width()-n,height:u.helper.height()-a},o=parseInt(u.element.css("left"),10)+(u.position.left-u.originalPosition.left)||null,h=parseInt(u.element.css("top"),10)+(u.position.top-u.originalPosition.top)||null,l.animate||this.element.css(e.extend(r,{top:h,left:o})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!l.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,s,a,n,r,o=this.options;r={minWidth:i(o.minWidth)?o.minWidth:0,maxWidth:i(o.maxWidth)?o.maxWidth:1/0,minHeight:i(o.minHeight)?o.minHeight:0,maxHeight:i(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||e)&&(t=r.minHeight*this.aspectRatio,a=r.minWidth/this.aspectRatio,s=r.maxHeight*this.aspectRatio,n=r.maxWidth/this.aspectRatio,t>r.minWidth&&(r.minWidth=t),a>r.minHeight&&(r.minHeight=a),r.maxWidth>s&&(r.maxWidth=s),r.maxHeight>n&&(r.maxHeight=n)),this._vBoundaries=r},_updateCache:function(e){this.offset=this.helper.offset(),i(e.left)&&(this.position.left=e.left),i(e.top)&&(this.position.top=e.top),i(e.height)&&(this.size.height=e.height),i(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,s=this.size,a=this.axis;return i(e.height)?e.width=e.height*this.aspectRatio:i(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===a&&(e.left=t.left+(s.width-e.width),e.top=null),"nw"===a&&(e.top=t.top+(s.height-e.height),e.left=t.left+(s.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,s=this.axis,a=i(e.width)&&t.maxWidth&&t.maxWidth<e.width,n=i(e.height)&&t.maxHeight&&t.maxHeight<e.height,r=i(e.width)&&t.minWidth&&t.minWidth>e.width,o=i(e.height)&&t.minHeight&&t.minHeight>e.height,h=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,u=/sw|nw|w/.test(s),c=/nw|ne|n/.test(s);return r&&(e.width=t.minWidth),o&&(e.height=t.minHeight),a&&(e.width=t.maxWidth),n&&(e.height=t.maxHeight),r&&u&&(e.left=h-t.minWidth),a&&u&&(e.left=h-t.maxWidth),o&&c&&(e.top=l-t.minHeight),n&&c&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var e,t,i,s,a,n=this.helper||this.element;for(e=0;this._proportionallyResizeElements.length>e;e++){if(a=this._proportionallyResizeElements[e],!this.borderDif)for(this.borderDif=[],i=[a.css("borderTopWidth"),a.css("borderRightWidth"),a.css("borderBottomWidth"),a.css("borderLeftWidth")],s=[a.css("paddingTop"),a.css("paddingRight"),a.css("paddingBottom"),a.css("paddingLeft")],t=0;i.length>t;t++)this.borderDif[t]=(parseInt(i[t],10)||0)+(parseInt(s[t],10)||0);a.css({height:n.height()-this.borderDif[0]-this.borderDif[2]||0,width:n.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var t=this.element,i=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,i){var s=this.originalSize,a=this.originalPosition;return{top:a.top+i,height:s.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},sw:function(t,i,s){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,s]))},ne:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,s]))},nw:function(t,i,s){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,s]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).data("ui-resizable"),s=i.options,a=i._proportionallyResizeElements,n=a.length&&/textarea/i.test(a[0].nodeName),r=n&&e.ui.hasScroll(a[0],"left")?0:i.sizeDiff.height,o=n?0:i.sizeDiff.width,h={width:i.size.width-o,height:i.size.height-r},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,u=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(h,u&&l?{top:u,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};a&&a.length&&e(a[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var i,s,a,n,r,o,h,l=e(this).data("ui-resizable"),u=l.options,c=l.element,d=u.containment,p=d instanceof e?d.get(0):/parent/.test(d)?c.parent().get(0):d;p&&(l.containerElement=e(p),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(i=e(p),s=[],e(["Top","Right","Left","Bottom"]).each(function(e,a){s[e]=t(i.css("padding"+a))}),l.containerOffset=i.offset(),l.containerPosition=i.position(),l.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},a=l.containerOffset,n=l.containerSize.height,r=l.containerSize.width,o=e.ui.hasScroll(p,"left")?p.scrollWidth:r,h=e.ui.hasScroll(p)?p.scrollHeight:n,l.parentData={element:p,left:a.left,top:a.top,width:o,height:h}))},resize:function(t){var i,s,a,n,r=e(this).data("ui-resizable"),o=r.options,h=r.containerOffset,l=r.position,u=r._aspectRatio||t.shiftKey,c={top:0,left:0},d=r.containerElement;d[0]!==document&&/static/.test(d.css("position"))&&(c=h),l.left<(r._helper?h.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-h.left:r.position.left-c.left),u&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=o.helper?h.left:0),l.top<(r._helper?h.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-h.top:r.position.top),u&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?h.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top,i=Math.abs((r._helper?r.offset.left-c.left:r.offset.left-c.left)+r.sizeDiff.width),s=Math.abs((r._helper?r.offset.top-c.top:r.offset.top-h.top)+r.sizeDiff.height),a=r.containerElement.get(0)===r.element.parent().get(0),n=/relative|absolute/.test(r.containerElement.css("position")),a&&n&&(i-=r.parentData.left),i+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-i,u&&(r.size.height=r.size.width/r.aspectRatio)),s+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-s,u&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.containerOffset,a=t.containerPosition,n=t.containerElement,r=e(t.helper),o=r.offset(),h=r.outerWidth()-t.sizeDiff.width,l=r.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(n.css("position"))&&e(this).css({left:o.left-a.left-s.left,width:h,height:l}),t._helper&&!i.animate&&/static/.test(n.css("position"))&&e(this).css({left:o.left-a.left-s.left,width:h,height:l})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)})},resize:function(t,i){var s=e(this).data("ui-resizable"),a=s.options,n=s.originalSize,r=s.originalPosition,o={height:s.size.height-n.height||0,width:s.size.width-n.width||0,top:s.position.top-r.top||0,left:s.position.left-r.left||0},h=function(t,s){e(t).each(function(){var t=e(this),a=e(this).data("ui-resizable-alsoresize"),n={},r=s&&s.length?s:t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(e,t){var i=(a[t]||0)+(o[t]||0);i&&i>=0&&(n[t]=i||null)}),t.css(n)})};"object"!=typeof a.alsoResize||a.alsoResize.nodeType?h(a.alsoResize):e.each(a.alsoResize,function(e,t){h(e,t)})},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).data("ui-resizable");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).data("ui-resizable");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).data("ui-resizable"),i=t.options,s=t.size,a=t.originalSize,n=t.originalPosition,r=t.axis,o="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=o[0]||1,l=o[1]||1,u=Math.round((s.width-a.width)/h)*h,c=Math.round((s.height-a.height)/l)*l,d=a.width+u,p=a.height+c,f=i.maxWidth&&d>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=o,g&&(d+=h),v&&(p+=l),f&&(d-=h),m&&(p-=l),/^(se|s|e)$/.test(r)?(t.size.width=d,t.size.height=p):/^(ne)$/.test(r)?(t.size.width=d,t.size.height=p,t.position.top=n.top-c):/^(sw)$/.test(r)?(t.size.width=d,t.size.height=p,t.position.left=n.left-u):(t.size.width=d,t.size.height=p,t.position.top=n.top-c,t.position.left=n.left-u)}})})(jQuery);(function(e){e.widget("ui.selectable",e.ui.mouse,{version:"1.10.3",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(i.options.filter,i.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),i=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:i.left,top:i.top,right:i.left+t.outerWidth(),bottom:i.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var i=this,s=this.options;this.opos=[t.pageX,t.pageY],this.options.disabled||(this.selectees=e(s.filter,this.element[0]),this._trigger("start",t),e(s.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=e.data(this,"selectable-item");s.startselected=!0,t.metaKey||t.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",t,{unselecting:s.element}))}),e(t.target).parents().addBack().each(function(){var s,a=e.data(this,"selectable-item");return a?(s=!t.metaKey&&!t.ctrlKey||!a.$element.hasClass("ui-selected"),a.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),a.unselecting=!s,a.selecting=s,a.selected=s,s?i._trigger("selecting",t,{selecting:a.element}):i._trigger("unselecting",t,{unselecting:a.element}),!1):undefined}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var i,s=this,a=this.options,n=this.opos[0],r=this.opos[1],o=t.pageX,h=t.pageY;return n>o&&(i=o,o=n,n=i),r>h&&(i=h,h=r,r=i),this.helper.css({left:n,top:r,width:o-n,height:h-r}),this.selectees.each(function(){var i=e.data(this,"selectable-item"),l=!1;i&&i.element!==s.element[0]&&("touch"===a.tolerance?l=!(i.left>o||n>i.right||i.top>h||r>i.bottom):"fit"===a.tolerance&&(l=i.left>n&&o>i.right&&i.top>r&&h>i.bottom),l?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",t,{selecting:i.element}))):(i.selecting&&((t.metaKey||t.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",t,{unselecting:i.element}))),i.selected&&(t.metaKey||t.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",t,{unselecting:i.element})))))}),!1}},_mouseStop:function(t){var i=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",t,{unselected:s.element})}),e(".ui-selecting",this.element[0]).each(function(){var s=e.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",t,{selected:s.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery);(function(e){function t(e,t,i){return e>t&&t+i>e}function i(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))}e.widget("ui.sortable",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,i){"disabled"===t?(this.options[t]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,i){var s=null,a=!1,n=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,n.widgetName+"-item")===n?(s=e(this),!1):undefined}),e.data(t.target,n.widgetName+"-item")===n&&(s=e(t.target)),s?!this.options.handle||i||(e(this.options.handle,s).find("*").addBack().each(function(){this===t.target&&(a=!0)}),a)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(t,i,s){var a,n,r=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,r.cursorAt&&this._adjustOffsetFromHelper(r.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),r.containment&&this._setContainment(),r.cursor&&"auto"!==r.cursor&&(n=this.document.find("body"),this.storedCursor=n.css("cursor"),n.css("cursor",r.cursor),this.storedStylesheet=e("<style>*{ cursor: "+r.cursor+" !important; }</style>").appendTo(n)),r.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",r.opacity)),r.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",r.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(a=this.containers.length-1;a>=0;a--)this.containers[a]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!r.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,a,n,r=this.options,o=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<r.scrollSensitivity?this.scrollParent[0].scrollTop=o=this.scrollParent[0].scrollTop+r.scrollSpeed:t.pageY-this.overflowOffset.top<r.scrollSensitivity&&(this.scrollParent[0].scrollTop=o=this.scrollParent[0].scrollTop-r.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<r.scrollSensitivity?this.scrollParent[0].scrollLeft=o=this.scrollParent[0].scrollLeft+r.scrollSpeed:t.pageX-this.overflowOffset.left<r.scrollSensitivity&&(this.scrollParent[0].scrollLeft=o=this.scrollParent[0].scrollLeft-r.scrollSpeed)):(t.pageY-e(document).scrollTop()<r.scrollSensitivity?o=e(document).scrollTop(e(document).scrollTop()-r.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<r.scrollSensitivity&&(o=e(document).scrollTop(e(document).scrollTop()+r.scrollSpeed)),t.pageX-e(document).scrollLeft()<r.scrollSensitivity?o=e(document).scrollLeft(e(document).scrollLeft()-r.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<r.scrollSensitivity&&(o=e(document).scrollLeft(e(document).scrollLeft()+r.scrollSpeed))),o!==!1&&e.ui.ddmanager&&!r.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],a=s.item[0],n=this._intersectsWithPointer(s),n&&s.instance===this.currentContainer&&a!==this.currentItem[0]&&this.placeholder[1===n?"next":"prev"]()[0]!==a&&!e.contains(this.placeholder[0],a)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],a):!0)){if(this.direction=1===n?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var s=this,a=this.placeholder.offset(),n=this.options.axis,r={};n&&"x"!==n||(r.left=a.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),n&&"y"!==n||(r.top=a.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(r,parseInt(this.options.revert,10)||500,function(){s._clear(t)})}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},e(i).each(function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&s.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))}),!s.length&&t.key&&s.push(t.key+"="),s.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),s=[];return t=t||{},i.each(function(){s.push(e(t.item||this).attr(t.attribute||"id")||"")}),s},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,s=this.positionAbs.top,a=s+this.helperProportions.height,n=e.left,r=n+e.width,o=e.top,h=o+e.height,l=this.offset.click.top,u=this.offset.click.left,c="x"===this.options.axis||s+l>o&&h>s+l,d="y"===this.options.axis||t+u>n&&r>t+u,p=c&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:t+this.helperProportions.width/2>n&&r>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>o&&h>a-this.helperProportions.height/2},_intersectsWithPointer:function(e){var i="x"===this.options.axis||t(this.positionAbs.top+this.offset.click.top,e.top,e.height),s="y"===this.options.axis||t(this.positionAbs.left+this.offset.click.left,e.left,e.width),a=i&&s,n=this._getDragVerticalDirection(),r=this._getDragHorizontalDirection();return a?this.floating?r&&"right"===r||"down"===n?2:1:n&&("down"===n?2:1):!1},_intersectsWithSides:function(e){var i=t(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),s=t(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),a=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&s||"left"===n&&!s:a&&("down"===a&&i||"up"===a&&!i)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var i,s,a,n,r=[],o=[],h=this._connectWith();if(h&&t)for(i=h.length-1;i>=0;i--)for(a=e(h[i]),s=a.length-1;s>=0;s--)n=e.data(a[s],this.widgetFullName),n&&n!==this&&!n.options.disabled&&o.push([e.isFunction(n.options.items)?n.options.items.call(n.element):e(n.options.items,n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),n]);for(o.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=o.length-1;i>=0;i--)o[i][0].each(function(){r.push(this)});return e(r)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var i=0;t.length>i;i++)if(t[i]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var i,s,a,n,r,o,h,l,u=this.items,c=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(a=e(d[i]),s=a.length-1;s>=0;s--)n=e.data(a[s],this.widgetFullName),n&&n!==this&&!n.options.disabled&&(c.push([e.isFunction(n.options.items)?n.options.items.call(n.element[0],t,{item:this.currentItem}):e(n.options.items,n.element),n]),this.containers.push(n));for(i=c.length-1;i>=0;i--)for(r=c[i][1],o=c[i][0],s=0,l=o.length;l>s;s++)h=e(o[s]),h.data(this.widgetName+"-item",r),u.push({item:h,instance:r,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,a,n;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(a=this.options.toleranceElement?e(this.options.toleranceElement,s.item):s.item,t||(s.width=a.outerWidth(),s.height=a.outerHeight()),n=a.offset(),s.left=n.left,s.top=n.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)n=this.containers[i].element.offset(),this.containers[i].containerCache.left=n.left,this.containers[i].containerCache.top=n.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var i,s=t.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=t.currentItem[0].nodeName.toLowerCase(),a=e("<"+s+">",t.document[0]).addClass(i||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?t.currentItem.children().each(function(){e("<td>&#160;</td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(a)}):"img"===s&&a.attr("src",t.currentItem.attr("src")),i||a.css("visibility","hidden"),a},update:function(e,a){(!i||s.forcePlaceholderSize)&&(a.height()||a.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),a.width()||a.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(s.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),s.placeholder.update(t,t.placeholder)},_contactContainers:function(s){var a,n,r,o,h,l,u,c,d,p,f=null,m=null;for(a=this.containers.length-1;a>=0;a--)if(!e.contains(this.currentItem[0],this.containers[a].element[0]))if(this._intersectsWith(this.containers[a].containerCache)){if(f&&e.contains(this.containers[a].element[0],f.element[0]))continue;f=this.containers[a],m=a}else this.containers[a].containerCache.over&&(this.containers[a]._trigger("out",s,this._uiHash(this)),this.containers[a].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(r=1e4,o=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",u=this.positionAbs[h]+this.offset.click[h],n=this.items.length-1;n>=0;n--)e.contains(this.containers[m].element[0],this.items[n].item[0])&&this.items[n].item[0]!==this.currentItem[0]&&(!p||t(this.positionAbs.top+this.offset.click.top,this.items[n].top,this.items[n].height))&&(c=this.items[n].item.offset()[h],d=!1,Math.abs(c-u)>Math.abs(c+this.items[n][l]-u)&&(d=!0,c+=this.items[n][l]),r>Math.abs(c-u)&&(r=Math.abs(c-u),o=this.items[n],this.direction=d?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;o?this._rearrange(s,o,null,!0):this._rearrange(s,null,this.containers[m].element,!0),this._trigger("change",s,this._uiHash()),this.containers[m]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",s,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(t){var i=this.options,s=e.isFunction(i.helper)?e(i.helper.apply(this.element[0],[t,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||e("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,i,s,a=this.options;"parent"===a.containment&&(a.containment=this.helper[0].parentNode),("document"===a.containment||"window"===a.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===a.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===a.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(a.containment)||(t=e(a.containment)[0],i=e(a.containment).offset(),s="hidden"!==e(t).css("overflow"),this.containment=[i.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,i){i||(i=this.position);var s="absolute"===t?1:-1,a="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,n=/(html|body)/i.test(a[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():n?0:a.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():n?0:a.scrollLeft())*s}},_generatePosition:function(t){var i,s,a=this.options,n=t.pageX,r=t.pageY,o="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(o[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(n=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(r=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(n=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(r=this.containment[3]+this.offset.click.top)),a.grid&&(i=this.originalPageY+Math.round((r-this.originalPageY)/a.grid[1])*a.grid[1],r=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-a.grid[1]:i+a.grid[1]:i,s=this.originalPageX+Math.round((n-this.originalPageX)/a.grid[0])*a.grid[0],n=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-a.grid[0]:s+a.grid[0]:s)),{top:r-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:o.scrollTop()),left:n-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:o.scrollLeft())}},_rearrange:function(e,t,i,s){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var a=this.counter;this._delay(function(){a===this.counter&&this.refreshPositions(!s)})},_clear:function(e,t){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&s.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||s.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(s.push(function(e){this._trigger("remove",e,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)t||s.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),i=0;s.length>i;i++)s[i].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!1}if(t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!t){for(i=0;s.length>i;i++)s[i].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var i=t||this;return{helper:i.helper,placeholder:i.placeholder||e([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:t?t.element:null}}})})(jQuery);(function(e){var t=0,i={},a={};i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="hide",a.height=a.paddingTop=a.paddingBottom=a.borderTopWidth=a.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.10.3",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e(),content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),undefined):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t),undefined)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,a=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:n=this.headers[(s+1)%a];break;case i.LEFT:case i.UP:n=this.headers[(s-1+a)%a];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:n=this.headers[0];break;case i.END:n=this.headers[a-1]}n&&(e(t.target).attr("tabIndex",-1),e(n).attr("tabIndex",0),n.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var i,a=this.options,s=a.heightStyle,n=this.element.parent(),r=this.accordionId="ui-accordion-"+(this.element.attr("id")||++t);this.active=this._findActive(a.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(t){var i=e(this),a=i.attr("id"),s=i.next(),n=s.attr("id");a||(a=r+"-header-"+t,i.attr("id",a)),n||(n=r+"-panel-"+t,s.attr("id",n)),i.attr("aria-controls",n),s.attr("aria-labelledby",a)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(a.event),"fill"===s?(i=n.height(),this.element.siblings(":visible").each(function(){var t=e(this),a=t.css("position");"absolute"!==a&&"fixed"!==a&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(i=0,this.headers.next().each(function(){i=Math.max(i,e(this).css("height","").height())}).height(i))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,a=this.active,s=e(t.currentTarget),n=s[0]===a[0],r=n&&i.collapsible,o=r?e():s.next(),h=a.next(),l={oldHeader:a,oldPanel:h,newHeader:r?e():s,newPanel:o};t.preventDefault(),n&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=r?!1:this.headers.index(s),this.active=n?e():s,this._toggle(l),a.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&a.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),n||(s.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),s.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,a=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=a,this.options.animate?this._animate(i,a,t):(a.hide(),i.show(),this._toggleComplete(t)),a.attr({"aria-expanded":"false","aria-hidden":"true"}),a.prev().attr("aria-selected","false"),i.length&&a.length?a.prev().attr("tabIndex",-1):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,s){var n,r,o,h=this,l=0,u=e.length&&(!t.length||e.index()<t.index()),d=this.options.animate||{},c=u&&d.down||d,p=function(){h._toggleComplete(s)};return"number"==typeof c&&(o=c),"string"==typeof c&&(r=c),r=r||c.easing||d.easing,o=o||c.duration||d.duration,t.length?e.length?(n=e.show().outerHeight(),t.animate(i,{duration:o,easing:r,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(a,{duration:o,easing:r,complete:p,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?l+=i.now:"content"!==h.options.heightStyle&&(i.now=Math.round(n-t.outerHeight()-l),l=0)}}),undefined):t.animate(i,o,r,p):e.animate(a,o,r,p)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}})})(jQuery);(function(e){var t=0;e.widget("ui.autocomplete",{version:"1.10.3",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,i,a,s=this.element[0].nodeName.toLowerCase(),n="textarea"===s,r="input"===s;this.isMultiLine=n?!0:r?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[n||r?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(s){if(this.element.prop("readOnly"))return t=!0,a=!0,i=!0,undefined;t=!1,a=!1,i=!1;var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:t=!0,this._move("previousPage",s);break;case n.PAGE_DOWN:t=!0,this._move("nextPage",s);break;case n.UP:t=!0,this._keyEvent("previous",s);break;case n.DOWN:t=!0,this._keyEvent("next",s);break;case n.ENTER:case n.NUMPAD_ENTER:this.menu.active&&(t=!0,s.preventDefault(),this.menu.select(s));break;case n.TAB:this.menu.active&&this.menu.select(s);break;case n.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(s),s.preventDefault());break;default:i=!0,this._searchTimeout(s)}},keypress:function(a){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&a.preventDefault(),undefined;if(!i){var s=e.ui.keyCode;switch(a.keyCode){case s.PAGE_UP:this._move("previousPage",a);break;case s.PAGE_DOWN:this._move("nextPage",a);break;case s.UP:this._keyEvent("previous",a);break;case s.DOWN:this._keyEvent("next",a)}}},input:function(e){return a?(a=!1,e.preventDefault(),undefined):(this._searchTimeout(e),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(e),this._change(e),undefined)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(a){a.target===t.element[0]||a.target===i||e.contains(i,a.target)||t.close()})})},menufocus:function(t,i){if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),undefined;var a=i.item.data("ui-autocomplete-item");!1!==this._trigger("focus",t,{item:a})?t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(a.value):this.liveRegion.text(a.value)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),a=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=a,this._delay(function(){this.previous=a,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertBefore(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,a=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,a){a(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,s){a.xhr&&a.xhr.abort(),a.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){s(e)},error:function(){s([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):undefined},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var e=this,i=++t;return function(a){i===t&&e.__response(a),e.pending--,e.pending||e.element.removeClass("ui-autocomplete-loading")}},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({label:t.label||t.value,value:t.value||t.label},t)})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var a=this;e.each(i,function(e,i){a._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").append(e("<a>").text(i.label)).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this._value(this.term),this.menu.blur(),undefined):(this.menu[e](t),undefined):(this.search(null,t),undefined)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var a=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return a.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var t;this._superApply(arguments),this.options.disabled||this.cancelSearch||(t=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.text(t))}})})(jQuery);(function(e){var t,i,a,s,n="ui-button ui-widget ui-state-default ui-corner-all",r="ui-state-hover ui-state-active ",o="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",h=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},l=function(t){var i=t.name,a=t.form,s=e([]);return i&&(i=i.replace(/'/g,"\\'"),s=a?e(a).find("[name='"+i+"']"):e("[name='"+i+"']",t.ownerDocument).filter(function(){return!this.form})),s};e.widget("ui.button",{version:"1.10.3",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,h),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var r=this,o=this.options,u="checkbox"===this.type||"radio"===this.type,d=u?"":"ui-state-active",c="ui-state-focus";null===o.label&&(o.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){o.disabled||this===t&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){o.disabled||e(this).removeClass(d)}).bind("click"+this.eventNamespace,function(e){o.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this.element.bind("focus"+this.eventNamespace,function(){r.buttonElement.addClass(c)}).bind("blur"+this.eventNamespace,function(){r.buttonElement.removeClass(c)}),u&&(this.element.bind("change"+this.eventNamespace,function(){s||r.refresh()}),this.buttonElement.bind("mousedown"+this.eventNamespace,function(e){o.disabled||(s=!1,i=e.pageX,a=e.pageY)}).bind("mouseup"+this.eventNamespace,function(e){o.disabled||(i!==e.pageX||a!==e.pageY)&&(s=!0)})),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return o.disabled||s?!1:undefined}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(o.disabled||s)return!1;e(this).addClass("ui-state-active"),r.buttonElement.attr("aria-pressed","true");var t=r.element[0];l(t).not(t).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return o.disabled?!1:(e(this).addClass("ui-state-active"),t=this,r.document.one("mouseup",function(){t=null}),undefined)}).bind("mouseup"+this.eventNamespace,function(){return o.disabled?!1:(e(this).removeClass("ui-state-active"),undefined)}).bind("keydown"+this.eventNamespace,function(t){return o.disabled?!1:((t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active"),undefined)}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",o.disabled),this._resetButton()},_determineButtonType:function(){var e,t,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),i=this.element.is(":checked"),i&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" "+r+" "+o).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){return this._super(e,t),"disabled"===e?(t?this.element.prop("disabled",!0):this.element.prop("disabled",!1),undefined):(this._resetButton(),undefined)},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?l(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return this.options.label&&this.element.val(this.options.label),undefined;var t=this.buttonElement.removeClass(o),i=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),a=this.options.icons,s=a.primary&&a.secondary,n=[];a.primary||a.secondary?(this.options.text&&n.push("ui-button-text-icon"+(s?"s":a.primary?"-primary":"-secondary")),a.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+a.primary+"'></span>"),a.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+a.secondary+"'></span>"),this.options.text||(n.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(i)))):n.push("ui-button-text-only"),t.addClass(n.join(" "))}}),e.widget("ui.buttonset",{version:"1.10.3",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){"disabled"===e&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}})})(jQuery);(function(e,t){function i(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.dpDiv=a(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",function(){e.datepicker._isDisabledDatepicker(n.inline?t.parent()[0]:n.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))})}function s(t,i){e.extend(t,i);for(var a in i)null==i[a]&&(t[a]=i[a]);return t}e.extend(e.ui,{datepicker:{version:"1.10.3"}});var n,r="datepicker";e.extend(i.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return s(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var a,s,n;a=t.nodeName.toLowerCase(),s="div"===a||"span"===a,t.id||(this.uuid+=1,t.id="dp"+this.uuid),n=this._newInst(e(t),s),n.settings=e.extend({},i||{}),"input"===a?this._connectDatepicker(t,n):s&&this._inlineDatepicker(t,n)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?a(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var a=e(t);i.append=e([]),i.trigger=e([]),a.hasClass(this.markerClassName)||(this._attachments(a,i),a.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,r,i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var a,s,n,r=this._get(i,"appendText"),o=this._get(i,"isRTL");i.append&&i.append.remove(),r&&(i.append=e("<span class='"+this._appendClass+"'>"+r+"</span>"),t[o?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),a=this._get(i,"showOn"),("focus"===a||"both"===a)&&t.focus(this._showDatepicker),("button"===a||"both"===a)&&(s=this._get(i,"buttonText"),n=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:n,alt:s,title:s}):e("<button type='button'></button>").addClass(this._triggerClass).html(n?e("<img/>").attr({src:n,alt:s,title:s}):s)),t[o?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,a,s,n=new Date(2009,11,20),r=this._get(e,"dateFormat");r.match(/[DM]/)&&(t=function(e){for(i=0,a=0,s=0;e.length>s;s++)e[s].length>i&&(i=e[s].length,a=s);return a},n.setMonth(t(this._get(e,r.match(/MM/)?"monthNames":"monthNamesShort"))),n.setDate(t(this._get(e,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-n.getDay())),e.input.attr("size",this._formatDate(e,n).length)}},_inlineDatepicker:function(t,i){var a=e(t);a.hasClass(this.markerClassName)||(a.addClass(this.markerClassName).append(i.dpDiv),e.data(t,r,i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,a,n,o){var h,l,u,d,c,p=this._dialogInst;return p||(this.uuid+=1,h="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+h+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),p=this._dialogInst=this._newInst(this._dialogInput,!1),p.settings={},e.data(this._dialogInput[0],r,p)),s(p.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(p,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(l=document.documentElement.clientWidth,u=document.documentElement.clientHeight,d=document.documentElement.scrollLeft||document.body.scrollLeft,c=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+d,u/2-150+c]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),p.settings.onSelect=a,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],r,p),this},_destroyDatepicker:function(t){var i,a=e(t),s=e.data(t,r);a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,r),"input"===i?(s.append.remove(),s.trigger.remove(),a.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&a.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,a,s=e(t),n=e.data(t,r);s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(a=s.children("."+this._inlineClass),a.children().removeClass("ui-state-disabled"),a.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,a,s=e(t),n=e.data(t,r);s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(a=s.children("."+this._inlineClass),a.children().addClass("ui-state-disabled"),a.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,r)}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(i,a,n){var r,o,h,l,u=this._getInst(i);return 2===arguments.length&&"string"==typeof a?"defaults"===a?e.extend({},e.datepicker._defaults):u?"all"===a?e.extend({},u.settings):this._get(u,a):null:(r=a||{},"string"==typeof a&&(r={},r[a]=n),u&&(this._curInst===u&&this._hideDatepicker(),o=this._getDateDatepicker(i,!0),h=this._getMinMaxDate(u,"min"),l=this._getMinMaxDate(u,"max"),s(u.settings,r),null!==h&&r.dateFormat!==t&&r.minDate===t&&(u.settings.minDate=this._formatDate(u,h)),null!==l&&r.dateFormat!==t&&r.maxDate===t&&(u.settings.maxDate=this._formatDate(u,l)),"disabled"in r&&(r.disabled?this._disableDatepicker(i):this._enableDatepicker(i)),this._attachments(e(i),u),this._autoSize(u),this._setDate(u,o),this._updateAlternate(u),this._updateDatepicker(u)),t)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,a,s,n=e.datepicker._getInst(t.target),r=!0,o=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),r=!1;break;case 13:return s=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",n.dpDiv),s[0]&&e.datepicker._selectDay(t.target,n.selectedMonth,n.selectedYear,s[0]),i=e.datepicker._get(n,"onSelect"),i?(a=e.datepicker._formatDate(n),i.apply(n.input?n.input[0]:null,[a,n])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),r=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),r=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?1:-1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),r=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?-1:1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),r=t.ctrlKey||t.metaKey;break;default:r=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):r=!1;r&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(i){var a,s,n=e.datepicker._getInst(i.target);return e.datepicker._get(n,"constrainInput")?(a=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==i.charCode?i.keyCode:i.charCode),i.ctrlKey||i.metaKey||" ">s||!a||a.indexOf(s)>-1):t},_doKeyUp:function(t){var i,a=e.datepicker._getInst(t.target);if(a.input.val()!==a.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,e.datepicker._getFormatConfig(a)),i&&(e.datepicker._setDateFromField(a),e.datepicker._updateAlternate(a),e.datepicker._updateDatepicker(a))}catch(s){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,a,n,r,o,h,l;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),a=e.datepicker._get(i,"beforeShow"),n=a?a.apply(t,[t,i]):{},n!==!1&&(s(i.settings,n),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),o={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),o=e.datepicker._checkOffset(i,o,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:o.left+"px",top:o.top+"px"}),i.inline||(h=e.datepicker._get(i,"showAnim"),l=e.datepicker._get(i,"duration"),i.dpDiv.zIndex(e(t).zIndex()+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[h]?i.dpDiv.show(h,e.datepicker._get(i,"showOptions"),l):i.dpDiv[h||"show"](h?l:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,n=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t),t.dpDiv.find("."+this._dayOverClass+" a").mouseover();var i,a=this._getNumberOfMonths(t),s=a[1],r=17;t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),s>1&&t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",r*s+"em"),t.dpDiv[(1!==a[0]||1!==a[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,a){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),r=t.input?t.input.outerWidth():0,o=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(a?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(a?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?s-r:0,i.left-=a&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=a&&i.top===t.input.offset().top+o?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+s>h&&h>s?Math.abs(i.left+s-h):0),i.top-=Math.min(i.top,i.top+n>l&&l>n?Math.abs(n+o):0),i},_findPos:function(t){for(var i,a=this._getInst(t),s=this._get(a,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[s?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,a,s,n,o=this._curInst;!o||t&&o!==e.data(t,r)||this._datepickerShowing&&(i=this._get(o,"showAnim"),a=this._get(o,"duration"),s=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),a,s):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?a:null,s),i||s(),this._datepickerShowing=!1,n=this._get(o,"onClose"),n&&n.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),a=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==a)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,a){var s=e(t),n=this._getInst(s[0]);this._isDisabledDatepicker(s[0])||(this._adjustInstDate(n,i+("M"===a?this._get(n,"showCurrentAtPos"):0),a),this._updateDatepicker(n))},_gotoToday:function(t){var i,a=e(t),s=this._getInst(a[0]);this._get(s,"gotoCurrent")&&s.currentDay?(s.selectedDay=s.currentDay,s.drawMonth=s.selectedMonth=s.currentMonth,s.drawYear=s.selectedYear=s.currentYear):(i=new Date,s.selectedDay=i.getDate(),s.drawMonth=s.selectedMonth=i.getMonth(),s.drawYear=s.selectedYear=i.getFullYear()),this._notifyChange(s),this._adjustDate(a)},_selectMonthYear:function(t,i,a){var s=e(t),n=this._getInst(s[0]);n["selected"+("M"===a?"Month":"Year")]=n["draw"+("M"===a?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(s)},_selectDay:function(t,i,a,s){var n,r=e(t);e(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||(n=this._getInst(r[0]),n.selectedDay=n.currentDay=e("a",s).html(),n.selectedMonth=n.currentMonth=i,n.selectedYear=n.currentYear=a,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var a,s=e(t),n=this._getInst(s[0]);i=null!=i?i:this._formatDate(n),n.input&&n.input.val(i),this._updateAlternate(n),a=this._get(n,"onSelect"),a?a.apply(n.input?n.input[0]:null,[i,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,a,s,n=this._get(t,"altField");n&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),a=this._getDate(t),s=this.formatDate(i,a,this._getFormatConfig(t)),e(n).each(function(){e(this).val(s)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(i,a,s){if(null==i||null==a)throw"Invalid arguments";if(a="object"==typeof a?""+a:a+"",""===a)return null;var n,r,o,h,l=0,u=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,d="string"!=typeof u?u:(new Date).getFullYear()%100+parseInt(u,10),c=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,p=(s?s.dayNames:null)||this._defaults.dayNames,m=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,v=-1,y=-1,b=-1,_=!1,k=function(e){var t=i.length>n+1&&i.charAt(n+1)===e;return t&&n++,t},x=function(e){var t=k(e),i="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,s=RegExp("^\\d{1,"+i+"}"),n=a.substring(l).match(s);if(!n)throw"Missing number at position "+l;return l+=n[0].length,parseInt(n[0],10)},D=function(i,s,n){var r=-1,o=e.map(k(i)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,i){var s=i[1];return a.substr(l,s.length).toLowerCase()===s.toLowerCase()?(r=i[0],l+=s.length,!1):t}),-1!==r)return r+1;throw"Unknown name at position "+l},w=function(){if(a.charAt(l)!==i.charAt(n))throw"Unexpected literal at position "+l;l++};for(n=0;i.length>n;n++)if(_)"'"!==i.charAt(n)||k("'")?w():_=!1;else switch(i.charAt(n)){case"d":y=x("d");break;case"D":D("D",c,p);break;case"o":b=x("o");break;case"m":v=x("m");break;case"M":v=D("M",m,f);break;case"y":g=x("y");break;case"@":h=new Date(x("@")),g=h.getFullYear(),v=h.getMonth()+1,y=h.getDate();break;case"!":h=new Date((x("!")-this._ticksTo1970)/1e4),g=h.getFullYear(),v=h.getMonth()+1,y=h.getDate();break;case"'":k("'")?w():_=!0;break;default:w()}if(a.length>l&&(o=a.substr(l),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d>=g?0:-100)),b>-1)for(v=1,y=b;;){if(r=this._getDaysInMonth(g,v-1),r>=y)break;v++,y-=r}if(h=this._daylightSavingAdjust(new Date(g,v-1,y)),h.getFullYear()!==g||h.getMonth()+1!==v||h.getDate()!==y)throw"Invalid date";return h},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var a,s=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,o=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>a+1&&e.charAt(a+1)===t;return i&&a++,i},l=function(e,t,i){var a=""+t;if(h(e))for(;i>a.length;)a="0"+a;return a},u=function(e,t,i,a){return h(e)?a[t]:i[t]},d="",c=!1;if(t)for(a=0;e.length>a;a++)if(c)"'"!==e.charAt(a)||h("'")?d+=e.charAt(a):c=!1;else switch(e.charAt(a)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),s,n);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),r,o);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(a)}return d},_possibleChars:function(e){var t,i="",a=!1,s=function(i){var a=e.length>t+1&&e.charAt(t+1)===i;return a&&t++,a};for(t=0;e.length>t;t++)if(a)"'"!==e.charAt(t)||s("'")?i+=e.charAt(t):a=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":s("'")?i+="'":a=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,i){return e.settings[i]!==t?e.settings[i]:this._defaults[i]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),a=e.lastVal=e.input?e.input.val():null,s=this._getDefaultDate(e),n=s,r=this._getFormatConfig(e);try{n=this.parseDate(i,a,r)||s}catch(o){a=t?"":a}e.selectedDay=n.getDate(),e.drawMonth=e.selectedMonth=n.getMonth(),e.drawYear=e.selectedYear=n.getFullYear(),e.currentDay=a?n.getDate():0,e.currentMonth=a?n.getMonth():0,e.currentYear=a?n.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,a){var s=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},n=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(a){}for(var s=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,n=s.getFullYear(),r=s.getMonth(),o=s.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":o+=parseInt(l[1],10);break;case"w":case"W":o+=7*parseInt(l[1],10);break;case"m":case"M":r+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r));break;case"y":case"Y":n+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r))}l=h.exec(i)}return new Date(n,r,o)},r=null==i||""===i?a:"string"==typeof i?n(i):"number"==typeof i?isNaN(i)?a:s(i):new Date(i.getTime());return r=r&&"Invalid Date"==""+r?a:r,r&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var a=!t,s=e.selectedMonth,n=e.selectedYear,r=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=r.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=r.getMonth(),e.drawYear=e.selectedYear=e.currentYear=r.getFullYear(),s===e.selectedMonth&&n===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(a?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),a="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(a,-i,"M")},next:function(){e.datepicker._adjustDate(a,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(a)},selectDay:function(){return e.datepicker._selectDay(a,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(a,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(a,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,a,s,n,r,o,h,l,u,d,c,p,m,f,g,v,y,b,_,k,x,D,w,T,M,S,N,C,A,P,I,F,j,H,E,z,L,O,R=new Date,W=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(e,"isRTL"),J=this._get(e,"showButtonPanel"),$=this._get(e,"hideIfNoPrevNext"),Q=this._get(e,"navigationAsDateFormat"),B=this._getNumberOfMonths(e),K=this._get(e,"showCurrentAtPos"),V=this._get(e,"stepMonths"),U=1!==B[0]||1!==B[1],G=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),q=this._getMinMaxDate(e,"min"),X=this._getMinMaxDate(e,"max"),Z=e.drawMonth-K,et=e.drawYear;if(0>Z&&(Z+=12,et--),X)for(t=this._daylightSavingAdjust(new Date(X.getFullYear(),X.getMonth()-B[0]*B[1]+1,X.getDate())),t=q&&q>t?q:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=Q?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-V,1)),this._getFormatConfig(e)):i,a=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":$?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",s=this._get(e,"nextText"),s=Q?this.formatDate(s,this._daylightSavingAdjust(new Date(et,Z+V,1)),this._getFormatConfig(e)):s,n=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+s+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+s+"</span></a>":$?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+s+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+s+"</span></a>",r=this._get(e,"currentText"),o=this._get(e,"gotoCurrent")&&e.currentDay?G:W,r=Q?this.formatDate(r,o,this._getFormatConfig(e)):r,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=J?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,o)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+r+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),m=this._get(e,"monthNames"),f=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",x=0;B[0]>x;x++){for(D="",this.maxRows=4,w=0;B[1]>w;w++){if(T=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),M=" ui-corner-all",S="",U){if(S+="<div class='ui-datepicker-group",B[1]>1)switch(w){case 0:S+=" ui-datepicker-group-first",M=" ui-corner-"+(Y?"right":"left");break;case B[1]-1:S+=" ui-datepicker-group-last",M=" ui-corner-"+(Y?"left":"right");break;default:S+=" ui-datepicker-group-middle",M=""}S+="'>"}for(S+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+M+"'>"+(/all|left/.test(M)&&0===x?Y?n:a:"")+(/all|right/.test(M)&&0===x?Y?a:n:"")+this._generateMonthYearHeader(e,Z,et,q,X,x>0||w>0,m,f)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",N=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",k=0;7>k;k++)C=(k+u)%7,N+="<th"+((k+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[C]+"'>"+p[C]+"</span></th>";for(S+=N+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),P=(this._getFirstDayOfMonth(et,Z)-u+7)%7,I=Math.ceil((P+A)/7),F=U?this.maxRows>I?this.maxRows:I:I,this.maxRows=F,j=this._daylightSavingAdjust(new Date(et,Z,1-P)),H=0;F>H;H++){for(S+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(j)+"</td>":"",k=0;7>k;k++)z=g?g.apply(e.input?e.input[0]:null,[j]):[!0,""],L=j.getMonth()!==Z,O=L&&!y||!z[0]||q&&q>j||X&&j>X,E+="<td class='"+((k+u+6)%7>=5?" ui-datepicker-week-end":"")+(L?" ui-datepicker-other-month":"")+(j.getTime()===T.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===j.getTime()&&b.getTime()===T.getTime()?" "+this._dayOverClass:"")+(O?" "+this._unselectableClass+" ui-state-disabled":"")+(L&&!v?"":" "+z[1]+(j.getTime()===G.getTime()?" "+this._currentClass:"")+(j.getTime()===W.getTime()?" ui-datepicker-today":""))+"'"+(L&&!v||!z[2]?"":" title='"+z[2].replace(/'/g,"&#39;")+"'")+(O?"":" data-handler='selectDay' data-event='click' data-month='"+j.getMonth()+"' data-year='"+j.getFullYear()+"'")+">"+(L&&!v?"&#xa0;":O?"<span class='ui-state-default'>"+j.getDate()+"</span>":"<a class='ui-state-default"+(j.getTime()===W.getTime()?" ui-state-highlight":"")+(j.getTime()===G.getTime()?" ui-state-active":"")+(L?" ui-priority-secondary":"")+"' href='#'>"+j.getDate()+"</a>")+"</td>",j.setDate(j.getDate()+1),j=this._daylightSavingAdjust(j);S+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),S+="</tbody></table>"+(U?"</div>"+(B[0]>0&&w===B[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),D+=S}_+=D}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,a,s,n,r,o){var h,l,u,d,c,p,m,f,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(n||!g)_+="<span class='ui-datepicker-month'>"+r[t]+"</span>";else{for(h=a&&a.getFullYear()===i,l=s&&s.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=a.getMonth())&&(!l||s.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+o[u]+"</option>");_+="</select>"}if(y||(b+=_+(!n&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",n||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);
-return isNaN(t)?c:t},m=p(d[0]),f=Math.max(m,p(d[1]||"")),m=a?Math.max(m,a.getFullYear()):m,f=s?Math.min(f,s.getFullYear()):f,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";f>=m;m++)e.yearshtml+="<option value='"+m+"'"+(m===i?" selected='selected'":"")+">"+m+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!n&&g&&v?"":"&#xa0;")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var a=e.drawYear+("Y"===i?t:0),s=e.drawMonth+("M"===i?t:0),n=Math.min(e.selectedDay,this._getDaysInMonth(a,s))+("D"===i?t:0),r=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(a,s,n)));e.selectedDay=r.getDate(),e.drawMonth=e.selectedMonth=r.getMonth(),e.drawYear=e.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),s=i&&i>t?i:t;return a&&s>a?a:s},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,a){var s=this._getNumberOfMonths(e),n=this._daylightSavingAdjust(new Date(i,a+(0>t?t:s[0]*s[1]),1));return 0>t&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(e,n)},_isInRange:function(e,t){var i,a,s=this._getMinMaxDate(e,"min"),n=this._getMinMaxDate(e,"max"),r=null,o=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),a=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=a),i[1].match(/[+\-].*/)&&(o+=a)),(!s||t.getTime()>=s.getTime())&&(!n||t.getTime()<=n.getTime())&&(!r||t.getFullYear()>=r)&&(!o||o>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,a){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var s=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(a,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),s,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new i,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.10.3"})(jQuery);(function(e){var t={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.10.3",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i=this;this._isOpen&&this._trigger("beforeClose",t)!==!1&&(this._isOpen=!1,this._destroyOverlay(),this.opener.filter(":focusable").focus().length||e(this.document[0].activeElement).blur(),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",t)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,t){var i=!!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length;return i&&!t&&this._trigger("focus",e),i},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),undefined):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._trigger("open"),undefined)},_focusTabbable:function(){var e=this.element.find("[autofocus]");e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),undefined;if(t.keyCode===e.ui.keyCode.TAB){var i=this.uiDialog.find(":tabbable"),a=i.filter(":first"),s=i.filter(":last");t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==a[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(s.focus(1),t.preventDefault()):(a.focus(1),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("<button></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html("&#160;"),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),undefined):(e.each(i,function(i,a){var s,n;a=e.isFunction(a)?{click:a,text:i}:a,a=e.extend({type:"button"},a),s=a.click,a.click=function(){s.apply(t.element[0],arguments)},n={icons:a.icons,text:a.showText},delete a.icons,delete a.showText,e("<button></button>",a).button(n).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),undefined)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,a=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(a,s){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",a,t(s))},drag:function(e,a){i._trigger("drag",e,t(a))},stop:function(s,n){a.position=[n.position.left-i.document.scrollLeft(),n.position.top-i.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",s,t(n))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,a=this.options,s=a.resizable,n=this.uiDialog.css("position"),r="string"==typeof s?s:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:a.maxWidth,maxHeight:a.maxHeight,minWidth:a.minWidth,minHeight:this._minHeight(),handles:r,start:function(a,s){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",a,t(s))},resize:function(e,a){i._trigger("resize",e,t(a))},stop:function(s,n){a.height=e(this).height(),a.width=e(this).width(),e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",s,t(n))}}).css("position",n)},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(a){var s=this,n=!1,r={};e.each(a,function(e,a){s._setOption(e,a),e in t&&(n=!0),e in i&&(r[e]=a)}),n&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(e,t){var i,a,s=this.uiDialog;"dialogClass"===e&&s.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=s.is(":data(ui-draggable)"),i&&!t&&s.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(a=s.is(":data(ui-resizable)"),a&&!t&&s.resizable("destroy"),a&&"string"==typeof t&&s.resizable("option","handles",t),a||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,a=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),a.minWidth>a.width&&(a.width=a.minWidth),e=this.uiDialog.css({height:"auto",width:a.width}).outerHeight(),t=Math.max(0,a.minHeight-e),i="number"==typeof a.maxHeight?Math.max(0,a.maxHeight-e):"none","auto"===a.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,a.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=this,i=this.widgetFullName;e.ui.dialog.overlayInstances||this._delay(function(){e.ui.dialog.overlayInstances&&this.document.bind("focusin.dialog",function(a){t._allowInteraction(a)||(a.preventDefault(),e(".ui-dialog:visible:last .ui-dialog-content").data(i)._focusTabbable())})}),this.overlay=e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),e.ui.dialog.overlayInstances++}},_destroyOverlay:function(){this.options.modal&&this.overlay&&(e.ui.dialog.overlayInstances--,e.ui.dialog.overlayInstances||this.document.unbind("focusin.dialog"),this.overlay.remove(),this.overlay=null)}}),e.ui.dialog.overlayInstances=0,e.uiBackCompat!==!1&&e.widget("ui.dialog",e.ui.dialog,{_position:function(){var t,i=this.options.position,a=[],s=[0,0];i?(("string"==typeof i||"object"==typeof i&&"0"in i)&&(a=i.split?i.split(" "):[i[0],i[1]],1===a.length&&(a[1]=a[0]),e.each(["left","top"],function(e,t){+a[e]===a[e]&&(s[e]=a[e],a[e]=t)}),i={my:a[0]+(0>s[0]?s[0]:"+"+s[0])+" "+a[1]+(0>s[1]?s[1]:"+"+s[1]),at:a.join(" ")}),i=e.extend({},e.ui.dialog.prototype.options.position,i)):i=e.ui.dialog.prototype.options.position,t=this.uiDialog.is(":visible"),t||this.uiDialog.show(),this.uiDialog.position(i),t||this.uiDialog.hide()}})})(jQuery);(function(e){e.widget("ui.menu",{version:"1.10.3",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var i=e(t.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.mouseHandled=!0,this.select(t),i.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var i=e(t.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function i(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,a,n,r,o,h=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:h=!1,a=this.previousFilter||"",n=String.fromCharCode(t.keyCode),r=!1,clearTimeout(this.filterTimer),n===a?r=!0:n=a+n,o=RegExp("^"+i(n),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),s=r&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(n=String.fromCharCode(t.keyCode),o=RegExp("^"+i(n),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),s.length?(this.focus(t,s),s.length>1?(this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}h&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,i=this.options.icons.submenu,s=this.element.find(this.options.menus);s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),s=t.prev("a"),a=e("<span>").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(a),t.attr("aria-labelledby",s.attr("id"))}),t=s.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-\u2014\u2013\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,a,n,r,o;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,a=t.offset().top-this.activeMenu.offset().top-i-s,n=this.activeMenu.scrollTop(),r=this.activeMenu.height(),o=t.height(),0>a?this.activeMenu.scrollTop(n+a):a+o>r&&this.activeMenu.scrollTop(n+a-r+o))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[t]()),this.focus(i,s)},nextPage:function(t){var i,s,a;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,a=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-a}),this.focus(t,i)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(t),undefined)},previousPage:function(t){var i,s,a;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,a=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+a>0}),this.focus(t,i)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(t),undefined)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)}})})(jQuery);(function(e,t){e.widget("ui.progressbar",{version:"1.10.3",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this.options.value:(this.options.value=this._constrainedValue(e),this._refreshValue(),t)},_constrainedValue:function(e){return e===t&&(e=this.options.value),this.indeterminate=e===!1,"number"!=typeof e&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}})})(jQuery);(function(e){var t=5;e.widget("ui.slider",e.ui.mouse,{version:"1.10.3",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,i,s=this.options,a=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),n="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",r=[];for(i=s.values&&s.values.length||1,a.length>i&&(a.slice(i).remove(),a=a.slice(0,i)),t=a.length;i>t;t++)r.push(n);this.handles=a.add(e(r.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,i="";t.range?(t.range===!0&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=e("<div></div>").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):this.range=e([])},_setupEvents:function(){var e=this.handles.add(this.range).filter("a");this._off(e),this._on(e,this._handleEvents),this._hoverable(e),this._focusable(e)},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var i,s,a,n,r,o,h,l,u=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:t.pageX,y:t.pageY},s=this._normValueFromMouse(i),a=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var i=Math.abs(s-u.values(t));(a>i||a===i&&(t===u._lastChangedValue||u.values(t)===c.min))&&(a=i,n=e(this),r=t)}),o=this._start(t,r),o===!1?!1:(this._mouseSliding=!0,this._handleIndex=r,n.addClass("ui-state-active").focus(),h=n.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-h.left-n.width()/2,top:t.pageY-h.top-n.height()/2-(parseInt(n.css("borderTopWidth"),10)||0)-(parseInt(n.css("borderBottomWidth"),10)||0)+(parseInt(n.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,r,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,i),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,i,s,a,n;return"horizontal"===this.orientation?(t=this.elementSize.width,i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/t,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),a=this._valueMax()-this._valueMin(),n=this._valueMin()+s*a,this._trimAlignValue(n)},_start:function(e,t){var i={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("start",e,i)},_slide:function(e,t,i){var s,a,n;this.options.values&&this.options.values.length?(s=this.values(t?0:1),2===this.options.values.length&&this.options.range===!0&&(0===t&&i>s||1===t&&s>i)&&(i=s),i!==this.values(t)&&(a=this.values(),a[t]=i,n=this._trigger("slide",e,{handle:this.handles[t],value:i,values:a}),s=this.values(t?0:1),n!==!1&&this.values(t,i,!0))):i!==this.value()&&(n=this._trigger("slide",e,{handle:this.handles[t],value:i}),n!==!1&&this.value(i))},_stop:function(e,t){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._trigger("stop",e,i)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(t),i.values=this.values()),this._lastChangedValue=t,this._trigger("change",e,i)}},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0),undefined):this._value()},values:function(t,i){var s,a,n;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(i),this._refreshValue(),this._change(null,t),undefined;if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();for(s=this.options.values,a=arguments[0],n=0;s.length>n;n+=1)s[n]=this._trimAlignValue(a[n]),this._change(null,n);this._refreshValue()},_setOption:function(t,i){var s,a=0;switch("range"===t&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(a=this.options.values.length),e.Widget.prototype._setOption.apply(this,arguments),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;a>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,i,s;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(e){if(this._valueMin()>=e)return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,i=(e-this._valueMin())%t,s=e-i;return 2*Math.abs(i)>=t&&(s+=i>0?t:-t),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,i,s,a,n,r=this.options.range,o=this.options,h=this,l=this._animateOff?!1:o.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),u["horizontal"===h.orientation?"left":"bottom"]=i+"%",e(this).stop(1,1)[l?"animate":"css"](u,o.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},o.animate),1===s&&h.range[l?"animate":"css"]({width:i-t+"%"},{queue:!1,duration:o.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},o.animate),1===s&&h.range[l?"animate":"css"]({height:i-t+"%"},{queue:!1,duration:o.animate}))),t=i}):(s=this.value(),a=this._valueMin(),n=this._valueMax(),i=n!==a?100*((s-a)/(n-a)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](u,o.animate),"min"===r&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},o.animate),"max"===r&&"horizontal"===this.orientation&&this.range[l?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:o.animate}),"min"===r&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},o.animate),"max"===r&&"vertical"===this.orientation&&this.range[l?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:o.animate}))},_handleEvents:{keydown:function(i){var s,a,n,r,o=e(i.target).data("ui-slider-handle-index");switch(i.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(i.preventDefault(),!this._keySliding&&(this._keySliding=!0,e(i.target).addClass("ui-state-active"),s=this._start(i,o),s===!1))return}switch(r=this.options.step,a=n=this.options.values&&this.options.values.length?this.values(o):this.value(),i.keyCode){case e.ui.keyCode.HOME:n=this._valueMin();break;case e.ui.keyCode.END:n=this._valueMax();break;case e.ui.keyCode.PAGE_UP:n=this._trimAlignValue(a+(this._valueMax()-this._valueMin())/t);break;case e.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(a-(this._valueMax()-this._valueMin())/t);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(a===this._valueMax())return;n=this._trimAlignValue(a+r);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(a===this._valueMin())return;n=this._trimAlignValue(a-r)}this._slide(i,o,n)},click:function(e){e.preventDefault()},keyup:function(t){var i=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,i),this._change(t,i),e(t.target).removeClass("ui-state-active"))}}})})(jQuery);(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.10.3",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},i=this.element;return e.each(["min","max","step"],function(e,s){var a=i.attr(s);void 0!==a&&a.length&&(t[s]=a)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e),void 0)},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function i(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(t)!==!1&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return e(t.currentTarget).hasClass("ui-state-active")?this._start(t)===!1?!1:(this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*e.height())&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var i=this.options,s=e.ui.keyCode;switch(t.keyCode){case s.UP:return this._repeat(null,1,t),!0;case s.DOWN:return this._repeat(null,-1,t),!0;case s.PAGE_UP:return this._repeat(null,i.page,t),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>&#9660;</span>"+"</a>"},_start:function(e){return this.spinning||this._trigger("start",e)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(e,t,i){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,i)},e),this._spin(t*this.options.step,i)},_spin:function(e,t){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+e*this._increment(this.counter)),this.spinning&&this._trigger("spin",t,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(t){var i=this.options.incremental;return i?e.isFunction(i)?i(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=""+e,i=t.indexOf(".");return-1===i?0:t.length-i-1},_adjustValue:function(e){var t,i,s=this.options;return t=null!==s.min?s.min:0,i=e-t,i=Math.round(i/s.step)*s.step,e=t+i,e=parseFloat(e.toFixed(this._precision())),null!==s.max&&e>s.max?s.max:null!==s.min&&s.min>e?s.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){if("culture"===e||"numberFormat"===e){var i=this._parse(this.element.val());return this.options[e]=t,this.element.val(this._format(i)),void 0}("max"===e||"min"===e||"step"===e)&&"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)),this._super(e,t),"disabled"===e&&(t?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:t(function(e){this._super(e),this._value(this.element.val())}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(e,t){var i;""!==e&&(i=this._parse(e),null!==i&&(t||(i=this._adjustValue(i)),e=this._format(i))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:t(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:t(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:t(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:t(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){return arguments.length?(t(this._value).call(this,e),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}})})(jQuery);(function(e,t){function i(){return++a}function s(e){return e.hash.length>1&&decodeURIComponent(e.href.replace(n,""))===decodeURIComponent(location.href.replace(n,""))}var a=0,n=/#.*$/;e.widget("ui.tabs",{version:"1.10.3",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),e.isArray(i.disabled)&&(i.disabled=e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):e(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var i=this.options.active,s=this.options.collapsible,a=location.hash.substring(1);return null===i&&(a&&this.tabs.each(function(s,n){return e(n).attr("aria-controls")===a?(i=s,!1):t}),null===i&&(i=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===i||-1===i)&&(i=this.tabs.length?0:!1)),i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),-1===i&&(i=s?!1:0)),!s&&i===!1&&this.anchors.length&&(i=0),i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(i){var s=e(this.document[0].activeElement).closest("li"),a=this.tabs.index(s),n=!0;if(!this._handlePageNav(i)){switch(i.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:a++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:n=!1,a--;break;case e.ui.keyCode.END:a=this.anchors.length-1;break;case e.ui.keyCode.HOME:a=0;break;case e.ui.keyCode.SPACE:return i.preventDefault(),clearTimeout(this.activating),this._activate(a),t;case e.ui.keyCode.ENTER:return i.preventDefault(),clearTimeout(this.activating),this._activate(a===this.options.active?!1:a),t;default:return}i.preventDefault(),clearTimeout(this.activating),a=this._focusNextTab(a,n),i.ctrlKey||(s.attr("aria-selected","false"),this.tabs.eq(a).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",a)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(i){return i.altKey&&i.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):i.altKey&&i.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):t},_findNextTab:function(t,i){function s(){return t>a&&(t=0),0>t&&(t=a),t}for(var a=this.tabs.length-1;-1!==e.inArray(s(),this.options.disabled);)t=i?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,i){return"active"===e?(this._activate(i),t):"disabled"===e?(this._setupDisabled(i),t):(this._super(e,i),"collapsible"===e&&(this.element.toggleClass("ui-tabs-collapsible",i),i||this.options.active!==!1||this._activate(0)),"event"===e&&this._setupEvents(i),"heightStyle"===e&&this._setupHeightStyle(i),t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,i=this.tablist.children(":has(a[href])");t.disabled=e.map(i.filter(".ui-state-disabled"),function(e){return i.index(e)}),this._processTabs(),t.active!==!1&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(i,a){var n,r,o,h=e(a).uniqueId().attr("id"),l=e(a).closest("li"),u=l.attr("aria-controls");s(a)?(n=a.hash,r=t.element.find(t._sanitizeSelector(n))):(o=t._tabId(l),n="#"+o,r=t.element.find(n),r.length||(r=t._createPanel(o),r.insertAfter(t.panels[i-1]||t.tablist)),r.attr("aria-live","polite")),r.length&&(t.panels=t.panels.add(r)),u&&l.data("ui-tabs-aria-controls",u),l.attr({"aria-controls":n.substring(1),"aria-labelledby":h}),r.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var i,s=0;i=this.tabs[s];s++)t===!0||-1!==e.inArray(s,t)?e(i).addClass("ui-state-disabled").attr("aria-disabled","true"):e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,s=this.element.parent();"fill"===t?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),s=t.css("position");"absolute"!==s&&"fixed"!==s&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,e(this).height("").height())}).height(i))},_eventHandler:function(t){var i=this.options,s=this.active,a=e(t.currentTarget),n=a.closest("li"),r=n[0]===s[0],o=r&&i.collapsible,h=o?e():this._getPanelForTab(n),l=s.length?this._getPanelForTab(s):e(),u={oldTab:s,oldPanel:l,newTab:o?e():n,newPanel:h};t.preventDefault(),n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||r&&!i.collapsible||this._trigger("beforeActivate",t,u)===!1||(i.active=o?!1:this.tabs.index(n),this.active=r?e():n,this.xhr&&this.xhr.abort(),l.length||h.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(n),t),this._toggle(t,u))},_toggle:function(t,i){function s(){n.running=!1,n._trigger("activate",t,i)}function a(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&n.options.show?n._show(r,n.options.show,s):(r.show(),s())}var n=this,r=i.newPanel,o=i.oldPanel;this.running=!0,o.length&&this.options.hide?this._hide(o,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),a()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),o.hide(),a()),o.attr({"aria-expanded":"false","aria-hidden":"true"}),i.oldTab.attr("aria-selected","false"),r.length&&o.length?i.oldTab.attr("tabIndex",-1):r.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),r.attr({"aria-expanded":"true","aria-hidden":"false"}),i.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var i,s=this._findActive(t);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),i=t.data("ui-tabs-aria-controls");i?t.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var s=this.options.disabled;s!==!1&&(i===t?s=!1:(i=this._getIndex(i),s=e.isArray(s)?e.map(s,function(e){return e!==i?e:null}):e.map(this.tabs,function(e,t){return t!==i?t:null})),this._setupDisabled(s))},disable:function(i){var s=this.options.disabled;if(s!==!0){if(i===t)s=!0;else{if(i=this._getIndex(i),-1!==e.inArray(i,s))return;s=e.isArray(s)?e.merge([i],s).sort():[i]}this._setupDisabled(s)}},load:function(t,i){t=this._getIndex(t);var a=this,n=this.tabs.eq(t),r=n.find(".ui-tabs-anchor"),o=this._getPanelForTab(n),h={tab:n,panel:o};s(r[0])||(this.xhr=e.ajax(this._ajaxSettings(r,i,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(n.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){o.html(e),a._trigger("load",i,h)},1)}).complete(function(e,t){setTimeout(function(){"abort"===t&&a.panels.stop(!1,!0),n.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),e===a.xhr&&delete a.xhr},1)})))},_ajaxSettings:function(t,i,s){var a=this;return{url:t.attr("href"),beforeSend:function(t,n){return a._trigger("beforeLoad",i,e.extend({jqXHR:t,ajaxSettings:n},s))}}},_getPanelForTab:function(t){var i=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}})})(jQuery);(function(e){function t(t,i){var s=(t.attr("aria-describedby")||"").split(/\s+/);s.push(i),t.data("ui-tooltip-id",i).attr("aria-describedby",e.trim(s.join(" ")))}function i(t){var i=t.data("ui-tooltip-id"),s=(t.attr("aria-describedby")||"").split(/\s+/),a=e.inArray(i,s);-1!==a&&s.splice(a,1),t.removeData("ui-tooltip-id"),s=e.trim(s.join(" ")),s?t.attr("aria-describedby",s):t.removeAttr("aria-describedby")}var s=0;e.widget("ui.tooltip",{version:"1.10.3",options:{content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,i){var s=this;return"disabled"===t?(this[i?"_disable":"_enable"](),this.options[t]=i,void 0):(this._super(t,i),"content"===t&&e.each(this.tooltips,function(e,t){s._updateContent(t)}),void 0)},_disable:function(){var t=this;e.each(this.tooltips,function(i,s){var a=e.Event("blur");a.target=a.currentTarget=s[0],t.close(a,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,s=e(t?t.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&s.parents().each(function(){var t,s=e(this);s.data("ui-tooltip-open")&&(t=e.Event("blur"),t.target=t.currentTarget=this,i.close(t,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,t))},_updateContent:function(e,t){var i,s=this.options.content,a=this,n=t?t.type:null;return"string"==typeof s?this._open(t,e,s):(i=s.call(e[0],function(i){e.data("ui-tooltip-open")&&a._delay(function(){t&&(t.type=n),this._open(t,e,i)})}),i&&this._open(t,e,i),void 0)},_open:function(i,s,a){function n(e){l.of=e,r.is(":hidden")||r.position(l)}var r,o,h,l=e.extend({},this.options.position);if(a){if(r=this._find(s),r.length)return r.find(".ui-tooltip-content").html(a),void 0;s.is("[title]")&&(i&&"mouseover"===i.type?s.attr("title",""):s.removeAttr("title")),r=this._tooltip(s),t(s,r.attr("id")),r.find(".ui-tooltip-content").html(a),this.options.track&&i&&/^mouse/.test(i.type)?(this._on(this.document,{mousemove:n}),n(i)):r.position(e.extend({of:s},this.options.position)),r.hide(),this._show(r,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){r.is(":visible")&&(n(l.of),clearInterval(h))},e.fx.interval)),this._trigger("open",i,{tooltip:r}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var i=e.Event(t);i.currentTarget=s[0],this.close(i,!0)}},remove:function(){this._removeTooltip(r)}},i&&"mouseover"!==i.type||(o.mouseleave="close"),i&&"focusin"!==i.type||(o.focusout="close"),this._on(!0,s,o)}},close:function(t){var s=this,a=e(t?t.currentTarget:this.element),n=this._find(a);this.closing||(clearInterval(this.delayedShow),a.data("ui-tooltip-title")&&a.attr("title",a.data("ui-tooltip-title")),i(a),n.stop(!0),this._hide(n,this.options.hide,function(){s._removeTooltip(e(this))}),a.removeData("ui-tooltip-open"),this._off(a,"mouseleave focusout keyup"),a[0]!==this.element[0]&&this._off(a,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,i){e(i.element).attr("title",i.title),delete s.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:n}),this.closing=!1)},_tooltip:function(t){var i="ui-tooltip-"+s++,a=e("<div>").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("<div>").addClass("ui-tooltip-content").appendTo(a),a.appendTo(this.document[0].body),this.tooltips[i]=t,a},_find:function(t){var i=t.data("ui-tooltip-id");return i?e("#"+i):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(i,s){var a=e.Event("blur");a.target=a.currentTarget=s[0],t.close(a,!0),e("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})})(jQuery);(function(e,t){var i="ui-effects-";e.effects={effect:{}},function(e,t){function i(e,t,i){var s=c[t.type]||{};return null==e?i||!t.def?null:t.def:(e=s.floor?~~e:parseFloat(e),isNaN(e)?t.def:s.mod?(e+s.mod)%s.mod:0>e?0:e>s.max?s.max:e)}function s(i){var s=l(),a=s._rgba=[];return i=i.toLowerCase(),f(h,function(e,n){var r,o=n.re.exec(i),h=o&&n.parse(o),l=n.space||"rgba";return h?(r=s[l](h),s[u[l].cache]=r[u[l].cache],a=s._rgba=r._rgba,!1):t}),a.length?("0,0,0,0"===a.join()&&e.extend(a,n.transparent),s):n[i]}function a(e,t,i){return i=(i+1)%1,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+6*(t-e)*(2/3-i):e}var n,r="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",o=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,i,s,a){return new e.Color.fn.parse(t,i,s,a)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},c={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=e("<p>")[0],f=e.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(a,r,o,h){if(a===t)return this._rgba=[null,null,null,null],this;(a.jquery||a.nodeType)&&(a=e(a).css(r),r=t);var c=this,d=e.type(a),p=this._rgba=[];return r!==t&&(a=[a,r,o,h],d="array"),"string"===d?this.parse(s(a)||n._default):"array"===d?(f(u.rgba.props,function(e,t){p[t.idx]=i(a[t.idx],t)}),this):"object"===d?(a instanceof l?f(u,function(e,t){a[t.cache]&&(c[t.cache]=a[t.cache].slice())}):f(u,function(t,s){var n=s.cache;f(s.props,function(e,t){if(!c[n]&&s.to){if("alpha"===e||null==a[e])return;c[n]=s.to(c._rgba)}c[n][t.idx]=i(a[e],t,!0)}),c[n]&&0>e.inArray(null,c[n].slice(0,3))&&(c[n][3]=1,s.from&&(c._rgba=s.from(c[n])))}),this):t},is:function(e){var i=l(e),s=!0,a=this;return f(u,function(e,n){var r,o=i[n.cache];return o&&(r=a[n.cache]||n.to&&n.to(a._rgba)||[],f(n.props,function(e,i){return null!=o[i.idx]?s=o[i.idx]===r[i.idx]:t})),s}),s},_space:function(){var e=[],t=this;return f(u,function(i,s){t[s.cache]&&e.push(i)}),e.pop()},transition:function(e,t){var s=l(e),a=s._space(),n=u[a],r=0===this.alpha()?l("transparent"):this,o=r[n.cache]||n.to(r._rgba),h=o.slice();return s=s[n.cache],f(n.props,function(e,a){var n=a.idx,r=o[n],l=s[n],u=c[a.type]||{};null!==l&&(null===r?h[n]=l:(u.mod&&(l-r>u.mod/2?r+=u.mod:r-l>u.mod/2&&(r-=u.mod)),h[n]=i((l-r)*t+r,a)))}),this[a](h)},blend:function(t){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),a=l(t)._rgba;return l(e.map(i,function(e,t){return(1-s)*a[t]+s*e}))},toRgbaString:function(){var t="rgba(",i=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===i[3]&&(i.pop(),t="rgb("),t+i.join()+")"},toHslaString:function(){var t="hsla(",i=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&3>t&&(e=Math.round(100*e)+"%"),e});return 1===i[3]&&(i.pop(),t="hsl("),t+i.join()+")"},toHexString:function(t){var i=this._rgba.slice(),s=i.pop();return t&&i.push(~~(255*s)),"#"+e.map(i,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,u.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,i,s=e[0]/255,a=e[1]/255,n=e[2]/255,r=e[3],o=Math.max(s,a,n),h=Math.min(s,a,n),l=o-h,u=o+h,c=.5*u;return t=h===o?0:s===o?60*(a-n)/l+360:a===o?60*(n-s)/l+120:60*(s-a)/l+240,i=0===l?0:.5>=c?l/u:l/(2-u),[Math.round(t)%360,i,c,null==r?1:r]},u.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,i=e[1],s=e[2],n=e[3],r=.5>=s?s*(1+i):s+i-s*i,o=2*s-r;return[Math.round(255*a(o,r,t+1/3)),Math.round(255*a(o,r,t)),Math.round(255*a(o,r,t-1/3)),n]},f(u,function(s,a){var n=a.props,r=a.cache,h=a.to,u=a.from;l.fn[s]=function(s){if(h&&!this[r]&&(this[r]=h(this._rgba)),s===t)return this[r].slice();var a,o=e.type(s),c="array"===o||"object"===o?s:arguments,d=this[r].slice();return f(n,function(e,t){var s=c["object"===o?e:t.idx];null==s&&(s=d[t.idx]),d[t.idx]=i(s,t)}),u?(a=l(u(d)),a[r]=d,a):l(d)},f(n,function(t,i){l.fn[t]||(l.fn[t]=function(a){var n,r=e.type(a),h="alpha"===t?this._hsla?"hsla":"rgba":s,l=this[h](),u=l[i.idx];return"undefined"===r?u:("function"===r&&(a=a.call(this,u),r=e.type(a)),null==a&&i.empty?this:("string"===r&&(n=o.exec(a),n&&(a=u+parseFloat(n[2])*("+"===n[1]?1:-1))),l[i.idx]=a,this[h](l)))})})}),l.hook=function(t){var i=t.split(" ");f(i,function(t,i){e.cssHooks[i]={set:function(t,a){var n,r,o="";if("transparent"!==a&&("string"!==e.type(a)||(n=s(a)))){if(a=l(n||a),!d.rgba&&1!==a._rgba[3]){for(r="backgroundColor"===i?t.parentNode:t;(""===o||"transparent"===o)&&r&&r.style;)try{o=e.css(r,"backgroundColor"),r=r.parentNode}catch(h){}a=a.blend(o&&"transparent"!==o?o:"_default")}a=a.toRgbaString()}try{t.style[i]=a}catch(h){}}},e.fx.step[i]=function(t){t.colorInit||(t.start=l(t.elem,i),t.end=l(t.end),t.colorInit=!0),e.cssHooks[i].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook(r),e.cssHooks.borderColor={expand:function(e){var t={};return f(["Top","Right","Bottom","Left"],function(i,s){t["border"+s+"Color"]=e}),t}},n=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(t){var i,s,a=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,n={};if(a&&a.length&&a[0]&&a[a[0]])for(s=a.length;s--;)i=a[s],"string"==typeof a[i]&&(n[e.camelCase(i)]=a[i]);else for(i in a)"string"==typeof a[i]&&(n[i]=a[i]);return n}function s(t,i){var s,a,r={};for(s in i)a=i[s],t[s]!==a&&(n[s]||(e.fx.step[s]||!isNaN(parseFloat(a)))&&(r[s]=a));return r}var a=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,i){e.fx.step[i]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(jQuery.style(e.elem,i,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(t,n,r,o){var h=e.speed(n,r,o);return this.queue(function(){var n,r=e(this),o=r.attr("class")||"",l=h.children?r.find("*").addBack():r;l=l.map(function(){var t=e(this);return{el:t,start:i(this)}}),n=function(){e.each(a,function(e,i){t[i]&&r[i+"Class"](t[i])})},n(),l=l.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),l=l.map(function(){var t=this,i=e.Deferred(),s=e.extend({},h,{queue:!1,complete:function(){i.resolve(t)}});return this.el.animate(this.diff,s),i.promise()}),e.when.apply(e,l.get()).done(function(){n(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),h.complete.call(r[0])})})},e.fn.extend({addClass:function(t){return function(i,s,a,n){return s?e.effects.animateClass.call(this,{add:i},s,a,n):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(i,s,a,n){return arguments.length>1?e.effects.animateClass.call(this,{remove:i},s,a,n):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(i){return function(s,a,n,r,o){return"boolean"==typeof a||a===t?n?e.effects.animateClass.call(this,a?{add:s}:{remove:s},n,r,o):i.apply(this,arguments):e.effects.animateClass.call(this,{toggle:s},a,n,r)}}(e.fn.toggleClass),switchClass:function(t,i,s,a,n){return e.effects.animateClass.call(this,{add:i,remove:t},s,a,n)}})}(),function(){function s(t,i,s,a){return e.isPlainObject(t)&&(i=t,t=t.effect),t={effect:t},null==i&&(i={}),e.isFunction(i)&&(a=i,s=null,i={}),("number"==typeof i||e.fx.speeds[i])&&(a=s,s=i,i={}),e.isFunction(s)&&(a=s,s=null),i&&e.extend(t,i),s=s||i.duration,t.duration=e.fx.off?0:"number"==typeof s?s:s in e.fx.speeds?e.fx.speeds[s]:e.fx.speeds._default,t.complete=a||i.complete,t}function a(t){return!t||"number"==typeof t||e.fx.speeds[t]?!0:"string"!=typeof t||e.effects.effect[t]?e.isFunction(t)?!0:"object"!=typeof t||t.effect?!1:!0:!0}e.extend(e.effects,{version:"1.10.3",save:function(e,t){for(var s=0;t.length>s;s++)null!==t[s]&&e.data(i+t[s],e[0].style[t[s]])},restore:function(e,s){var a,n;for(n=0;s.length>n;n++)null!==s[n]&&(a=e.data(i+s[n]),a===t&&(a=""),e.css(s[n],a))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var i,s;switch(e[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=e[0]/t.height}switch(e[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=e[1]/t.width}return{x:s,y:i}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var i={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},s=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),a={width:t.width(),height:t.height()},n=document.activeElement;try{n.id}catch(r){n=document.body}return t.wrap(s),(t[0]===n||e.contains(t[0],n))&&e(n).focus(),s=t.parent(),"static"===t.css("position")?(s.css({position:"relative"}),t.css({position:"relative"})):(e.extend(i,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,s){i[s]=t.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(a),s.css(i).show()},removeWrapper:function(t){var i=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===i||e.contains(t[0],i))&&e(i).focus()),t},setTransition:function(t,i,s,a){return a=a||{},e.each(i,function(e,i){var n=t.cssUnit(i);n[0]>0&&(a[i]=n[0]*s+n[1])}),a}}),e.fn.extend({effect:function(){function t(t){function s(){e.isFunction(n)&&n.call(a[0]),e.isFunction(t)&&t()}var a=e(this),n=i.complete,o=i.mode;(a.is(":hidden")?"hide"===o:"show"===o)?(a[o](),s()):r.call(a[0],i,s)}var i=s.apply(this,arguments),a=i.mode,n=i.queue,r=e.effects.effect[i.effect];return e.fx.off||!r?a?this[a](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):n===!1?this.each(t):this.queue(n||"fx",t)},show:function(e){return function(t){if(a(t))return e.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(e.fn.show),hide:function(e){return function(t){if(a(t))return e.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(e.fn.hide),toggle:function(e){return function(t){if(a(t)||"boolean"==typeof t)return e.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(e.fn.toggle),cssUnit:function(t){var i=this.css(t),s=[];return e.each(["em","px","%","pt"],function(e,t){i.indexOf(t)>0&&(s=[parseFloat(i),t])}),s}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,i){t[i]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,i=4;((t=Math.pow(2,--i))-1)/11>e;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,i){e.easing["easeIn"+t]=i,e.easing["easeOut"+t]=function(e){return 1-i(1-e)},e.easing["easeInOut"+t]=function(e){return.5>e?i(2*e)/2:1-i(-2*e+2)/2}})}()})(jQuery);(function(e){var t=/up|down|vertical/,i=/up|left|vertical|horizontal/;e.effects.effect.blind=function(a,s){var n,r,o,l=e(this),h=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(l,a.mode||"hide"),d=a.direction||"up",c=t.test(d),p=c?"height":"width",f=c?"top":"left",m=i.test(d),g={},v="show"===u;l.parent().is(".ui-effects-wrapper")?e.effects.save(l.parent(),h):e.effects.save(l,h),l.show(),n=e.effects.createWrapper(l).css({overflow:"hidden"}),r=n[p](),o=parseFloat(n.css(f))||0,g[p]=v?r:0,m||(l.css(c?"bottom":"right",0).css(c?"top":"left","auto").css({position:"absolute"}),g[f]=v?o:r+o),v&&(n.css(p,0),m||n.css(f,o+r)),n.animate(g,{duration:a.duration,easing:a.easing,queue:!1,complete:function(){"hide"===u&&l.hide(),e.effects.restore(l,h),e.effects.removeWrapper(l),s()}})}})(jQuery);(function(e){e.effects.effect.bounce=function(t,i){var a,s,n,r=e(this),o=["position","top","bottom","left","right","height","width"],l=e.effects.setMode(r,t.mode||"effect"),h="hide"===l,u="show"===l,d=t.direction||"up",c=t.distance,p=t.times||5,f=2*p+(u||h?1:0),m=t.duration/f,g=t.easing,v="up"===d||"down"===d?"top":"left",y="up"===d||"left"===d,b=r.queue(),_=b.length;for((u||h)&&o.push("opacity"),e.effects.save(r,o),r.show(),e.effects.createWrapper(r),c||(c=r["top"===v?"outerHeight":"outerWidth"]()/3),u&&(n={opacity:1},n[v]=0,r.css("opacity",0).css(v,y?2*-c:2*c).animate(n,m,g)),h&&(c/=Math.pow(2,p-1)),n={},n[v]=0,a=0;p>a;a++)s={},s[v]=(y?"-=":"+=")+c,r.animate(s,m,g).animate(n,m,g),c=h?2*c:c/2;h&&(s={opacity:0},s[v]=(y?"-=":"+=")+c,r.animate(s,m,g)),r.queue(function(){h&&r.hide(),e.effects.restore(r,o),e.effects.removeWrapper(r),i()}),_>1&&b.splice.apply(b,[1,0].concat(b.splice(_,f+1))),r.dequeue()}})(jQuery);(function(e){e.effects.effect.clip=function(t,i){var a,s,n,r=e(this),o=["position","top","bottom","left","right","height","width"],l=e.effects.setMode(r,t.mode||"hide"),h="show"===l,u=t.direction||"vertical",d="vertical"===u,c=d?"height":"width",p=d?"top":"left",f={};e.effects.save(r,o),r.show(),a=e.effects.createWrapper(r).css({overflow:"hidden"}),s="IMG"===r[0].tagName?a:r,n=s[c](),h&&(s.css(c,0),s.css(p,n/2)),f[c]=h?n:0,f[p]=h?0:n/2,s.animate(f,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){h||r.hide(),e.effects.restore(r,o),e.effects.removeWrapper(r),i()}})}})(jQuery);(function(e){e.effects.effect.drop=function(t,i){var a,s=e(this),n=["position","top","bottom","left","right","opacity","height","width"],r=e.effects.setMode(s,t.mode||"hide"),o="show"===r,l=t.direction||"left",h="up"===l||"down"===l?"top":"left",u="up"===l||"left"===l?"pos":"neg",d={opacity:o?1:0};e.effects.save(s,n),s.show(),e.effects.createWrapper(s),a=t.distance||s["top"===h?"outerHeight":"outerWidth"](!0)/2,o&&s.css("opacity",0).css(h,"pos"===u?-a:a),d[h]=(o?"pos"===u?"+=":"-=":"pos"===u?"-=":"+=")+a,s.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===r&&s.hide(),e.effects.restore(s,n),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e){e.effects.effect.explode=function(t,i){function s(){b.push(this),b.length===d*c&&a()}function a(){p.css({visibility:"visible"}),e(b).remove(),m||p.hide(),i()}var n,r,o,l,h,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=d,p=e(this),f=e.effects.setMode(p,t.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/c),y=Math.ceil(p.outerHeight()/d),b=[];for(n=0;d>n;n++)for(l=g.top+n*y,u=n-(d-1)/2,r=0;c>r;r++)o=g.left+r*v,h=r-(c-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-r*v,top:-n*y}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:y,left:o+(m?h*v:0),top:l+(m?u*y:0),opacity:m?0:1}).animate({left:o+(m?0:h*v),top:l+(m?0:u*y),opacity:m?1:0},t.duration||500,t.easing,s)}})(jQuery);(function(e){e.effects.effect.fade=function(t,i){var s=e(this),a=e.effects.setMode(s,t.mode||"toggle");s.animate({opacity:a},{queue:!1,duration:t.duration,easing:t.easing,complete:i})}})(jQuery);(function(e){e.effects.effect.fold=function(t,i){var s,a,n=e(this),r=["position","top","bottom","left","right","height","width"],o=e.effects.setMode(n,t.mode||"hide"),l="show"===o,h="hide"===o,u=t.size||15,d=/([0-9]+)%/.exec(u),c=!!t.horizFirst,p=l!==c,f=p?["width","height"]:["height","width"],m=t.duration/2,g={},v={};e.effects.save(n,r),n.show(),s=e.effects.createWrapper(n).css({overflow:"hidden"}),a=p?[s.width(),s.height()]:[s.height(),s.width()],d&&(u=parseInt(d[1],10)/100*a[h?0:1]),l&&s.css(c?{height:0,width:u}:{height:u,width:0}),g[f[0]]=l?a[0]:u,v[f[1]]=l?a[1]:0,s.animate(g,m,t.easing).animate(v,m,t.easing,function(){h&&n.hide(),e.effects.restore(n,r),e.effects.removeWrapper(n),i()})}})(jQuery);(function(e){e.effects.effect.highlight=function(t,i){var s=e(this),a=["backgroundImage","backgroundColor","opacity"],n=e.effects.setMode(s,t.mode||"show"),r={backgroundColor:s.css("backgroundColor")};"hide"===n&&(r.opacity=0),e.effects.save(s,a),s.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(r,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===n&&s.hide(),e.effects.restore(s,a),i()}})}})(jQuery);(function(e){e.effects.effect.pulsate=function(t,i){var s,a=e(this),n=e.effects.setMode(a,t.mode||"show"),r="show"===n,o="hide"===n,l=r||"hide"===n,h=2*(t.times||5)+(l?1:0),u=t.duration/h,d=0,c=a.queue(),p=c.length;for((r||!a.is(":visible"))&&(a.css("opacity",0).show(),d=1),s=1;h>s;s++)a.animate({opacity:d},u,t.easing),d=1-d;a.animate({opacity:d},u,t.easing),a.queue(function(){o&&a.hide(),i()}),p>1&&c.splice.apply(c,[1,0].concat(c.splice(p,h+1))),a.dequeue()}})(jQuery);(function(e){e.effects.effect.puff=function(t,i){var s=e(this),a=e.effects.setMode(s,t.mode||"hide"),n="hide"===a,r=parseInt(t.percent,10)||150,o=r/100,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:a,complete:i,percent:n?r:100,from:n?h:{height:h.height*o,width:h.width*o,outerHeight:h.outerHeight*o,outerWidth:h.outerWidth*o}}),s.effect(t)},e.effects.effect.scale=function(t,i){var s=e(this),a=e.extend(!0,{},t),n=e.effects.setMode(s,t.mode||"effect"),r=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===n?0:100),o=t.direction||"both",h=t.origin,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},u={y:"horizontal"!==o?r/100:1,x:"vertical"!==o?r/100:1};a.effect="size",a.queue=!1,a.complete=i,"effect"!==n&&(a.origin=h||["middle","center"],a.restore=!0),a.from=t.from||("show"===n?{height:0,width:0,outerHeight:0,outerWidth:0}:l),a.to={height:l.height*u.y,width:l.width*u.x,outerHeight:l.outerHeight*u.y,outerWidth:l.outerWidth*u.x},a.fade&&("show"===n&&(a.from.opacity=0,a.to.opacity=1),"hide"===n&&(a.from.opacity=1,a.to.opacity=0)),s.effect(a)},e.effects.effect.size=function(t,i){var s,a,n,r=e(this),o=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],l=["width","height","overflow"],u=["fontSize"],d=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(r,t.mode||"effect"),f=t.restore||"effect"!==p,m=t.scale||"both",g=t.origin||["middle","center"],v=r.css("position"),y=f?o:h,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&r.show(),s={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},"toggle"===t.mode&&"show"===p?(r.from=t.to||b,r.to=t.from||s):(r.from=t.from||("show"===p?b:s),r.to=t.to||("hide"===p?b:s)),n={from:{y:r.from.height/s.height,x:r.from.width/s.width},to:{y:r.to.height/s.height,x:r.to.width/s.width}},("box"===m||"both"===m)&&(n.from.y!==n.to.y&&(y=y.concat(d),r.from=e.effects.setTransition(r,d,n.from.y,r.from),r.to=e.effects.setTransition(r,d,n.to.y,r.to)),n.from.x!==n.to.x&&(y=y.concat(c),r.from=e.effects.setTransition(r,c,n.from.x,r.from),r.to=e.effects.setTransition(r,c,n.to.x,r.to))),("content"===m||"both"===m)&&n.from.y!==n.to.y&&(y=y.concat(u).concat(l),r.from=e.effects.setTransition(r,u,n.from.y,r.from),r.to=e.effects.setTransition(r,u,n.to.y,r.to)),e.effects.save(r,y),r.show(),e.effects.createWrapper(r),r.css("overflow","hidden").css(r.from),g&&(a=e.effects.getBaseline(g,s),r.from.top=(s.outerHeight-r.outerHeight())*a.y,r.from.left=(s.outerWidth-r.outerWidth())*a.x,r.to.top=(s.outerHeight-r.to.outerHeight)*a.y,r.to.left=(s.outerWidth-r.to.outerWidth)*a.x),r.css(r.from),("content"===m||"both"===m)&&(d=d.concat(["marginTop","marginBottom"]).concat(u),c=c.concat(["marginLeft","marginRight"]),l=o.concat(d).concat(c),r.find("*[width]").each(function(){var i=e(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&e.effects.save(i,l),i.from={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},i.to={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x},n.from.y!==n.to.y&&(i.from=e.effects.setTransition(i,d,n.from.y,i.from),i.to=e.effects.setTransition(i,d,n.to.y,i.to)),n.from.x!==n.to.x&&(i.from=e.effects.setTransition(i,c,n.from.x,i.from),i.to=e.effects.setTransition(i,c,n.to.x,i.to)),i.css(i.from),i.animate(i.to,t.duration,t.easing,function(){f&&e.effects.restore(i,l)})})),r.animate(r.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){0===r.to.opacity&&r.css("opacity",r.from.opacity),"hide"===p&&r.hide(),e.effects.restore(r,y),f||("static"===v?r.css({position:"relative",top:r.to.top,left:r.to.left}):e.each(["top","left"],function(e,t){r.css(t,function(t,i){var s=parseInt(i,10),a=e?r.to.left:r.to.top;return"auto"===i?a+"px":s+a+"px"})})),e.effects.removeWrapper(r),i()}})}})(jQuery);(function(e){e.effects.effect.shake=function(t,i){var s,a=e(this),n=["position","top","bottom","left","right","height","width"],r=e.effects.setMode(a,t.mode||"effect"),o=t.direction||"left",h=t.distance||20,l=t.times||3,u=2*l+1,d=Math.round(t.duration/u),c="up"===o||"down"===o?"top":"left",p="up"===o||"left"===o,f={},m={},g={},v=a.queue(),y=v.length;for(e.effects.save(a,n),a.show(),e.effects.createWrapper(a),f[c]=(p?"-=":"+=")+h,m[c]=(p?"+=":"-=")+2*h,g[c]=(p?"-=":"+=")+2*h,a.animate(f,d,t.easing),s=1;l>s;s++)a.animate(m,d,t.easing).animate(g,d,t.easing);a.animate(m,d,t.easing).animate(f,d/2,t.easing).queue(function(){"hide"===r&&a.hide(),e.effects.restore(a,n),e.effects.removeWrapper(a),i()}),y>1&&v.splice.apply(v,[1,0].concat(v.splice(y,u+1))),a.dequeue()}})(jQuery);(function(e){e.effects.effect.slide=function(t,i){var s,a=e(this),n=["position","top","bottom","left","right","width","height"],r=e.effects.setMode(a,t.mode||"show"),o="show"===r,h=t.direction||"left",l="up"===h||"down"===h?"top":"left",u="up"===h||"left"===h,d={};e.effects.save(a,n),a.show(),s=t.distance||a["top"===l?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(a).css({overflow:"hidden"}),o&&a.css(l,u?isNaN(s)?"-"+s:-s:s),d[l]=(o?u?"+=":"-=":u?"-=":"+=")+s,a.animate(d,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===r&&a.hide(),e.effects.restore(a,n),e.effects.removeWrapper(a),i()}})}})(jQuery);(function(e){e.effects.effect.transfer=function(t,i){var s=e(this),a=e(t.to),n="fixed"===a.css("position"),r=e("body"),o=n?r.scrollTop():0,h=n?r.scrollLeft():0,l=a.offset(),u={top:l.top-o,left:l.left-h,height:a.innerHeight(),width:a.innerWidth()},d=s.offset(),c=e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:d.top-o,left:d.left-h,height:s.innerHeight(),width:s.innerWidth(),position:n?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){c.remove(),i()})}})(jQuery); \ 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 5c1cd81..b7412d1 100644
--- a/build/js/jsxc/lib/jsxc.dep.js
+++ b/build/js/jsxc/lib/jsxc.dep.js
@@ -1,14 +1,10 @@
/*!
- * jsxc v3.1.0-beta - 2017-01-23
+ * jsxc v3.1.0-beta.2 - 2017-02-10
*
* This file concatenates all dependencies of jsxc.
*
*/
-
-/*!
- * Source: lib/strophe.js/strophe.js, license: multiple, url: http://strophe.im/strophejs/
- */
/** File: strophe.js
* A JavaScript library for writing XMPP clients.
*
@@ -5838,10 +5834,6 @@ if (callback) {
});
/* jshint ignore:end */
-
-/*!
- * Source: lib/strophe.muc.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
// Generated by CoffeeScript 1.3.3
/*
*Plugin to implement the MUC extension.
@@ -6863,10 +6855,6 @@ Occupant = (function() {
})();
-
-/*!
- * Source: lib/strophe.disco.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
/*
Copyright 2010, François de Metz <francois@2metz.fr>
*/
@@ -7100,10 +7088,6 @@ Strophe.addConnectionPlugin('disco',
}
});
-
-/*!
- * Source: lib/strophe.caps.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
/**
* Entity Capabilities (XEP-0115)
*
@@ -7380,10 +7364,6 @@ Strophe.addConnectionPlugin('disco',
});
}(jQuery));
-
-/*!
- * Source: lib/strophe.vcard/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
// Generated by CoffeeScript 1.10.0
/*
@@ -7461,131 +7441,6 @@ CoffeeScript port: Andreas Guth (guth@dbis.rwth-aachen.de)
}).call(this);
-
-/*!
- * 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');
-
- },
- /**
- * Create private bookmark node.
- *
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- */
- createBookmarksNode : function(success, error) {
- // We do this instead of using publish-options because this is not
- // mandatory to implement according to XEP-0060
- 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);
-
- return true;
- },
- /**
- * Add bookmark to storage.
- *
- * @param {string} roomJid - The JabberID of the chat roomJid
- * @param {string} [alias] - A friendly name for the bookmark
- * @param {string} [nick] - The users's preferred roomnick for the chatroom
- * @param {boolean} [autojoin=false] - Whether the client should automatically join
- * the conference room on login.
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- */
- add : function(roomJid, alias, nick, autojoin, success, error) {
- var conferenceAttr = {
- jid: roomJid,
- autojoin: autojoin || false
- };
-
- if (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);
-
- if (nick) {
- stanza.c('nick').t(nick);
- }
-
- this.connection.sendIQ(stanza, success, error);
- },
- /**
- * Retrieve all stored bookmarks.
- *
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after 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 the given entry for roomJid.
- *
- * @param {string} roomJid - The JabberID of the chat roomJid you want to remove
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- * @param {boolean} [notify=false] - True: notify all subscribers
- */
- 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 || false
- }).c('item', {
- id: roomJid
- }), success, error);
- }
-
-});
-
-
-/*!
- * Source: lib/strophe.x/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/dataforms
- */
// Generated by CoffeeScript 1.8.0
(function() {
var $field, $form, $item, $opt, Field, Form, Item, Option, helper,
@@ -8432,10 +8287,6 @@ Strophe.addConnectionPlugin('bookmarks', {
}).call(this);
-
-/*!
- * Source: lib/strophe.chatstates/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/chatstates
- */
/**
* Chat state notifications (XEP 0085) plugin
* @see http://xmpp.org/extensions/xep-0085.html
@@ -8517,10 +8368,6 @@ Strophe.addConnectionPlugin('chatstates',
}
});
-
-/*!
- * Source: lib/strophe.jinglejs/strophe.jinglejs-bundle.js, license: MIT, url: https://github.com/sualko/strophe.jinglejs
- */
/*!
* strophe.jinglejs v0.1.2 - 2017-01-12
*
@@ -40190,10 +40037,6 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
},{"getscreenmedia":31,"getusermedia":32,"jingle":53,"jxt":120,"jxt-xmpp":81,"jxt-xmpp-types":54,"webrtc-adapter-test":200}]},{},[220]);
-
-/*!
- * Source: lib/otr/build/dep/salsa20.js, license: AGPL3, url: https://github.com/neoatlantis/node-salsa20
- */
// Salsa20 implementation
// Contributed to Cryptocat by Dmitry Chestnykh
// 21-01-2013
@@ -40448,10 +40291,6 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
return Salsa20
}))
-
-/*!
- * Source: lib/otr/build/dep/bigint.js, license: public domain, url: www.leemon.com
- */
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
@@ -42161,10 +42000,6 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
}
}))
-
-/*!
- * Source: lib/otr/build/dep/crypto.js, license: code.google.com/p/crypto-js/wiki/license, url: code.google.com/p/crypto-js
- */
;(function (root, factory) {
if (typeof define === "function" && define.amd) {
@@ -44599,10 +44434,6 @@ CryptoJS.mode.CTR = (function () {
return CryptoJS
}));
-
-/*!
- * Source: lib/otr/build/dep/eventemitter.js, license: MIT, url: http://git.io/ee
- */
/*!
* EventEmitter v4.2.3 - git.io/ee
* Oliver Caldwell
@@ -45059,10 +44890,6 @@ CryptoJS.mode.CTR = (function () {
}
}.call(this));
-
-/*!
- * Source: lib/otr/build/otr.js, license: MPL v2.0, url: https://arlolra.github.io/otr/
- */
/*!
otr.js v0.2.15 - 2015-05-04
@@ -47705,35 +47532,14 @@ CryptoJS.mode.CTR = (function () {
}
}))
-
-/*!
- * Source: lib/i18next/i18next.min.js, license: MIT, url: http://i18next.com/
- */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n));
}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D});
-
-/*!
- * Source: lib/jquery-i18next/jquery-i18next.min.js, license: MIT, url: http://i18next.com/
- */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a});
-
-/*!
- * Source: lib/magnific-popup/dist/jquery.magnific-popup.min.js, license: MIT, url: http://dimsemenov.com/plugins/magnific-popup/
- */
/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
* Copyright (c) 2016 Dmitry Semenov; */
!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.isLowIE=b.isIE8=document.all&&!document.addEventListener,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="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=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.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({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.st.autoFocusLast&&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),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!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||c.altKey||c.shiftKey)){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(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_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">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},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";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);e.click(function(){b.prev()}),f.click(function(){b.next()}),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.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)}))}}}}),A()});
-
-/*!
- * Source: lib/translation.js, license: MIT, url: https://webtranslateit.com/en/projects/10365-JSXC
- */
-var I18next = {"bg":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Kopie","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":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":"Schließe alle"}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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 media 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","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification"}},"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":"Solo 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":"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo 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":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más 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":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","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":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","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 vacía, añadir un <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.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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 contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","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":"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","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 contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","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 le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","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":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","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 un 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 contact n'a pas fourni d'informations","Info_about":"À 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":"raccrocher","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 contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"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":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"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":"Ne peut charger que __count__ salons pour l'autocomplétion","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à rejoint 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":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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":"L'historique du salon est conservé","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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","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>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":null}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","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":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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":"Posiadasz tylko 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":"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.","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ą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","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ń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","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":"Prośba o kontakt","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":"Wybacz, 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":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","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.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Sua impressão digital","Buddy_fingerprint":"Impressão digital 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":"Impressões digitais","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":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","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":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","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.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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_":"Создается приватный ключ. Это может занять некоторое время","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_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","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":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"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":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","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_":"__status__","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":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"vi-VN":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"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":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","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_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","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":"來電","from":"只出","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":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","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_":"狀態: __status__","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":"加密但未校驗的對話開始了。","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":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":null}},"zh":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}};
-
-/*!
- * Source: lib/favico.js/favico.js, license: MIT, url: https://github.com/ejci/favico.js
- */
/**
* @license MIT
* @fileOverview Favico animations
@@ -48592,10 +48398,6 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
})();
-
-/*!
- * Source: lib/emojione/lib/js/emojione.js, license: CC-BY 4.0, url: http://emojione.com
- */
/* jshint maxerr: 10000 */
/* jslint unused: true */
/* jshint shadow: true */
@@ -49110,4 +48912,5 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
};
}(this.emojione = this.emojione || {}));
-if(typeof module === "object") module.exports = this.emojione; \ No newline at end of file
+if(typeof module === "object") module.exports = this.emojione;
+var I18next = {"bg":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Kopie","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":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":"Teile Bildschirm","Incoming_stream":"Eingehender Stream","Stream_started":"Stream gestarted","HTTPS_REQUIRED":"Diese Aktion erfordert eine verschlüsselte Verbindung.","EXTENSION_UNAVAILABLE":"Sie benötigen eine Browser Erweiterung.","UNKNOWN_ERROR":"Ein unbekannter Fehler ist aufgetreten.","Install_extension":"Bitte installieren Sie die Erweiterung um ihren Bildschirm zu teilen: ","Connection_accepted":"Verbindung angenommen","Stream_terminated":"Stream beendet","Close_all":"Schließe alle"}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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 media 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","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification","Unreadable_OTR_message":"Unreadable OTR message omitted"}},"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":"Solo 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":"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo 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":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más 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":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","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":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","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 vacía, añadir un <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.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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 contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","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":"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","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 contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","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 le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","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":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","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 un 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 contact n'a pas fourni d'informations","Info_about":"À 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":"raccrocher","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 contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"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":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"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":"Ne peut charger que __count__ salons pour l'autocomplétion","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à rejoint 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":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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":"L'historique du salon est conservé","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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","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>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":"Tout fermer"}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","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":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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":"Posiadasz tylko 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":"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.","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ą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","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ń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","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":"Prośba o kontakt","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":"Wybacz, 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":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","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.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Sua impressão digital","Buddy_fingerprint":"Impressão digital 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":"Impressões digitais","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":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","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":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","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.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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_":"Создается приватный ключ. Это может занять некоторое время","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_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","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":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"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":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","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_":"__status__","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":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":" yazıyor...","_are_composing":" yazıyorlar...","Chat_state_notifications":"Sohbet durumu bildirimleri","setting-explanation-chat-state":"Birisi mesaj başlattığında veya mesaj yazmayı bıraktığında, sohbet durumu bildirimleri göndermek ve almak istiyor musunuz?","Share_screen":"Ekran paylaşımı","Incoming_stream":"Gelen akış","Stream_started":"Akış başladı","HTTPS_REQUIRED":"Bu eylem, şifreli bir bağlantı gerektirir.","EXTENSION_UNAVAILABLE":"Tarayıcı eklentisine ihtiyacınız var.","UNKNOWN_ERROR":"Bilinmeyen bir hata oluştu.","Install_extension":"Ekran paylaşımını kullanabilmek için lütfen eklentiyi yükleyin: ","Connection_accepted":"Bağlantı kabul edildi","Stream_terminated":"Akış sonlandırıldı","Close_all":"Hepsini kapat"}},"vi-VN":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"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":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","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_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","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":"來電","from":"只出","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":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","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_":"狀態: __status__","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":"加密但未校驗的對話開始了。","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":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":"全部關掉"}},"zh":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}}; \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.min.js b/build/js/jsxc/lib/jsxc.dep.min.js
index 23b80f2..e8b8ecd 100644
--- a/build/js/jsxc/lib/jsxc.dep.min.js
+++ b/build/js/jsxc/lib/jsxc.dep.min.js
@@ -12,7 +12,7 @@ if(data.length>0&&!this._conn.paused){for(var i=0;i<data.length;i++)if(null!==da
*
* @license MIT
*/
-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;i<identitiesLen;i++){var curIdent=identities[i];ver+=curIdent.category+"/"+curIdent.type+"/"+curIdent.lang+"/"+curIdent.name+"<"}for(var i=0;i<featuresLen;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;i<childNodesLen;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),function(){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"function"==typeof jid&&(error_cb=jid,jid=null),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_cb)}})}.call(this),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)}}),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;i<l;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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_j<_len1;_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;_i<_len;_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;_j<_len1;_j++)r=_ref1[_j],xml.c("field",{var:r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_k<_len2;_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;_i<_len;_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;_j<_len1;_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;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_i<_len;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_j<_len1;_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;_k<_len2;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_j<_len1;_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;_i<_len;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_j<_len1;_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;_k<_len2;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;if(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))return conn.disco.addNode(Strophe.NS.DATA,{items:[]})},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),Strophe.addConnectionPlugin("chatstates",{init:function(connection){this._connection=connection,Strophe.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates")},statusChanged:function(status){status!==Strophe.Status.CONNECTED&&status!==Strophe.Status.ATTACHED||this._connection.addHandler(this._notificationReceived.bind(this),Strophe.NS.CHATSTATES,"message")},addActive:function(message){return message.c("active",{xmlns:Strophe.NS.CHATSTATES}).up()},_notificationReceived:function(message){var composing=$(message).find("composing"),paused=$(message).find("paused"),active=$(message).find("active"),jid=$(message).attr("from");return composing.length>0&&$(document).trigger("composing.chatstates",jid),paused.length>0&&$(document).trigger("paused.chatstates",jid),active.length>0&&$(document).trigger("active.chatstates",jid),!0},sendActive:function(jid,type){this._sendNotification(jid,type,"active")},sendComposing:function(jid,type){this._sendNotification(jid,type,"composing")},sendPaused:function(jid,type){this._sendNotification(jid,type,"paused")},_sendNotification:function(jid,type,notification){type||(type="chat"),this._connection.send($msg({to:jid,type:type}).c(notification,{xmlns:Strophe.NS.CHATSTATES}))}}),/*!
+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;i<identitiesLen;i++){var curIdent=identities[i];ver+=curIdent.category+"/"+curIdent.type+"/"+curIdent.lang+"/"+curIdent.name+"<"}for(var i=0;i<featuresLen;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;i<childNodesLen;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),function(){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"function"==typeof jid&&(error_cb=jid,jid=null),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_cb)}})}.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;i<l;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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_j<_len1;_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;_i<_len;_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;_j<_len1;_j++)r=_ref1[_j],xml.c("field",{var:r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_k<_len2;_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;_i<_len;_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;_j<_len1;_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;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_i<_len;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_j<_len1;_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;_k<_len2;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_j<_len1;_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;_i<_len;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_j<_len1;_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;_k<_len2;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;_i<_len;_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;if(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))return conn.disco.addNode(Strophe.NS.DATA,{items:[]})},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),Strophe.addConnectionPlugin("chatstates",{init:function(connection){this._connection=connection,Strophe.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates")},statusChanged:function(status){status!==Strophe.Status.CONNECTED&&status!==Strophe.Status.ATTACHED||this._connection.addHandler(this._notificationReceived.bind(this),Strophe.NS.CHATSTATES,"message")},addActive:function(message){return message.c("active",{xmlns:Strophe.NS.CHATSTATES}).up()},_notificationReceived:function(message){var composing=$(message).find("composing"),paused=$(message).find("paused"),active=$(message).find("active"),jid=$(message).attr("from");return composing.length>0&&$(document).trigger("composing.chatstates",jid),paused.length>0&&$(document).trigger("paused.chatstates",jid),active.length>0&&$(document).trigger("active.chatstates",jid),!0},sendActive:function(jid,type){this._sendNotification(jid,type,"active")},sendComposing:function(jid,type){this._sendNotification(jid,type,"composing")},sendPaused:function(jid,type){this._sendNotification(jid,type,"paused")},_sendNotification:function(jid,type,notification){type||(type="chat"),this._connection.send($msg({to:jid,type:type}).c(notification,{xmlns:Strophe.NS.CHATSTATES}))}}),/*!
* strophe.jinglejs v0.1.2 - 2017-01-12
*
* Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
@@ -72,19 +72,13 @@ s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;j<kx;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j
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)&&indexOfListener(listeners[key],listener)===-1&&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),index!==-1&&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},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:" \t \t\t\t\t \t \t \t ",WHITESPACE_TAG_V2:" \t\t \t ",WHITESPACE_TAG_V3:" \t\t \t\t",OTR_TAG:"?OTR",OTR_VERSION_1:"\0",OTR_VERSION_2:"\0",OTR_VERSION_3:"\0",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+"\0\0\0\0\0\0\0\0"},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;i<len;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=[];i<num;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;k<=n;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={};i<256;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;i<256;++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;i<n;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;counter<bl4;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(")"),start<0||end<0)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("("),start<0)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;i<len&&es<ss;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="\0\0",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;ind<len;)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],n<k||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("\0",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("\0"),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,"\0"+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+="\0",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="\0\0\0\0",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("\0",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+="\0",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(our_keyid<0||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(their_keyid<0||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("\0");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(their_it<100)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="\0";msg+="\0\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\0\0\0",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("\0\0\0\0",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(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";
var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D}),!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a}),!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.isLowIE=b.isIE8=document.all&&!document.addEventListener,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="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=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.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({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.st.autoFocusLast&&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;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!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||c.altKey||c.shiftKey)){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(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_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">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},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},_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";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);e.click(function(){b.prev()}),f.click(function(){b.next()}),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.arrowRight=b.arrowLeft=null}))},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)}))}}}}),A()});var I18next={bg:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"bn-BD":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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:"Kopie",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:"Verifizierte private Konversation gestartet.",Unverified_private_conversation_started:"Unverifizierte private Konversation gestartet.",Bookmark:"Lesezeichen","Auto-join":"Automatisch beitreten",Edit_bookmark:"Lesezeichen bearbeiten",Room_logging_is_disabled:"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym",Do_you_want_to_change_the_default_room_configuration:"Möchtest du die Gruppenkonfiguration ändern?",Default:"Standard",Change:"Ändern",Send_file:"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.",_is_composing:" tippt gerade...",_are_composing:" tippen gerade...",Chat_state_notifications:"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?",Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:"Schließe alle"}},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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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 media 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",Send_file:"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.",_is_composing:" is composing...",_are_composing:" are composing...",Chat_state_notifications:"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?",Share_screen:"Share screen",Incoming_stream:"Incoming stream",Stream_started:"Stream started",HTTPS_REQUIRED:"This action requires an encrypted connection.",EXTENSION_UNAVAILABLE:"You need a browser extension/addon.",UNKNOWN_ERROR:"An unknown error occured.",Install_extension:"Please install the extension in order to use screen sharing: ",Connection_accepted:"Connection accepted",Stream_terminated:"Stream terminated",Close_all:"Close all",Notification:"Notification"}},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:"Solo 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:"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido solo 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:"más ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No una de nuestras última claves.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Más 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:"Apodo",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Dirección extendida",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Correo electrónico",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:"Unirse al chat",Join:"Unirse",Room:"Sala",Nickname:"Alias",left_the_building:"__nickname__ dejó el edificio",entered_the_room:"__nickname__ entró en la sala",is_now_known_as:"__oldNickname__ ahora es conocido como __newNickname__",This_room_is:"Esta sala es",muc_hidden:{keyword:"oculta",description:"no se encontró mediante la búsqueda"},muc_membersonly:{keyword:"miembros solo",description:"necesitas estar en la lista de miembros"},muc_moderated:{keyword:"moderada",description:'solo personas con "voice" están permitidas para mandar mensajes'},muc_nonanonymous:{keyword:"no anónima",description:"tu id de jabber es expuesta al resto de ocupantes"},muc_open:{keyword:"abierta",description:"todo el mundo puede unirse"},muc_passwordprotected:{keyword:"protegida por contraseña",description:"necesitas dar la contraseña correcta"},muc_persistent:{keyword:"persistente",description:"no será destruida si el último ocupante sale"},muc_public:{keyword:"pública",description:"puede ser encontrada mediante la búsqueda"},muc_semianonymous:{keyword:"semi-anónima",description:"tu id de jabber es expuesta a los administradores de la sala"},muc_temporary:{keyword:"temporal",description:"será destruida si el último ocupante sale"},
-muc_unmoderated:{keyword:"no moderada",description:"todo el mundo puede enviar mensajes"},muc_unsecured:{keyword:"sin asegurar",description:"no necesitas contraseña para entrar"},Continue:"Continuar",Server:"Servidor",Rooms_are_loaded:"Las salas han sido cargadas",Could_load_only:"Se cargaron solo __count__ salas para el autocompletado",muc_explanation:"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat",You_already_joined_this_room:"Ya te has unido a esta sala",This_room_will_be_closed:"Esta sale será cerrada",Room_not_found_:"Sala no encontrada",Loading_room_information:"Cargando información de la sala",Destroy:"Destruir",Leave:"Abandonar",changed_subject_to:'__nickname__ cambió el asunto de la sala a "__subject__"',muc_removed_kicked:"Has sido echado de la sala",muc_removed_info_kicked:"__nickname__ ha sido echado de la sala",muc_removed_banned:"Has sido expulsado de la sala",muc_removed_info_banned:"__nickname__ ha sido expulsado",muc_removed_affiliation:"Has sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_info_affiliation:"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_membersonly:"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_info_membersonly:"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_shutdown:"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado",Reason:"Razón",message_not_send:"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe",message_not_send_forbidden:"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ",This_room_has_been_closed:"Esta sala ha sido cerrada",Room_logging_is_enabled:"Log de sala está habilitado",A_password_is_required:"Se requiere una contraseña",You_are_not_on_the_member_list:"No estás en la lista de miembros",You_are_banned_from_this_room:"Estás expulsado de esta sala",Your_desired_nickname_:"Tu alias ya está en uso. Por favor elige otro",The_maximum_number_:"El máximo número de usuarios ha sido alcanzado en esta sala",This_room_is_locked_:"Esta sala está bloqueada",You_are_not_allowed_to_create_:"No tienes permiso para crear una sala",Alert:"Alerta",Call_started:"Llamada empezada",Call_terminated:"Llamada terminada",Carbon_copy:"Calco",Enable:"Activar",jingle_reason_busy:"ocupado",jingle_reason_decline:"rechazar",jingle_reason_success:"colgar",Media_failure:"Fallo multimedia",No_local_audio_device:"No hay dispositivo de audio local",No_local_video_device:"No hay dispositivo de vídeo local",Ok:"Ok",PermissionDeniedError:"Tú o tu navegador denegaron el permiso de audio/vídeo",Use_local_audio_device:"Usar dispositivo de audio local",Use_local_video_device:"Usar dispositivo de vídeo",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 vacía, añadir un <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.",Bookmark:"Favorito","Auto-join":"Auto-unir",Edit_bookmark:"Editar favorito",Room_logging_is_disabled:"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima",Do_you_want_to_change_the_default_room_configuration:"¿Quieres cambiar la configuración por defecto de la sala?",Default:"Por defecto",Change:"Cambiar",Send_file:"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},fi:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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 contact a fermé la connexion privée.",start_private:"Démarrer une conversation privée",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:"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte du contact",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 contact.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter un contact",rename_buddy:"Renommer le contact",delete_buddy:"Supprimer le contact",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 le contact",You_are_about_to_remove_:"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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:"Statut",online:"En ligne",chat:"tchat",away:"Absent",xa:"Longue absence",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:"Libre pour discuter",Away:"Absent",Extended_away:"Longue absence",Offline:"Hors ligne",Friendship_request:"Demande de contact",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Pseudo",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 un 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 contact n'a pas fourni d'informations",Info_about:"À 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:"raccrocher",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 contact ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discussion",Join:"Joindre",Room:"Salon",Nickname:"Pseudo",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:"__oldNickname__ est maintenant connu comme __newNickname__",This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:"ne peut être trouvé avec une recherche"},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:"ne sera pas détruit si le dernier occupant part"},muc_public:{keyword:"public",description:"peut être touvé avec une recherche"},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:"Ne peut charger que __count__ salons pour l'autocomplétion",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à rejoint 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:"Vous avez été retiré du salon en raison d'un changement d'affiliation",muc_removed_info_affiliation:"__nickname__ a été retiré du salon en raison d'un changement d'affiliation",muc_removed_membersonly:"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie",muc_removed_info_membersonly:"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres",muc_removed_shutdown:"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre",Reason:"Raison",message_not_send:"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas",message_not_send_forbidden:"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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:"L'historique du salon est conservé",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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateurs est atteint dans ce salon",This_room_is_locked_:"Ce salon est verrouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:"Alerte",Call_started:"Appel démarré",Call_terminated:"Appel terminé",Carbon_copy:"Copie carbone",Enable:"Activé",jingle_reason_busy:"occupé",jingle_reason_decline:"refusé",jingle_reason_success:"raccroché",Media_failure:"échec du média",No_local_audio_device:"Pas de périphérique audio local",No_local_video_device:"Pas de périphérique vidéo local",Ok:"Ok",PermissionDeniedError:"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo",Use_local_audio_device:"Utiliser un périphérique audio local.",Use_local_video_device:"Utiliser un périphérique vidéo local.",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>Nouveau contact</a>",onsmp_explanation_question:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",onsmp_explanation_secret:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"La conversation privée vérifiée a démarré.",Unverified_private_conversation_started:"La conversation privée non vérifiée a démarré.",Bookmark:"Marque-page","Auto-join":"Joindre automatiquement",Edit_bookmark:"Éditer le marque-page",Room_logging_is_disabled:"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme",Do_you_want_to_change_the_default_room_configuration:"Voulez-vous changer la configuration par défaut du salon ?",Default:"Par défaut",Change:"Changer",Send_file:"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.",_is_composing:" est en train d'écrire...",_are_composing:" sont en train d'écrire...",Chat_state_notifications:"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?",Share_screen:"Ecran partagé",Incoming_stream:"Flux entrant",Stream_started:"flux démarré",HTTPS_REQUIRED:"Cette action nécessite une connexion cryptée.",EXTENSION_UNAVAILABLE:"Vous avez besoin d'une extension / d'un addon pour votre navigateur.",UNKNOWN_ERROR:"Une erreur inconnue s'est produite.",Install_extension:"Veuillez installer l'extension afin d'utiliser le partage d'écran: ",Connection_accepted:"Connexion acceptée",Stream_terminated:"Flux terminé",Close_all:null}},"hu-HU":{translation:{Logging_in:null,your_connection_is_unencrypted:"Az Ön kapcsolata titkosítatlan.",your_connection_is_encrypted:"Az Ön kapcsolata titkosított.",your_buddy_closed_the_private_connection:"Partnere megszakította a privát kapcsolatot.",start_private:"Privát beszélgetés indítása",close_private:"Privát beszélgetés bezárása",your_buddy_is_verificated:"Az Ön partnere megerősítve.",you_have_only_a_subscription_in_one_way:null,authentication_query_sent:"Azonosítási kérelem elküldve.",your_message_wasnt_send_please_end_your_private_conversation:"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.",unencrypted_message_received:"Titkosítatlan üzenet fogadva",not_available:"Nem elérhető",no_connection:"Nincs kapcsolat!",relogin:"relogin",trying_to_start_private_conversation:"Privát beszélgetés indítása!",Verified:"Megerősítve",Unverified:"Nem megerősített",private_conversation_aborted:"Privát beszélgetés megszakítva!",your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:"Azonosítás sikertelen.",Creating_your_private_key_:"Privát kulcs generálása. Egy kis időbe telhet...",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:"Kérdés",Secret:"Kulcs",To_verify_the_fingerprint_:null,Your_fingerprint:"Az Ön lenyomata",Buddy_fingerprint:"Partnere lenyomata",Close:"Bezárás",Compared:"Összehasonlítva",To_authenticate_using_a_question_:"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.",Ask:"Kérdez",To_authenticate_pick_a_secret_:"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.",Compare:"Összehasonlítás",Fingerprints:"Lenyomatok",Authentication:"Azonosítás",Message:"Üzenet",Add_buddy:"Partner hozzáadása",rename_buddy:"Partner átnevezése",delete_buddy:"Partner törlése",Login:"Belépés",Username:"Felhasználónév",Password:"Jelszó",Cancel:"Mégsem",Connect:"Csatlakozás",Type_in_the_full_username_:"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.",Alias:"Becenév",Add:"Hozzáadás",Subscription_request:"Feliratkozási kérelem",You_have_a_request_from:"Ön felkérést kapott a következőtől",Deny:"Elutasít",Approve:"Jóváhagy",Remove_buddy:"Partner eltávolítása",You_are_about_to_remove_:null,Continue_without_chat:"Folytatás chat nélkül",Please_wait:"Kérem várjon",Login_failed:"Chat bejelentkezés sikertelen",Sorry_we_cant_authentikate_:null,Retry:"Vissza",clear_history:"Előzmények törlése",New_message_from:"Új üzenet __name__ partnerétől",Should_we_notify_you_:"Kívánja hogy értesítsük a jövőben új üzeneteiről?",Please_accept_:'Kérem kattintson a fent megjelenő "Engedélyez" gombra.',Hide_offline:"Offline partnerek elrejtése",Show_offline:"Offline partnerek mutatása",About:null,dnd:"Ne zavarj",Mute:"Némítás",Unmute:"Hangok engedélyezése",Subscription:null,both:"mindkettő",Status:"Állapot",online:"elérhető",chat:null,away:"távol",xa:"huzamosabban távol",offline:"offline",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:"Teljes név",N:null,FAMILY:"Családi név",GIVEN:"Keresztnév",NICKNAME:"Becenév",URL:"URL",ADR:"Cím",STREET:"Utcanév",EXTADD:"Cím",LOCALITY:"Helység",REGION:"Régió",PCODE:"Irányítószám",CTRY:"Ország",TEL:"Telefonszám",NUMBER:"Házszám",EMAIL:"E-mail cím",USERID:null,ORG:"Vállalat",ORGNAME:"Név",ORGUNIT:"Osztály",TITLE:"Beosztás",ROLE:"Részleg",BDAY:"Születésnap",DESC:"Leírás",PHOTO:null,send_message:"Üzenet küldése",get_info:"Info mutatása",Settings:"Beállítások",Priority:"Prioritás",Save:"Mentés",User_settings:"Felhasználó beállítások",A_fingerprint_:null,is:null,Login_options:"Bejelentkezési lehetőségek",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Erőforrás",On_login:"Bejelentkezéskor",Received_an_unencrypted_message:"Titkosítatlan üzenetet fogadott",Sorry_your_buddy_doesnt_provide_any_information:"Sajnos az Ön partnere nem adott meg semmilyen információt.",Info_about:null,Authentication_aborted:"Azonosítás megszakítva.",Authentication_request_received:"Azonosítási kérelem fogadva.",Log_in_without_chat:"Bejelentkezés chat nélkül",has_come_online:"bejelentkezett",Unknown_sender:"Ismeretlen küldő",Please_allow_access_to_microphone_and_camera:'Kérem kattintson a fent megjelenő "Engedélyez/Allow" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.',Incoming_call:"Bejövő hívás",from:"tőle",Do_you_want_to_accept_the_call_from:"Szeretné fogadni következő partnere hívását:",Reject:"Elutasít",Accept:"Fogadás",hang_up:"tartás",snapshot:"képernyőfotó",mute_my_audio:"hangom némítása",pause_my_video:"videóképem megállítása",fullscreen:"teljes képernyő",Info:"Info",Local_IP:"Helyi IP",Remote_IP:"Távoli IP",Local_Fingerprint:"Helyi lenyomat",Remote_Fingerprint:"Távoli lenyomat",Video_call_not_possible:"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.",Start_video_call:"Videóhívás indítása",Join_chat:"Belépés a chatbe",Join:"Belépés",Room:"Szoba",Nickname:"Becenév",left_the_building:"__nickname__ elhagyta az épületet.",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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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.",Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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:"Posiadasz tylko 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:"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.",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ą za pomocą zaufanego sposobu, np telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod kontaktu",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę kontaktu",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ń kontakt",You_are_about_to_remove_:"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.",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:"Prośba o kontakt",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:"Wybacz, 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:"Rozmowa rozpoczęta",Call_terminated:"Rozmowa zakończona",Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:"zajęte",jingle_reason_decline:"odmów",jingle_reason_success:"zakończono",Media_failure:"Błąd mediów",No_local_audio_device:"Brak lokalnego urządzenia audio.",No_local_video_device:"Brak lokalnego urządzenia wideo.",Ok:"Ok",PermissionDeniedError:"Ty lub twoja przeglądarka odmówiła dostępu do audio/video",Use_local_audio_device:"Użyj lokalnego urządzenia audio.",Use_local_video_device:"Użyj lokalnego urządzenia wideo.",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.",Bookmark:"Zakładka","Auto-join":"Auto-połączenie",Edit_bookmark:"Edytuj zakładkę",Room_logging_is_disabled:"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy",Do_you_want_to_change_the_default_room_configuration:"Chcesz zmienić domyślną konfigurację pokoju?",Default:"Domyślny",Change:"Zmień",Send_file:"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"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:"Sua impressão digital",Buddy_fingerprint:"Impressão digital 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:"Impressões digitais",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:" IDUsuário",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Função",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:"Foto",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:"Entrar no chat",Join:"Entrar",Room:"Sala",Nickname:"Apelido",left_the_building:"__nickname__ deixou o prédio",entered_the_room:"__nickname__ entrou na sala",is_now_known_as:"__oldNickname__ agora é conhecido como __newNickname__",This_room_is:"Esta sala é",muc_hidden:{keyword:"oculto",description:"Não pode ser encontrado através de pesquisa"},muc_membersonly:{keyword:"apenas para membros",description:"você precisa estar na lista de membros"},muc_moderated:{keyword:"moderado",description:'Somente pessoas com "voice" podem enviar mensagens'},muc_nonanonymous:{keyword:"não-anônimo",description:"Seu id jabber esta esposto para todos os outros ocupantes"},muc_open:{keyword:"abrir",description:"Todos podem entrar"},muc_passwordprotected:{keyword:"protegido por senha",description:"você precisa fornecer a senha correta"},muc_persistent:{keyword:"persistente",description:"Não será destruída se o último ocupante tiver saído"},muc_public:{keyword:"público",description:"pode ser localizado pela busca"},muc_semianonymous:{keyword:"semi-anônimos",description:"Sua identificação jabber só é exposta para administradores da sala"},muc_temporary:{keyword:"temporário",description:"Será destruída se o último ocupante tiver saído"},muc_unmoderated:{keyword:"sem moderação",description:"Todos tem permissão de enviar mensagens"},muc_unsecured:{keyword:"inseguro",description:"Você não precisa de senha para entrar"},Continue:"Avançar",Server:"Servidor",Rooms_are_loaded:"Sala carregada",Could_load_only:"Pode carregar somente __count__ salas para autocompletar",muc_explanation:"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat",You_already_joined_this_room:"Você já entrou nesta sala",This_room_will_be_closed:"Esta sala será fechada",Room_not_found_:"Uma nova sala será criada",Loading_room_information:"Carregar informação da sala",Destroy:"Destruir",Leave:"Sair",changed_subject_to:'__nickname__ alterar o assunto da sala para "__subject__"',muc_removed_kicked:"Você foi removido da sala",muc_removed_info_kicked:"__nickname__ foi removido da sala",muc_removed_banned:"Você foi banido da sala",muc_removed_info_banned:"__nickname__ foi banido da sala",muc_removed_affiliation:"Você foi removido da sala pois a sala, por que a afiliação mudou",muc_removed_info_affiliation:"__nickname__ foi removido da sala, por que a afiliação mudou",muc_removed_membersonly:"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro",muc_removed_info_membersonly:"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro",muc_removed_shutdown:"Você foi removido da sala, por que o serviço MUC esta sendo desligado",Reason:"Motivo",message_not_send:"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais",message_not_send_forbidden:"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala",This_room_has_been_closed:"Essa sala foi fechada",Room_logging_is_enabled:"O Logging esta habilitado",A_password_is_required:"Senha é obrigatória",You_are_not_on_the_member_list:"Você não esta na lista de usuarios",You_are_banned_from_this_room:"Você foi banido desta sala",Your_desired_nickname_:"O nickname escolhido já esta em uso. Por favor escolha outro",The_maximum_number_:"O número máximo de usuarios já foi antigido para essa sala",This_room_is_locked_:"A sala esta trancada",You_are_not_allowed_to_create_:"Você não esta autorizado para criar uma sala",Alert:"Alerta",Call_started:"Chamada iniciada",Call_terminated:"Chamada finalizada",Carbon_copy:"Copia carbono",Enable:"Habilitado",jingle_reason_busy:"ocupado",jingle_reason_decline:"recusado",jingle_reason_success:"sucesso",Media_failure:"Media falhou",No_local_audio_device:"sem dispositivo local de audio",No_local_video_device:"sem dispositivo local de video",Ok:"Ok",PermissionDeniedError:"Você ou seu navegador negou permissão para acessar audio/video",Use_local_audio_device:"Usar dispositivo local de audio",Use_local_video_device:"Usar dispositivo local de video",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.",Bookmark:"Favoritos","Auto-join":"Entrar Automaticamente",Edit_bookmark:"Editar favoritos",Room_logging_is_disabled:"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora",Do_you_want_to_change_the_default_room_configuration:"Você quer alterar as configurações da sala?",Default:"Padrão",Change:"Alterar",Send_file:"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},ro:{translation:{Logging_in:"Autentificare...",your_connection_is_unencrypted:"Conexiunea nu este criptată.",your_connection_is_encrypted:"Conexiunea este criptată.",your_buddy_closed_the_private_connection:"Interlocutorul a închis conexiunea privată.",start_private:"Pornește în privat",close_private:"Închide privat",your_buddy_is_verificated:"Interlocutorul este verificat.",you_have_only_a_subscription_in_one_way:"Subscrierea este într-o singură direcție.",authentication_query_sent:"Cererea de autentificare a fost trimisă.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajul nu a fost trimis. Te rog închide conversația în privat.",unencrypted_message_received:"A fost primit un mesaj necriptat",not_available:"Indisponibil",no_connection:"Fără conexiune!",relogin:"Re-autentificare",trying_to_start_private_conversation:"Se încearcă deschiderea conversației în privat!",Verified:"Verificat",Unverified:"Neverificat",private_conversation_aborted:"Conversație în privat eșuată!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.",conversation_is_now_verified:"Conversația este acum verificată.",authentication_failed:"Autentificarea a eşuat.",Creating_your_private_key_:"Se crează cheia privată; ar putea să dureze ceva timp.",Authenticating_a_buddy_helps_:"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.",How_do_you_want_to_authenticate_your_buddy:"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)",Select_method:"Alege metoda...",Manual:"Manual",Question:"Întrebare",Secret:"Secret",To_verify_the_fingerprint_:"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.",Your_fingerprint:"Amprenta ta",Buddy_fingerprint:"Amprenta interlocutorului",Close:"Închide",Compared:"Prin comparație",To_authenticate_using_a_question_:"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",Ask:"Întreabă",To_authenticate_pick_a_secret_:"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.",Compare:"Compară",Fingerprints:"Amprente",Authentication:"Autentificare",Message:"Mesaj",Add_buddy:"Adaugă contact",rename_buddy:"redenumește contact",delete_buddy:"șterge contact",Login:"Logare",Username:"Utilizator",Password:"Parolă",Cancel:"Renunță",Connect:"Conectare",Type_in_the_full_username_:"Scrie numele complet al utilizatorului și un alias opțional.",Alias:"Alias",Add:"Adaugă",Subscription_request:"Cerere de subscriere",You_have_a_request_from:"Ai o cerere de la",Deny:"Refuză",Approve:"Aprobă",Remove_buddy:"Șterge contact",You_are_about_to_remove_:"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",Continue_without_chat:"Continuă fără chat",Please_wait:"Te rog așteaptă",Login_failed:"Logarea pe chat a eșuat",Sorry_we_cant_authentikate_:"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?",Retry:"Înapoi",clear_history:"Curăță istoria",New_message_from:"Un nou mesaj de la __name__",Should_we_notify_you_:"Vrei să fi notificat despre mesajele noi în viitor ?",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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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_:"Создается приватный ключ. Это может занять некоторое время",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_:"Введите полное имя пользователя и дополнительный псевдоним",Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.",Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:"Неудачная попытка входа",Retry:"Назад",clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:'Нажмите кнопку "Разрешить" вверху страницы, пожалуйста',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:"Ни один из наших последних ключей",Received_an_unreadable_encrypted_message:"Получено нечитаемое зашифрованное сообщение",Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:"Запрос на добавление в контакты",Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:"Имя",NICKNAME:"Ник",URL:"URL",ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:"Город",REGION:"Область",PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:" Фото ",send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:" ",Login_options:"Параметры входа",BOSH_url:"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:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:"Вы хотите принять вызов от",Reject:"Отклонить",Accept:"Принять",hang_up:"Завершить",snapshot:"Снимок",mute_my_audio:"Без звука",pause_my_video:"Остановить моё видео",fullscreen:"На весь экран",Info:"Инфо",Local_IP:"Мой IP",Remote_IP:"Удаленный IP",Local_Fingerprint:"Мой отпечаток",Remote_Fingerprint:"Удаленный отпечаток",Video_call_not_possible:"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.",Start_video_call:"Видео-вызов",Join_chat:"Присоединиться к комнате",Join:"Присоедениться",Room:"Комната",Nickname:"Ник",left_the_building:"__nickname__ выходит из комнаты",entered_the_room:"__nickname__ заходит в комнату",is_now_known_as:"__oldNickname__ теперь известен как __newNickname__",This_room_is:"Эта комната",muc_hidden:{keyword:"скрыта",description:"не может быть найдена через поиск"},muc_membersonly:{keyword:"только для участников",description:"Вы должны быть в списке участников"},muc_moderated:{keyword:"модерируется",description:"Только пользователи с правом голоса могут отправлять сообщения"},muc_nonanonymous:{keyword:"неанонимная",description:"Ваш JID будет показан всем посетителям"},muc_open:{keyword:"открытая",description:"Любой пользователь может присоедениться"},muc_passwordprotected:{keyword:"защищена паролем",description:"Необходимо ввести правильный пароль"},muc_persistent:{keyword:"постоянная",description:"Не будет уничтожена, когда ее покинут все участники"},muc_public:{keyword:"публичная",description:"Может быть найдена через поиск"},muc_semianonymous:{keyword:"полу-анонимная",description:"Ваш JID могут увидеть только администраторы"},muc_temporary:{keyword:"временная",description:"Будет уничтожена как только не останется ни одного участника"},muc_unmoderated:{keyword:"не модерируется",description:"Любой посетитель может отправлять сообщения"},muc_unsecured:{keyword:"без пароля",description:"Не нужно вводить пароль для входа"},Continue:"Далее",Server:"Сервер",Rooms_are_loaded:"Комнаты загружены",Could_load_only:"Подгрузка только __count__ комнат в автодополнении",muc_explanation:"Введите название комнаты, свой ник и пароль для входа в комнату",You_already_joined_this_room:"Вы уже в этой комнате",This_room_will_be_closed:"Эта комната была закрыта",Room_not_found_:"Новая комната будет создана",Loading_room_information:"Загрузка информации о комнате",Destroy:"Уничтожить",Leave:"Покинуть",changed_subject_to:'__nickname__ изменил тему комнаты на "__subject__"',muc_removed_kicked:"Вас выкинули из комнаты",muc_removed_info_kicked:"__nickname__ был удален из комнаты",muc_removed_banned:"Вас забанили в комнате",muc_removed_info_banned:"__nickname__ был забанен в комнате",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь",muc_removed_info_membersonly:"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является",muc_removed_shutdown:"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен",Reason:"Причина",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_:"__status__",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:"Не подтверждено Зашифрованный чат начат.",Bookmark:"Закладка","Auto-join":"Автоматически входить",Edit_bookmark:"Редактировать закладку",Room_logging_is_disabled:"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:"Вы хотите изменить стандартную конфигурацию комнаты?",Default:"Станд.",Change:"Изменить",Send_file:"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"sv-SE":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"tr-TR":{translation:{Logging_in:"Giriş yapılıyor…",your_connection_is_unencrypted:"Bağlantınız şifrelenmemiş.",your_connection_is_encrypted:"Bağlantınız şifrelenmiş.",your_buddy_closed_the_private_connection:"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.",start_private:"Özel bağlantı başlat.",close_private:"Özel bağlantıyı kapat.",your_buddy_is_verificated:"Kişi doğrulandı.",you_have_only_a_subscription_in_one_way:"Sadece tek yönlü bir aboneliğiniz var.",authentication_query_sent:"Kimlik doğrulama sorgusu gönderildi.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.",unencrypted_message_received:"Şifrelenmemiş mesaj alındı",not_available:"Müsait değil",no_connection:"Bağlantı yok!",relogin:"Yeniden gir",trying_to_start_private_conversation:"Özel sohbet başlatılmaya çalışılıyor!",Verified:"Doğrulandı",Unverified:"Doğrulanamadı",private_conversation_aborted:"Özel sohbet iptal edildi!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.",conversation_is_now_verified:"Sohbet doğrulandı.",authentication_failed:"Kimlik doğrulama başarısız.",Creating_your_private_key_:"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.",Authenticating_a_buddy_helps_:"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.",How_do_you_want_to_authenticate_your_buddy:"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Yöntemi seçin...",Manual:"Elle",Question:"Soru",Secret:"Gizli anahtar",To_verify_the_fingerprint_:"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.",Your_fingerprint:"Parmakiziniz",Buddy_fingerprint:"Kişinin parmakizi",Close:"Kapat",Compared:"Kıyaslandı",To_authenticate_using_a_question_:"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.",Ask:"Sor",To_authenticate_pick_a_secret_:"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.",Compare:"Karşılaştır",Fingerprints:"Parmakizleri",Authentication:"Kimlik doğrulama",Message:"İleti",Add_buddy:"Kişi ekle",rename_buddy:"Kişiyi yeniden adlandır",delete_buddy:"Kişiyi sil",Login:"Giriş",Username:"Kullanıcı adı",Password:"Şifre",Cancel:"iptal",Connect:"Bağlan",Type_in_the_full_username_:"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.",Alias:"Takma ad",Add:"Ekle",Subscription_request:"Abonelik isteği",You_have_a_request_from:"Size gelen bir istek var",Deny:"Reddet",Approve:"Onayla",Remove_buddy:"Kişiyi çıkar",You_are_about_to_remove_:"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.",Continue_without_chat:"Sohbet etmeden devam et",Please_wait:"Lütfen bekleyin",Login_failed:"Sohbet girişi başarısız oldu",Sorry_we_cant_authentikate_:"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.",Retry:"Geri",clear_history:"Geçmişi sil",New_message_from:"__name__ adlı kişiden yeni bir mesaj aldınız",Should_we_notify_you_:"İleride aldığınız yeni mesajları size bildirelim mi?",Please_accept_:'Lütfen üstteki "İzin ver" düğmesini tıklayın.',Hide_offline:"Çevrimdışı kişileri gizle",Show_offline:"Çevrimdışı kişileri göster",About:"hakkında",dnd:"Rahatsız etmeyin",Mute:"Sessiz",Unmute:"Sesli",Subscription:"Üyelik",both:"her ikisi de",Status:"Durum",online:"çevrimiçi",chat:"sohbet",away:"uzakta",xa:"çok uzakta",offline:"çevrimdışı",none:"hiç biri",Unknown_instance_tag:"Bilinmeyen örnek etiketi.",Not_one_of_our_latest_keys:"En son anahtarlarımızdan biri değil.",Received_an_unreadable_encrypted_message:"Okunamayan şifrelenmiş bir mesaj alındı.",Online:"Çevrimiçi",Chatty:"Konuşkan",Away:"Uzakta",Extended_away:"Çok uzakta",Offline:"Çevrimdışı",Friendship_request:"İrtibat isteği",Confirm:"Onayla",Dismiss:"Reddet",Remove:"Çıkar",Online_help:"Çevrimiçi yardım",FN:"Tam adı",N:" ",FAMILY:"Soyadı",GIVEN:"Adı",NICKNAME:"Takma ad",URL:"URL",ADR:"Adres",STREET:"Sokak",EXTADD:"Genişletilmiş Adres",LOCALITY:"Yer",REGION:"Bölge",PCODE:"Posta Kodu",CTRY:"Ülke",TEL:"Telefon",NUMBER:"Numara",EMAIL:"Eposta",USERID:" ",ORG:"Organizasyon",ORGNAME:"İsim",ORGUNIT:"Birim",TITLE:"İş tenımı",ROLE:"Görevi",BDAY:"Doğum günü",DESC:"Tanım",PHOTO:" ",send_message:"İletiyi gönder",get_info:"Bilgileri göster",Settings:"Ayarlar",Priority:"Öncelik",Save:"Kaydet",User_settings:"Kullanıcı tercihleri",A_fingerprint_:"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.",is:"Eşit",Login_options:"Giriş seçenekleri",BOSH_url:"BOSH URL",Domain:"Alan adı",Resource:"Kaynak",On_login:"Girişte",Received_an_unencrypted_message:"Şifrelenmemiş bir mesaj alındı",Sorry_your_buddy_doesnt_provide_any_information:"Maalesef kişi her hangi bir bilgi sunmamış.",Info_about:"Bilinen özellikleri",Authentication_aborted:"Kimlik doğrulama iptal edildi.",Authentication_request_received:"Kimlik doğrulama isteği alındı.",Log_in_without_chat:"Sohbetsiz giriş yap",has_come_online:"Çevrimiçi oldu",Unknown_sender:"Bilinmeyen gönderen",Please_allow_access_to_microphone_and_camera:'Mikrofona ve kameraya erişime izin vermek için lütfen üstteki "İzin Ver" düğmesini tıklayın.',Incoming_call:"Gelen çağrı",from:"gönderen",Do_you_want_to_accept_the_call_from:"Gelen aramayı kabul etmek istiyor musunuz",Reject:"Reddet",Accept:"Kabul et",hang_up:"aramayı sonlandır",snapshot:"anlık fotoğraf",mute_my_audio:"Sesi kapat",pause_my_video:"videoyu duraklat",fullscreen:"tam ekran",Info:"bilgi",Local_IP:"Yerel IP",Remote_IP:"Uzak IP",Local_Fingerprint:"Yerel parmakizi",Remote_Fingerprint:"Uzak parmakizi",Video_call_not_possible:"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.",Start_video_call:"Video görüşmesini başlat",Join_chat:"Sohbete katıl",Join:"Katıl",Room:"Oda",Nickname:"Takma ad",left_the_building:"__nickname__ binadan ayrıldı",entered_the_room:"__nickname__ odaya girdi",is_now_known_as:"__oldNickname__ şimdi __newNickname__ olarak biliniyor",This_room_is:"Bu oda",muc_hidden:{keyword:"gizli",description:"Arama yoluyla bulunamıyor"},muc_membersonly:{keyword:"sadece-üye-olanlar",description:"üye listenizde olmanız gerekiyor"},muc_moderated:{keyword:"yöneticili",description:'Yalnızca "sesli" kişilerin mesaj göndermesine izin verilir'},muc_nonanonymous:{keyword:"Anonim-değil",description:"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},muc_open:{keyword:"açık",description:"herkes katılabilir"},muc_passwordprotected:{keyword:"şifre-korumalı",description:"Doğru şifreyi girmeniz gerekiyor"},muc_persistent:{keyword:"kalıcı",description:"Son oturan ayrıldığında kapanmaz"},muc_public:{keyword:"herkese açık",description:"Arama yoluyla bulunabilir"},muc_semianonymous:{keyword:"yarı-anonim",description:"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},muc_temporary:{keyword:"geçici",description:"Son oturan ayrıldığında kapanır"},muc_unmoderated:{keyword:"yöneticisiz",description:"herkes ileti gönderebilir"},muc_unsecured:{keyword:"güvensiz",description:"şifre girmenize gerek yok"},Continue:"Devam",Server:"Sunucu",Rooms_are_loaded:"Oda yüklendi",Could_load_only:"Sadece __count__ oda otomatik tamamlamayla yüklenebilir",muc_explanation:"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin",You_already_joined_this_room:"Zaten bu odaya katılmış durumdasınız",This_room_will_be_closed:"Bu oda kapanacak",Room_not_found_:"Yeni oda oluşturulacak",Loading_room_information:"Oda bilgileri yükleniyor",Destroy:"Sil",Leave:"Ayrıl",changed_subject_to:'__nickname__ bu odanın konusunu "__subject__" olarak değiştirdi',muc_removed_kicked:"Bu odadan atıldınız",muc_removed_info_kicked:"__nickname__ bu odadan atıldı",muc_removed_banned:"Odadan yasaklandınız",muc_removed_info_banned:"__nickname__ odadan yasaklandınız",muc_removed_affiliation:"Üyelik değişikliği nedeniyle odadan çıkarıldınız",muc_removed_info_affiliation:"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı",muc_removed_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız",muc_removed_info_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı",muc_removed_shutdown:"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı",Reason:"Sebep",message_not_send:"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil",message_not_send_forbidden:"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz",This_room_has_been_closed:"Bu oda kapatıldı",Room_logging_is_enabled:"Oda günlüğü etkinleştirildi",A_password_is_required:"Şifre gerekli",You_are_not_on_the_member_list:"Üye listesinde değilsiniz",You_are_banned_from_this_room:"Bu odadan yasaklandınız",Your_desired_nickname_:"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad",The_maximum_number_:"Bu odada maksimum kullanıcı sayısına ulaşıldı",This_room_is_locked_:"Bu oda kilitli",You_are_not_allowed_to_create_:"Oda açma izniniz yok",Alert:"Uyarı",Call_started:"Arama başlatıldı",Call_terminated:"Arama bitirildi",Carbon_copy:"Karbon kopya",Enable:"Etkinleştir",jingle_reason_busy:"meşgul",jingle_reason_decline:"kabul etme",jingle_reason_success:"kapatıldı",Media_failure:"Medya istek hatası",No_local_audio_device:"Yerel ses cihazı bulunamadı.",No_local_video_device:"Yerel video cihazı bulunamadı.",Ok:"Tamam",PermissionDeniedError:"Siz veya tarayıcınız sesli/görüntülü izni reddetti",Use_local_audio_device:"Yerel video cihazını kullan.",Use_local_video_device:"Yerel video cihazını kullanın.",is_:"__status__",You_received_a_message_from_an_unknown_sender_:"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?",Your_roster_is_empty_add_:"Listeniz boş, yeni bir <a>kişi ekleyin</a>",onsmp_explanation_question:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.",onsmp_explanation_secret:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.",from_sender:"__sender__'den",Verified_private_conversation_started:"Doğrulanmış Özel görüşme başladı.",Unverified_private_conversation_started:"Doğrulanmamış Özel görüşme başladı.",Bookmark:"Yer imi","Auto-join":"Otomatik katıl",Edit_bookmark:"yer imini düzenle",Room_logging_is_disabled:"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim",Do_you_want_to_change_the_default_room_configuration:"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?",Default:"Öntanımlı",Change:"Değiştir",Send_file:"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"vi-VN":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"zh-TW":{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:"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?",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_:"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。",Continue_without_chat:"繼續不聊天",Please_wait:"請等一下",Login_failed:"登入聊天失敗",Sorry_we_cant_authentikate_:"跟聊天伺服器驗證失敗,會不會是密碼打錯了?",Retry:"上一步",clear_history:"清除歷史紀錄",New_message_from:"有新訊息:__name__",Should_we_notify_you_:"以後若有新訊息要通知你嗎?",Please_accept_:"請點上方的「允許」按鈕。",Hide_offline:"隱藏離線聯絡人",Show_offline:"顯示離線聯絡人",About:"關於我",dnd:"別打擾",Mute:"開靜音",Unmute:"關靜音",Subscription:"訂閱狀態",both:"雙向",Status:"狀態",online:"上線",chat:"聊天",away:"離開",xa:"離開很久",offline:"離線",none:"沒有",Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:"收到了一則加密但無法辨認的訊息。",Online:"上線",Chatty:"想聊天",Away:"離開",Extended_away:"離開很久",Offline:"離線",Friendship_request:"聯絡請求",Confirm:"確定",Dismiss:"取消",Remove:"刪掉",Online_help:"線上說明",FN:"全名",N:" ",FAMILY:"姓氏",GIVEN:"名字",NICKNAME:"綽號",URL:"網址",ADR:"位址",STREET:"地址",EXTADD:"更多位址",LOCALITY:"所在地",REGION:"區域",PCODE:"郵遞區號",CTRY:"國家",TEL:"電話",NUMBER:"編號",EMAIL:"電子郵件",USERID:" ",ORG:"團體",ORGNAME:"名稱",ORGUNIT:"單位",TITLE:"職稱",ROLE:"職位",BDAY:"生日",DESC:"簡介",PHOTO:" ",send_message:"發送訊息",get_info:"顯示帳號資訊",Settings:"設定",Priority:"優先度",Save:"儲存",User_settings:"使用者設定",A_fingerprint_:"電子指紋是用來確認跟你說話的是真的那個人。",is:"狀態:",Login_options:"登入選項",BOSH_url:"BOSH 網址",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:"來電",from:"只出",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:"__nickname__離開了大樓",entered_the_room:"__nickname__進入了聊天室",is_now_known_as:"__oldNickname__改名叫做__newNickname__",This_room_is:"聊天室屬性:",muc_hidden:{keyword:"隱藏",description:"搜尋也找不到"},muc_membersonly:{keyword:"限會員",description:"會員才會加入"},muc_moderated:{keyword:"有管制",description:"沒被消音的人才能送訊息"},muc_nonanonymous:{keyword:"禁匿名",description:"每個參與人都能看到你的 jabber 代碼"},muc_open:{keyword:"開放",description:"任何人都能參加"},muc_passwordprotected:{keyword:"密碼鎖",description:"要輸入正確的密碼才能加入"},muc_persistent:{keyword:"永久性",description:"最後一個參與人都離開了也不會結束"},muc_public:{keyword:"公開",description:"搜尋得到"},muc_semianonymous:{keyword:"半匿名",description:"只有聊天室管理員才看得到你的 jabber 代碼"},muc_temporary:{keyword:"暫時性",description:"最後一個參與人離開了就會結束"},muc_unmoderated:{keyword:"沒管制",description:"每個人都可以送訊息"},muc_unsecured:{keyword:"沒保護",description:"不需要密碼就能加入"},Continue:"繼續",Server:"伺服器",Rooms_are_loaded:"聊天室載入完成",Could_load_only:"只能載入__count__間聊天室供輸入自動完成使用",muc_explanation:"請輸入要參加的聊天室名稱,綽號和密碼非必要",You_already_joined_this_room:"你已經參加這間聊天室了",This_room_will_be_closed:"聊天室即將關閉",Room_not_found_:"新聊天室即將開啟",Loading_room_information:"正在載入聊天室資訊",Destroy:"關閉",Leave:"離開",changed_subject_to:'__nickname__把聊天室的標題改成了"__subject__"',muc_removed_kicked:"你被踢出聊天室了",muc_removed_info_kicked:"__nickname__被踢出聊天室了",muc_removed_banned:"你被禁止進入聊天室了",muc_removed_info_banned:"__nickname__被禁止進入聊天室了",muc_removed_affiliation:"你因為身份改變而離開聊天室了",muc_removed_info_affiliation:"__nickname__因為身份改變而離開聊天室了",muc_removed_membersonly:"你離開聊天室了,因為聊天室改為只限會員,但你不是會員",muc_removed_info_membersonly:"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員",muc_removed_shutdown:"你離開聊天室了,因為多人聊天服務正在關閉中。",Reason:"原因",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_:"狀態: __status__",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:"加密但未校驗的對話開始了。",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:"修改",Send_file:"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。",_is_composing:"正在打字中...",_are_composing:"正在打字中...",Chat_state_notifications:"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?",Share_screen:"分享螢幕",Incoming_stream:"有串流來",Stream_started:"串流開始了",HTTPS_REQUIRED:"這個動作需要連線有加密。",EXTENSION_UNAVAILABLE:"瀏覽器必須要安裝擴充套件或是附加元件。",UNKNOWN_ERROR:"發生了不明錯誤。",Install_extension:"要使用螢幕分享功能請安裝這個擴充套件: ",Connection_accepted:"連線接受了",Stream_terminated:"串流結束了",Close_all:null}},zh:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}}};/**
+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(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_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">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},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},_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";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);e.click(function(){b.prev()}),f.click(function(){b.next()}),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.arrowRight=b.arrowLeft=null}))},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)}))}}}}),A()}),/**
* @license MIT
* @fileOverview Favico animations
* @author Miroslav Magda, http://blog.ejci.net
* @version 0.3.10
*/
-!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(function(){drawVideo(video)},animation.duration),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)}}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.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",_orig.getAttribute("href"))):(_img.onload=function(){_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",""))},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=w/_w<h/_h?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.onload=function(){_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)},newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio}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(ns){ns.emojioneList={":kiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!0},":couplekiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!1},":kiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!0},":couplekiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!1},":family_mmbb:":{unicode:["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],fname:"1f468-1f468-1f466-1f466",uc:"1f468-200d-1f468-200d-1f466-200d-1f466",isCanonical:!0},":family_mmgb:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],fname:"1f468-1f468-1f467-1f466",uc:"1f468-200d-1f468-200d-1f467-200d-1f466",isCanonical:!0},":family_mmgg:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],fname:"1f468-1f468-1f467-1f467",uc:"1f468-200d-1f468-200d-1f467-200d-1f467",isCanonical:!0},":family_mwbb:":{unicode:["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],fname:"1f468-1f469-1f466-1f466",uc:"1f468-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_mwgb:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],fname:"1f468-1f469-1f467-1f466",uc:"1f468-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_mwgg:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],fname:"1f468-1f469-1f467-1f467",uc:"1f468-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":family_wwbb:":{unicode:["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],fname:"1f469-1f469-1f466-1f466",uc:"1f469-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_wwgb:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],fname:"1f469-1f469-1f467-1f466",uc:"1f469-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_wwgg:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],fname:"1f469-1f469-1f467-1f467",uc:"1f469-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":couple_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!0},":couple_with_heart_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!1},":couple_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!0},":couple_with_heart_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!1},":family_mmb:":{unicode:["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],fname:"1f468-1f468-1f466",uc:"1f468-200d-1f468-200d-1f466",isCanonical:!0},":family_mmg:":{unicode:["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],fname:"1f468-1f468-1f467",uc:"1f468-200d-1f468-200d-1f467",isCanonical:!0},":family_mwg:":{unicode:["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],fname:"1f468-1f469-1f467",uc:"1f468-200d-1f469-200d-1f467",isCanonical:!0},":family_wwb:":{unicode:["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],fname:"1f469-1f469-1f466",uc:"1f469-200d-1f469-200d-1f466",isCanonical:!0},":family_wwg:":{unicode:["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],fname:"1f469-1f469-1f467",uc:"1f469-200d-1f469-200d-1f467",isCanonical:!0},":rainbow_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!0},":gay_pride_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!1},":eye_in_speech_bubble:":{unicode:["1f441-200d-1f5e8","1f441-1f5e8"],fname:"1f441-1f5e8",uc:"1f441-200d-1f5e8",isCanonical:!0},":hash:":{unicode:["0023-fe0f-20e3","0023-20e3"],fname:"0023-20e3",uc:"0023-20e3",isCanonical:!0},":zero:":{unicode:["0030-fe0f-20e3","0030-20e3"],fname:"0030-20e3",uc:"0030-20e3",isCanonical:!0},":one:":{unicode:["0031-fe0f-20e3","0031-20e3"],fname:"0031-20e3",uc:"0031-20e3",isCanonical:!0},":two:":{unicode:["0032-fe0f-20e3","0032-20e3"],fname:"0032-20e3",uc:"0032-20e3",isCanonical:!0},":three:":{unicode:["0033-fe0f-20e3","0033-20e3"],fname:"0033-20e3",uc:"0033-20e3",isCanonical:!0},":four:":{unicode:["0034-fe0f-20e3","0034-20e3"],fname:"0034-20e3",uc:"0034-20e3",isCanonical:!0},":five:":{unicode:["0035-fe0f-20e3","0035-20e3"],fname:"0035-20e3",uc:"0035-20e3",isCanonical:!0},":six:":{unicode:["0036-fe0f-20e3","0036-20e3"],fname:"0036-20e3",uc:"0036-20e3",isCanonical:!0},":seven:":{unicode:["0037-fe0f-20e3","0037-20e3"],fname:"0037-20e3",uc:"0037-20e3",isCanonical:!0},":eight:":{unicode:["0038-fe0f-20e3","0038-20e3"],fname:"0038-20e3",uc:"0038-20e3",isCanonical:!0},":nine:":{unicode:["0039-fe0f-20e3","0039-20e3"],fname:"0039-20e3",uc:"0039-20e3",isCanonical:!0},":asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!0},":keycap_asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!1},":handball_tone5:":{unicode:["1f93e-1f3ff"],fname:"1f93e-1f3ff",uc:"1f93e-1f3ff",isCanonical:!0},":handball_tone4:":{unicode:["1f93e-1f3fe"],fname:"1f93e-1f3fe",uc:"1f93e-1f3fe",isCanonical:!0},":handball_tone3:":{unicode:["1f93e-1f3fd"],fname:"1f93e-1f3fd",uc:"1f93e-1f3fd",isCanonical:!0},":handball_tone2:":{unicode:["1f93e-1f3fc"],fname:"1f93e-1f3fc",uc:"1f93e-1f3fc",isCanonical:!0},":handball_tone1:":{unicode:["1f93e-1f3fb"],fname:"1f93e-1f3fb",uc:"1f93e-1f3fb",isCanonical:!0},":water_polo_tone5:":{unicode:["1f93d-1f3ff"],fname:"1f93d-1f3ff",uc:"1f93d-1f3ff",isCanonical:!0},":water_polo_tone4:":{unicode:["1f93d-1f3fe"],fname:"1f93d-1f3fe",uc:"1f93d-1f3fe",isCanonical:!0},":water_polo_tone3:":{unicode:["1f93d-1f3fd"],fname:"1f93d-1f3fd",uc:"1f93d-1f3fd",isCanonical:!0},":water_polo_tone2:":{unicode:["1f93d-1f3fc"],fname:"1f93d-1f3fc",uc:"1f93d-1f3fc",isCanonical:!0},":water_polo_tone1:":{unicode:["1f93d-1f3fb"],fname:"1f93d-1f3fb",uc:"1f93d-1f3fb",isCanonical:!0},":wrestlers_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!0},":wrestling_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!1},":wrestlers_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!0},":wrestling_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!1},":wrestlers_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!0},":wrestling_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!1},":wrestlers_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!0},":wrestling_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!1},":wrestlers_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!0},":wrestling_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!1},":juggling_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!0},":juggler_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!1},":juggling_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!0},":juggler_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!1},":juggling_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!0},":juggler_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!1},":juggling_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!0},":juggler_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!1},":juggling_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!0},":juggler_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!1},":cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!0},":person_doing_cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!1},":cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!0},":person_doing_cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!1},":cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!0},":person_doing_cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!1},":cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!0},":person_doing_cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!1},":cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!0},":person_doing_cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!1},":shrug_tone5:":{unicode:["1f937-1f3ff"],fname:"1f937-1f3ff",uc:"1f937-1f3ff",isCanonical:!0},":shrug_tone4:":{unicode:["1f937-1f3fe"],fname:"1f937-1f3fe",uc:"1f937-1f3fe",isCanonical:!0},":shrug_tone3:":{unicode:["1f937-1f3fd"],fname:"1f937-1f3fd",uc:"1f937-1f3fd",isCanonical:!0},":shrug_tone2:":{unicode:["1f937-1f3fc"],fname:"1f937-1f3fc",uc:"1f937-1f3fc",isCanonical:!0},":shrug_tone1:":{unicode:["1f937-1f3fb"],fname:"1f937-1f3fb",uc:"1f937-1f3fb",isCanonical:!0},":mrs_claus_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!0},":mother_christmas_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!1},":mrs_claus_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!0},":mother_christmas_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!1},":mrs_claus_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!0},":mother_christmas_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!1},":mrs_claus_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!0},":mother_christmas_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!1},":mrs_claus_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!0},":mother_christmas_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!1},":man_in_tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!0},":tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!1},":man_in_tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!0},":tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!1},":man_in_tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!0},":tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!1},":man_in_tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!0},":tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!1},":man_in_tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!0},":tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!1},":prince_tone5:":{unicode:["1f934-1f3ff"],fname:"1f934-1f3ff",uc:"1f934-1f3ff",isCanonical:!0},":prince_tone4:":{unicode:["1f934-1f3fe"],fname:"1f934-1f3fe",uc:"1f934-1f3fe",isCanonical:!0},":prince_tone3:":{unicode:["1f934-1f3fd"],fname:"1f934-1f3fd",uc:"1f934-1f3fd",isCanonical:!0},":prince_tone2:":{unicode:["1f934-1f3fc"],fname:"1f934-1f3fc",uc:"1f934-1f3fc",isCanonical:!0},":prince_tone1:":{unicode:["1f934-1f3fb"],fname:"1f934-1f3fb",uc:"1f934-1f3fb",isCanonical:!0},":selfie_tone5:":{unicode:["1f933-1f3ff"],fname:"1f933-1f3ff",uc:"1f933-1f3ff",isCanonical:!0},":selfie_tone4:":{unicode:["1f933-1f3fe"],fname:"1f933-1f3fe",uc:"1f933-1f3fe",isCanonical:!0},":selfie_tone3:":{unicode:["1f933-1f3fd"],fname:"1f933-1f3fd",uc:"1f933-1f3fd",isCanonical:!0},":selfie_tone2:":{unicode:["1f933-1f3fc"],fname:"1f933-1f3fc",uc:"1f933-1f3fc",isCanonical:!0},":selfie_tone1:":{unicode:["1f933-1f3fb"],fname:"1f933-1f3fb",uc:"1f933-1f3fb",isCanonical:!0},":pregnant_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!0},":expecting_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!1},":pregnant_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!0},":expecting_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!1},":pregnant_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!0},":expecting_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!1},":pregnant_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!0},":expecting_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!1},":pregnant_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!0},":expecting_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!1},":face_palm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!0},":facepalm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!1},":face_palm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!0},":facepalm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!1},":face_palm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!0},":facepalm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!1},":face_palm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!0},":facepalm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!1},":face_palm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!0},":facepalm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!1},":fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!1},":fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!1},":fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!1},":fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!1},":fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!1},":handshake_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!0},":shaking_hands_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!1},":handshake_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!0},":shaking_hands_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!1},":handshake_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!0},":shaking_hands_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!1},":handshake_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!0},":shaking_hands_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!1},":handshake_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!0},":shaking_hands_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!1},":right_facing_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!0},":right_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!1},":right_facing_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!0},":right_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!1},":right_facing_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!0},":right_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!1},":right_facing_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!0},":right_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!1},":right_facing_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!0},":right_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!1},":left_facing_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!0},":left_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!1},":left_facing_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!0},":left_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!1},":left_facing_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!0},":left_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!1},":left_facing_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!0},":left_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!1},":left_facing_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!0},":left_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!1},":raised_back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!0},":back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!1},":raised_back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!0},":back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!1},":raised_back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!0},":back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!1},":raised_back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!0},":back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!1},":raised_back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!0},":back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!1},":call_me_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!0},":call_me_hand_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!1},":call_me_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",
+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(function(){drawVideo(video)},animation.duration),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)}}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.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",_orig.getAttribute("href"))):(_img.onload=function(){_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",""))},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=w/_w<h/_h?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.onload=function(){_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)},newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio}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(ns){ns.emojioneList={":kiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!0},":couplekiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!1},":kiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!0},":couplekiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!1},":family_mmbb:":{unicode:["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],fname:"1f468-1f468-1f466-1f466",uc:"1f468-200d-1f468-200d-1f466-200d-1f466",isCanonical:!0},":family_mmgb:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],fname:"1f468-1f468-1f467-1f466",uc:"1f468-200d-1f468-200d-1f467-200d-1f466",isCanonical:!0},":family_mmgg:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],fname:"1f468-1f468-1f467-1f467",uc:"1f468-200d-1f468-200d-1f467-200d-1f467",isCanonical:!0},":family_mwbb:":{unicode:["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],fname:"1f468-1f469-1f466-1f466",uc:"1f468-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_mwgb:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],fname:"1f468-1f469-1f467-1f466",uc:"1f468-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_mwgg:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],fname:"1f468-1f469-1f467-1f467",uc:"1f468-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":family_wwbb:":{unicode:["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],fname:"1f469-1f469-1f466-1f466",uc:"1f469-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_wwgb:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],fname:"1f469-1f469-1f467-1f466",uc:"1f469-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_wwgg:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],fname:"1f469-1f469-1f467-1f467",uc:"1f469-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":couple_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!0},":couple_with_heart_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!1},":couple_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!0},":couple_with_heart_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!1},":family_mmb:":{unicode:["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],fname:"1f468-1f468-1f466",uc:"1f468-200d-1f468-200d-1f466",isCanonical:!0},":family_mmg:":{unicode:["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],fname:"1f468-1f468-1f467",uc:"1f468-200d-1f468-200d-1f467",isCanonical:!0},":family_mwg:":{unicode:["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],fname:"1f468-1f469-1f467",uc:"1f468-200d-1f469-200d-1f467",isCanonical:!0},":family_wwb:":{unicode:["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],fname:"1f469-1f469-1f466",uc:"1f469-200d-1f469-200d-1f466",isCanonical:!0},":family_wwg:":{unicode:["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],fname:"1f469-1f469-1f467",uc:"1f469-200d-1f469-200d-1f467",isCanonical:!0},":rainbow_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!0},":gay_pride_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!1},":eye_in_speech_bubble:":{unicode:["1f441-200d-1f5e8","1f441-1f5e8"],fname:"1f441-1f5e8",uc:"1f441-200d-1f5e8",isCanonical:!0},":hash:":{unicode:["0023-fe0f-20e3","0023-20e3"],fname:"0023-20e3",uc:"0023-20e3",isCanonical:!0},":zero:":{unicode:["0030-fe0f-20e3","0030-20e3"],fname:"0030-20e3",uc:"0030-20e3",isCanonical:!0},":one:":{unicode:["0031-fe0f-20e3","0031-20e3"],fname:"0031-20e3",uc:"0031-20e3",isCanonical:!0},":two:":{unicode:["0032-fe0f-20e3","0032-20e3"],fname:"0032-20e3",uc:"0032-20e3",isCanonical:!0},":three:":{unicode:["0033-fe0f-20e3","0033-20e3"],fname:"0033-20e3",uc:"0033-20e3",isCanonical:!0},":four:":{unicode:["0034-fe0f-20e3","0034-20e3"],fname:"0034-20e3",uc:"0034-20e3",isCanonical:!0},":five:":{unicode:["0035-fe0f-20e3","0035-20e3"],fname:"0035-20e3",uc:"0035-20e3",isCanonical:!0},":six:":{unicode:["0036-fe0f-20e3","0036-20e3"],fname:"0036-20e3",uc:"0036-20e3",isCanonical:!0},":seven:":{unicode:["0037-fe0f-20e3","0037-20e3"],fname:"0037-20e3",uc:"0037-20e3",isCanonical:!0},":eight:":{unicode:["0038-fe0f-20e3","0038-20e3"],fname:"0038-20e3",uc:"0038-20e3",isCanonical:!0},":nine:":{unicode:["0039-fe0f-20e3","0039-20e3"],fname:"0039-20e3",uc:"0039-20e3",isCanonical:!0},":asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!0},":keycap_asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!1},":handball_tone5:":{unicode:["1f93e-1f3ff"],fname:"1f93e-1f3ff",uc:"1f93e-1f3ff",isCanonical:!0},":handball_tone4:":{unicode:["1f93e-1f3fe"],fname:"1f93e-1f3fe",uc:"1f93e-1f3fe",isCanonical:!0},":handball_tone3:":{unicode:["1f93e-1f3fd"],fname:"1f93e-1f3fd",uc:"1f93e-1f3fd",isCanonical:!0},":handball_tone2:":{unicode:["1f93e-1f3fc"],fname:"1f93e-1f3fc",uc:"1f93e-1f3fc",isCanonical:!0},":handball_tone1:":{unicode:["1f93e-1f3fb"],fname:"1f93e-1f3fb",uc:"1f93e-1f3fb",isCanonical:!0},":water_polo_tone5:":{unicode:["1f93d-1f3ff"],fname:"1f93d-1f3ff",uc:"1f93d-1f3ff",isCanonical:!0},":water_polo_tone4:":{unicode:["1f93d-1f3fe"],fname:"1f93d-1f3fe",uc:"1f93d-1f3fe",isCanonical:!0},":water_polo_tone3:":{unicode:["1f93d-1f3fd"],fname:"1f93d-1f3fd",uc:"1f93d-1f3fd",isCanonical:!0},":water_polo_tone2:":{unicode:["1f93d-1f3fc"],fname:"1f93d-1f3fc",uc:"1f93d-1f3fc",isCanonical:!0},":water_polo_tone1:":{unicode:["1f93d-1f3fb"],fname:"1f93d-1f3fb",uc:"1f93d-1f3fb",isCanonical:!0},":wrestlers_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!0},":wrestling_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!1},":wrestlers_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!0},":wrestling_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!1},":wrestlers_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!0},":wrestling_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!1},":wrestlers_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!0},":wrestling_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!1},":wrestlers_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!0},":wrestling_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!1},":juggling_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!0},":juggler_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!1},":juggling_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!0},":juggler_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!1},":juggling_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!0},":juggler_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!1},":juggling_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!0},":juggler_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!1},":juggling_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!0},":juggler_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!1},":cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!0},":person_doing_cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!1},":cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!0},":person_doing_cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!1},":cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!0},":person_doing_cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!1},":cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!0},":person_doing_cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!1},":cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!0},":person_doing_cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!1},":shrug_tone5:":{unicode:["1f937-1f3ff"],fname:"1f937-1f3ff",uc:"1f937-1f3ff",isCanonical:!0},":shrug_tone4:":{unicode:["1f937-1f3fe"],fname:"1f937-1f3fe",uc:"1f937-1f3fe",isCanonical:!0},":shrug_tone3:":{unicode:["1f937-1f3fd"],fname:"1f937-1f3fd",uc:"1f937-1f3fd",isCanonical:!0},":shrug_tone2:":{unicode:["1f937-1f3fc"],fname:"1f937-1f3fc",uc:"1f937-1f3fc",isCanonical:!0},":shrug_tone1:":{unicode:["1f937-1f3fb"],fname:"1f937-1f3fb",uc:"1f937-1f3fb",isCanonical:!0},":mrs_claus_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!0},":mother_christmas_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!1},":mrs_claus_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!0},":mother_christmas_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!1},":mrs_claus_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!0},":mother_christmas_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!1},":mrs_claus_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!0},":mother_christmas_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!1},":mrs_claus_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!0},":mother_christmas_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!1},":man_in_tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!0},":tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!1},":man_in_tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!0},":tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!1},":man_in_tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!0},":tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!1},":man_in_tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!0},":tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!1},":man_in_tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!0},":tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!1},":prince_tone5:":{unicode:["1f934-1f3ff"],fname:"1f934-1f3ff",uc:"1f934-1f3ff",isCanonical:!0},":prince_tone4:":{unicode:["1f934-1f3fe"],fname:"1f934-1f3fe",uc:"1f934-1f3fe",isCanonical:!0},":prince_tone3:":{unicode:["1f934-1f3fd"],fname:"1f934-1f3fd",uc:"1f934-1f3fd",isCanonical:!0},":prince_tone2:":{unicode:["1f934-1f3fc"],fname:"1f934-1f3fc",uc:"1f934-1f3fc",isCanonical:!0},":prince_tone1:":{unicode:["1f934-1f3fb"],fname:"1f934-1f3fb",uc:"1f934-1f3fb",isCanonical:!0},":selfie_tone5:":{unicode:["1f933-1f3ff"],fname:"1f933-1f3ff",uc:"1f933-1f3ff",isCanonical:!0},":selfie_tone4:":{unicode:["1f933-1f3fe"],fname:"1f933-1f3fe",uc:"1f933-1f3fe",isCanonical:!0},":selfie_tone3:":{unicode:["1f933-1f3fd"],fname:"1f933-1f3fd",uc:"1f933-1f3fd",isCanonical:!0},":selfie_tone2:":{unicode:["1f933-1f3fc"],fname:"1f933-1f3fc",uc:"1f933-1f3fc",isCanonical:!0},":selfie_tone1:":{unicode:["1f933-1f3fb"],fname:"1f933-1f3fb",uc:"1f933-1f3fb",isCanonical:!0},":pregnant_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!0},":expecting_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!1},":pregnant_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!0},":expecting_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!1},":pregnant_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!0},":expecting_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!1},":pregnant_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!0},":expecting_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!1},":pregnant_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!0},":expecting_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!1},":face_palm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!0},":facepalm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!1},":face_palm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!0},":facepalm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!1},":face_palm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!0},":facepalm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!1},":face_palm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!0},":facepalm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!1},":face_palm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!0},":facepalm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!1},":fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!1},":fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!1},":fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!1},":fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!1},":fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!1},":handshake_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!0},":shaking_hands_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!1},":handshake_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!0},":shaking_hands_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!1},":handshake_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!0},":shaking_hands_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!1},":handshake_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!0},":shaking_hands_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!1},":handshake_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!0},":shaking_hands_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!1},":right_facing_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!0},":right_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!1},":right_facing_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!0},":right_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!1},":right_facing_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!0},":right_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!1},":right_facing_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!0},":right_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!1},":right_facing_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!0},":right_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!1},":left_facing_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!0},":left_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!1},":left_facing_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!0},":left_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!1},":left_facing_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!0},":left_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!1},":left_facing_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!0},":left_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!1},":left_facing_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!0},":left_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!1},":raised_back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!0},":back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!1},":raised_back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!0},":back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!1},":raised_back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!0},":back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!1},":raised_back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!0},":back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!1},":raised_back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!0},":back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!1},":call_me_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!0},":call_me_hand_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!1},":call_me_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",
uc:"1f919-1f3fe",isCanonical:!0},":call_me_hand_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!1},":call_me_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!0},":call_me_hand_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!1},":call_me_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!0},":call_me_hand_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!1},":call_me_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!0},":call_me_hand_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!1},":metal_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!0},":sign_of_the_horns_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!1},":metal_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!0},":sign_of_the_horns_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!1},":metal_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!0},":sign_of_the_horns_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!1},":metal_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!0},":sign_of_the_horns_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!1},":metal_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!0},":sign_of_the_horns_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!1},":bath_tone5:":{unicode:["1f6c0-1f3ff"],fname:"1f6c0-1f3ff",uc:"1f6c0-1f3ff",isCanonical:!0},":bath_tone4:":{unicode:["1f6c0-1f3fe"],fname:"1f6c0-1f3fe",uc:"1f6c0-1f3fe",isCanonical:!0},":bath_tone3:":{unicode:["1f6c0-1f3fd"],fname:"1f6c0-1f3fd",uc:"1f6c0-1f3fd",isCanonical:!0},":bath_tone2:":{unicode:["1f6c0-1f3fc"],fname:"1f6c0-1f3fc",uc:"1f6c0-1f3fc",isCanonical:!0},":bath_tone1:":{unicode:["1f6c0-1f3fb"],fname:"1f6c0-1f3fb",uc:"1f6c0-1f3fb",isCanonical:!0},":walking_tone5:":{unicode:["1f6b6-1f3ff"],fname:"1f6b6-1f3ff",uc:"1f6b6-1f3ff",isCanonical:!0},":walking_tone4:":{unicode:["1f6b6-1f3fe"],fname:"1f6b6-1f3fe",uc:"1f6b6-1f3fe",isCanonical:!0},":walking_tone3:":{unicode:["1f6b6-1f3fd"],fname:"1f6b6-1f3fd",uc:"1f6b6-1f3fd",isCanonical:!0},":walking_tone2:":{unicode:["1f6b6-1f3fc"],fname:"1f6b6-1f3fc",uc:"1f6b6-1f3fc",isCanonical:!0},":walking_tone1:":{unicode:["1f6b6-1f3fb"],fname:"1f6b6-1f3fb",uc:"1f6b6-1f3fb",isCanonical:!0},":mountain_bicyclist_tone5:":{unicode:["1f6b5-1f3ff"],fname:"1f6b5-1f3ff",uc:"1f6b5-1f3ff",isCanonical:!0},":mountain_bicyclist_tone4:":{unicode:["1f6b5-1f3fe"],fname:"1f6b5-1f3fe",uc:"1f6b5-1f3fe",isCanonical:!0},":mountain_bicyclist_tone3:":{unicode:["1f6b5-1f3fd"],fname:"1f6b5-1f3fd",uc:"1f6b5-1f3fd",isCanonical:!0},":mountain_bicyclist_tone2:":{unicode:["1f6b5-1f3fc"],fname:"1f6b5-1f3fc",uc:"1f6b5-1f3fc",isCanonical:!0},":mountain_bicyclist_tone1:":{unicode:["1f6b5-1f3fb"],fname:"1f6b5-1f3fb",uc:"1f6b5-1f3fb",isCanonical:!0},":bicyclist_tone5:":{unicode:["1f6b4-1f3ff"],fname:"1f6b4-1f3ff",uc:"1f6b4-1f3ff",isCanonical:!0},":bicyclist_tone4:":{unicode:["1f6b4-1f3fe"],fname:"1f6b4-1f3fe",uc:"1f6b4-1f3fe",isCanonical:!0},":bicyclist_tone3:":{unicode:["1f6b4-1f3fd"],fname:"1f6b4-1f3fd",uc:"1f6b4-1f3fd",isCanonical:!0},":bicyclist_tone2:":{unicode:["1f6b4-1f3fc"],fname:"1f6b4-1f3fc",uc:"1f6b4-1f3fc",isCanonical:!0},":bicyclist_tone1:":{unicode:["1f6b4-1f3fb"],fname:"1f6b4-1f3fb",uc:"1f6b4-1f3fb",isCanonical:!0},":rowboat_tone5:":{unicode:["1f6a3-1f3ff"],fname:"1f6a3-1f3ff",uc:"1f6a3-1f3ff",isCanonical:!0},":rowboat_tone4:":{unicode:["1f6a3-1f3fe"],fname:"1f6a3-1f3fe",uc:"1f6a3-1f3fe",isCanonical:!0},":rowboat_tone3:":{unicode:["1f6a3-1f3fd"],fname:"1f6a3-1f3fd",uc:"1f6a3-1f3fd",isCanonical:!0},":rowboat_tone2:":{unicode:["1f6a3-1f3fc"],fname:"1f6a3-1f3fc",uc:"1f6a3-1f3fc",isCanonical:!0},":rowboat_tone1:":{unicode:["1f6a3-1f3fb"],fname:"1f6a3-1f3fb",uc:"1f6a3-1f3fb",isCanonical:!0},":pray_tone5:":{unicode:["1f64f-1f3ff"],fname:"1f64f-1f3ff",uc:"1f64f-1f3ff",isCanonical:!0},":pray_tone4:":{unicode:["1f64f-1f3fe"],fname:"1f64f-1f3fe",uc:"1f64f-1f3fe",isCanonical:!0},":pray_tone3:":{unicode:["1f64f-1f3fd"],fname:"1f64f-1f3fd",uc:"1f64f-1f3fd",isCanonical:!0},":pray_tone2:":{unicode:["1f64f-1f3fc"],fname:"1f64f-1f3fc",uc:"1f64f-1f3fc",isCanonical:!0},":pray_tone1:":{unicode:["1f64f-1f3fb"],fname:"1f64f-1f3fb",uc:"1f64f-1f3fb",isCanonical:!0},":person_with_pouting_face_tone5:":{unicode:["1f64e-1f3ff"],fname:"1f64e-1f3ff",uc:"1f64e-1f3ff",isCanonical:!0},":person_with_pouting_face_tone4:":{unicode:["1f64e-1f3fe"],fname:"1f64e-1f3fe",uc:"1f64e-1f3fe",isCanonical:!0},":person_with_pouting_face_tone3:":{unicode:["1f64e-1f3fd"],fname:"1f64e-1f3fd",uc:"1f64e-1f3fd",isCanonical:!0},":person_with_pouting_face_tone2:":{unicode:["1f64e-1f3fc"],fname:"1f64e-1f3fc",uc:"1f64e-1f3fc",isCanonical:!0},":person_with_pouting_face_tone1:":{unicode:["1f64e-1f3fb"],fname:"1f64e-1f3fb",uc:"1f64e-1f3fb",isCanonical:!0},":person_frowning_tone5:":{unicode:["1f64d-1f3ff"],fname:"1f64d-1f3ff",uc:"1f64d-1f3ff",isCanonical:!0},":person_frowning_tone4:":{unicode:["1f64d-1f3fe"],fname:"1f64d-1f3fe",uc:"1f64d-1f3fe",isCanonical:!0},":person_frowning_tone3:":{unicode:["1f64d-1f3fd"],fname:"1f64d-1f3fd",uc:"1f64d-1f3fd",isCanonical:!0},":person_frowning_tone2:":{unicode:["1f64d-1f3fc"],fname:"1f64d-1f3fc",uc:"1f64d-1f3fc",isCanonical:!0},":person_frowning_tone1:":{unicode:["1f64d-1f3fb"],fname:"1f64d-1f3fb",uc:"1f64d-1f3fb",isCanonical:!0},":raised_hands_tone5:":{unicode:["1f64c-1f3ff"],fname:"1f64c-1f3ff",uc:"1f64c-1f3ff",isCanonical:!0},":raised_hands_tone4:":{unicode:["1f64c-1f3fe"],fname:"1f64c-1f3fe",uc:"1f64c-1f3fe",isCanonical:!0},":raised_hands_tone3:":{unicode:["1f64c-1f3fd"],fname:"1f64c-1f3fd",uc:"1f64c-1f3fd",isCanonical:!0},":raised_hands_tone2:":{unicode:["1f64c-1f3fc"],fname:"1f64c-1f3fc",uc:"1f64c-1f3fc",isCanonical:!0},":raised_hands_tone1:":{unicode:["1f64c-1f3fb"],fname:"1f64c-1f3fb",uc:"1f64c-1f3fb",isCanonical:!0},":raising_hand_tone5:":{unicode:["1f64b-1f3ff"],fname:"1f64b-1f3ff",uc:"1f64b-1f3ff",isCanonical:!0},":raising_hand_tone4:":{unicode:["1f64b-1f3fe"],fname:"1f64b-1f3fe",uc:"1f64b-1f3fe",isCanonical:!0},":raising_hand_tone3:":{unicode:["1f64b-1f3fd"],fname:"1f64b-1f3fd",uc:"1f64b-1f3fd",isCanonical:!0},":raising_hand_tone2:":{unicode:["1f64b-1f3fc"],fname:"1f64b-1f3fc",uc:"1f64b-1f3fc",isCanonical:!0},":raising_hand_tone1:":{unicode:["1f64b-1f3fb"],fname:"1f64b-1f3fb",uc:"1f64b-1f3fb",isCanonical:!0},":bow_tone5:":{unicode:["1f647-1f3ff"],fname:"1f647-1f3ff",uc:"1f647-1f3ff",isCanonical:!0},":bow_tone4:":{unicode:["1f647-1f3fe"],fname:"1f647-1f3fe",uc:"1f647-1f3fe",isCanonical:!0},":bow_tone3:":{unicode:["1f647-1f3fd"],fname:"1f647-1f3fd",uc:"1f647-1f3fd",isCanonical:!0},":bow_tone2:":{unicode:["1f647-1f3fc"],fname:"1f647-1f3fc",uc:"1f647-1f3fc",isCanonical:!0},":bow_tone1:":{unicode:["1f647-1f3fb"],fname:"1f647-1f3fb",uc:"1f647-1f3fb",isCanonical:!0},":ok_woman_tone5:":{unicode:["1f646-1f3ff"],fname:"1f646-1f3ff",uc:"1f646-1f3ff",isCanonical:!0},":ok_woman_tone4:":{unicode:["1f646-1f3fe"],fname:"1f646-1f3fe",uc:"1f646-1f3fe",isCanonical:!0},":ok_woman_tone3:":{unicode:["1f646-1f3fd"],fname:"1f646-1f3fd",uc:"1f646-1f3fd",isCanonical:!0},":ok_woman_tone2:":{unicode:["1f646-1f3fc"],fname:"1f646-1f3fc",uc:"1f646-1f3fc",isCanonical:!0},":ok_woman_tone1:":{unicode:["1f646-1f3fb"],fname:"1f646-1f3fb",uc:"1f646-1f3fb",isCanonical:!0},":no_good_tone5:":{unicode:["1f645-1f3ff"],fname:"1f645-1f3ff",uc:"1f645-1f3ff",isCanonical:!0},":no_good_tone4:":{unicode:["1f645-1f3fe"],fname:"1f645-1f3fe",uc:"1f645-1f3fe",isCanonical:!0},":no_good_tone3:":{unicode:["1f645-1f3fd"],fname:"1f645-1f3fd",uc:"1f645-1f3fd",isCanonical:!0},":no_good_tone2:":{unicode:["1f645-1f3fc"],fname:"1f645-1f3fc",uc:"1f645-1f3fc",isCanonical:!0},":no_good_tone1:":{unicode:["1f645-1f3fb"],fname:"1f645-1f3fb",uc:"1f645-1f3fb",isCanonical:!0},":vulcan_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!1},":vulcan_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!1},":vulcan_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!1},":vulcan_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!1},":vulcan_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!1},":middle_finger_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!1},":middle_finger_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!1},":middle_finger_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!1},":middle_finger_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!1},":middle_finger_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!1},":hand_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!0},":raised_hand_with_fingers_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!1},":hand_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!0},":raised_hand_with_fingers_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!1},":hand_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!0},":raised_hand_with_fingers_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!1},":hand_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!0},":raised_hand_with_fingers_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!1},":hand_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!0},":raised_hand_with_fingers_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!1},":man_dancing_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!0},":male_dancer_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!1},":man_dancing_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!0},":male_dancer_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!1},":man_dancing_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!0},":male_dancer_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!1},":man_dancing_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!0},":male_dancer_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!1},":man_dancing_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!0},":male_dancer_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!1},":spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!0},":sleuth_or_spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!1},":spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!0},":sleuth_or_spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!1},":spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!0},":sleuth_or_spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!1},":spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!0},":sleuth_or_spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!1},":spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!0},":sleuth_or_spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!1},":muscle_tone5:":{unicode:["1f4aa-1f3ff"],fname:"1f4aa-1f3ff",uc:"1f4aa-1f3ff",isCanonical:!0},":muscle_tone4:":{unicode:["1f4aa-1f3fe"],fname:"1f4aa-1f3fe",uc:"1f4aa-1f3fe",isCanonical:!0},":muscle_tone3:":{unicode:["1f4aa-1f3fd"],fname:"1f4aa-1f3fd",uc:"1f4aa-1f3fd",isCanonical:!0},":muscle_tone2:":{unicode:["1f4aa-1f3fc"],fname:"1f4aa-1f3fc",uc:"1f4aa-1f3fc",isCanonical:!0},":muscle_tone1:":{unicode:["1f4aa-1f3fb"],fname:"1f4aa-1f3fb",uc:"1f4aa-1f3fb",isCanonical:!0},":haircut_tone5:":{unicode:["1f487-1f3ff"],fname:"1f487-1f3ff",uc:"1f487-1f3ff",isCanonical:!0},":haircut_tone4:":{unicode:["1f487-1f3fe"],fname:"1f487-1f3fe",uc:"1f487-1f3fe",isCanonical:!0},":haircut_tone3:":{unicode:["1f487-1f3fd"],fname:"1f487-1f3fd",uc:"1f487-1f3fd",isCanonical:!0},":haircut_tone2:":{unicode:["1f487-1f3fc"],fname:"1f487-1f3fc",uc:"1f487-1f3fc",isCanonical:!0},":haircut_tone1:":{unicode:["1f487-1f3fb"],fname:"1f487-1f3fb",uc:"1f487-1f3fb",isCanonical:!0},":massage_tone5:":{unicode:["1f486-1f3ff"],fname:"1f486-1f3ff",uc:"1f486-1f3ff",isCanonical:!0},":massage_tone4:":{unicode:["1f486-1f3fe"],fname:"1f486-1f3fe",uc:"1f486-1f3fe",isCanonical:!0},":massage_tone3:":{unicode:["1f486-1f3fd"],fname:"1f486-1f3fd",uc:"1f486-1f3fd",isCanonical:!0},":massage_tone2:":{unicode:["1f486-1f3fc"],fname:"1f486-1f3fc",uc:"1f486-1f3fc",isCanonical:!0},":massage_tone1:":{unicode:["1f486-1f3fb"],fname:"1f486-1f3fb",uc:"1f486-1f3fb",isCanonical:!0},":nail_care_tone5:":{unicode:["1f485-1f3ff"],fname:"1f485-1f3ff",uc:"1f485-1f3ff",isCanonical:!0},":nail_care_tone4:":{unicode:["1f485-1f3fe"],fname:"1f485-1f3fe",uc:"1f485-1f3fe",isCanonical:!0},":nail_care_tone3:":{unicode:["1f485-1f3fd"],fname:"1f485-1f3fd",uc:"1f485-1f3fd",isCanonical:!0},":nail_care_tone2:":{unicode:["1f485-1f3fc"],fname:"1f485-1f3fc",uc:"1f485-1f3fc",isCanonical:!0},":nail_care_tone1:":{unicode:["1f485-1f3fb"],fname:"1f485-1f3fb",uc:"1f485-1f3fb",isCanonical:!0},":dancer_tone5:":{unicode:["1f483-1f3ff"],fname:"1f483-1f3ff",uc:"1f483-1f3ff",isCanonical:!0},":dancer_tone4:":{unicode:["1f483-1f3fe"],fname:"1f483-1f3fe",uc:"1f483-1f3fe",isCanonical:!0},":dancer_tone3:":{unicode:["1f483-1f3fd"],fname:"1f483-1f3fd",uc:"1f483-1f3fd",isCanonical:!0},":dancer_tone2:":{unicode:["1f483-1f3fc"],fname:"1f483-1f3fc",uc:"1f483-1f3fc",isCanonical:!0},":dancer_tone1:":{unicode:["1f483-1f3fb"],fname:"1f483-1f3fb",uc:"1f483-1f3fb",isCanonical:!0},":guardsman_tone5:":{unicode:["1f482-1f3ff"],fname:"1f482-1f3ff",uc:"1f482-1f3ff",isCanonical:!0},":guardsman_tone4:":{unicode:["1f482-1f3fe"],fname:"1f482-1f3fe",uc:"1f482-1f3fe",isCanonical:!0},":guardsman_tone3:":{unicode:["1f482-1f3fd"],fname:"1f482-1f3fd",uc:"1f482-1f3fd",isCanonical:!0},":guardsman_tone2:":{unicode:["1f482-1f3fc"],fname:"1f482-1f3fc",uc:"1f482-1f3fc",isCanonical:!0},":guardsman_tone1:":{unicode:["1f482-1f3fb"],fname:"1f482-1f3fb",uc:"1f482-1f3fb",isCanonical:!0},":information_desk_person_tone5:":{unicode:["1f481-1f3ff"],fname:"1f481-1f3ff",uc:"1f481-1f3ff",isCanonical:!0},":information_desk_person_tone4:":{unicode:["1f481-1f3fe"],fname:"1f481-1f3fe",uc:"1f481-1f3fe",isCanonical:!0},":information_desk_person_tone3:":{unicode:["1f481-1f3fd"],fname:"1f481-1f3fd",uc:"1f481-1f3fd",isCanonical:!0},":information_desk_person_tone2:":{unicode:["1f481-1f3fc"],fname:"1f481-1f3fc",uc:"1f481-1f3fc",isCanonical:!0},":information_desk_person_tone1:":{unicode:["1f481-1f3fb"],fname:"1f481-1f3fb",uc:"1f481-1f3fb",isCanonical:!0},":angel_tone5:":{unicode:["1f47c-1f3ff"],fname:"1f47c-1f3ff",uc:"1f47c-1f3ff",isCanonical:!0},":angel_tone4:":{unicode:["1f47c-1f3fe"],fname:"1f47c-1f3fe",uc:"1f47c-1f3fe",isCanonical:!0},":angel_tone3:":{unicode:["1f47c-1f3fd"],fname:"1f47c-1f3fd",uc:"1f47c-1f3fd",isCanonical:!0},":angel_tone2:":{unicode:["1f47c-1f3fc"],fname:"1f47c-1f3fc",uc:"1f47c-1f3fc",isCanonical:!0},":angel_tone1:":{unicode:["1f47c-1f3fb"],fname:"1f47c-1f3fb",uc:"1f47c-1f3fb",isCanonical:!0},":princess_tone5:":{unicode:["1f478-1f3ff"],fname:"1f478-1f3ff",uc:"1f478-1f3ff",isCanonical:!0},":princess_tone4:":{unicode:["1f478-1f3fe"],fname:"1f478-1f3fe",uc:"1f478-1f3fe",isCanonical:!0},":princess_tone3:":{unicode:["1f478-1f3fd"],fname:"1f478-1f3fd",uc:"1f478-1f3fd",isCanonical:!0},":princess_tone2:":{unicode:["1f478-1f3fc"],fname:"1f478-1f3fc",uc:"1f478-1f3fc",isCanonical:!0},":princess_tone1:":{unicode:["1f478-1f3fb"],fname:"1f478-1f3fb",uc:"1f478-1f3fb",isCanonical:!0},":construction_worker_tone5:":{unicode:["1f477-1f3ff"],fname:"1f477-1f3ff",uc:"1f477-1f3ff",isCanonical:!0},":construction_worker_tone4:":{unicode:["1f477-1f3fe"],fname:"1f477-1f3fe",uc:"1f477-1f3fe",isCanonical:!0},":construction_worker_tone3:":{unicode:["1f477-1f3fd"],fname:"1f477-1f3fd",uc:"1f477-1f3fd",isCanonical:!0},":construction_worker_tone2:":{unicode:["1f477-1f3fc"],fname:"1f477-1f3fc",uc:"1f477-1f3fc",isCanonical:!0},":construction_worker_tone1:":{unicode:["1f477-1f3fb"],fname:"1f477-1f3fb",uc:"1f477-1f3fb",isCanonical:!0},":baby_tone5:":{unicode:["1f476-1f3ff"],fname:"1f476-1f3ff",uc:"1f476-1f3ff",isCanonical:!0},":baby_tone4:":{unicode:["1f476-1f3fe"],fname:"1f476-1f3fe",uc:"1f476-1f3fe",isCanonical:!0},":baby_tone3:":{unicode:["1f476-1f3fd"],fname:"1f476-1f3fd",uc:"1f476-1f3fd",isCanonical:!0},":baby_tone2:":{unicode:["1f476-1f3fc"],fname:"1f476-1f3fc",uc:"1f476-1f3fc",isCanonical:!0},":baby_tone1:":{unicode:["1f476-1f3fb"],fname:"1f476-1f3fb",uc:"1f476-1f3fb",isCanonical:!0},":older_woman_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!0},":grandma_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!1},":older_woman_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!0},":grandma_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!1},":older_woman_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!0},":grandma_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!1},":older_woman_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!0},":grandma_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!1},":older_woman_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!0},":grandma_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!1},":older_man_tone5:":{unicode:["1f474-1f3ff"],fname:"1f474-1f3ff",uc:"1f474-1f3ff",isCanonical:!0},":older_man_tone4:":{unicode:["1f474-1f3fe"],fname:"1f474-1f3fe",uc:"1f474-1f3fe",isCanonical:!0},":older_man_tone3:":{unicode:["1f474-1f3fd"],fname:"1f474-1f3fd",uc:"1f474-1f3fd",isCanonical:!0},":older_man_tone2:":{unicode:["1f474-1f3fc"],fname:"1f474-1f3fc",uc:"1f474-1f3fc",isCanonical:!0},":older_man_tone1:":{unicode:["1f474-1f3fb"],fname:"1f474-1f3fb",uc:"1f474-1f3fb",isCanonical:!0},":man_with_turban_tone5:":{unicode:["1f473-1f3ff"],fname:"1f473-1f3ff",uc:"1f473-1f3ff",isCanonical:!0},":man_with_turban_tone4:":{unicode:["1f473-1f3fe"],fname:"1f473-1f3fe",uc:"1f473-1f3fe",isCanonical:!0},":man_with_turban_tone3:":{unicode:["1f473-1f3fd"],fname:"1f473-1f3fd",uc:"1f473-1f3fd",isCanonical:!0},":man_with_turban_tone2:":{unicode:["1f473-1f3fc"],fname:"1f473-1f3fc",uc:"1f473-1f3fc",isCanonical:!0},":man_with_turban_tone1:":{unicode:["1f473-1f3fb"],fname:"1f473-1f3fb",uc:"1f473-1f3fb",isCanonical:!0},":man_with_gua_pi_mao_tone5:":{unicode:["1f472-1f3ff"],fname:"1f472-1f3ff",uc:"1f472-1f3ff",isCanonical:!0},":man_with_gua_pi_mao_tone4:":{unicode:["1f472-1f3fe"],fname:"1f472-1f3fe",uc:"1f472-1f3fe",isCanonical:!0},":man_with_gua_pi_mao_tone3:":{unicode:["1f472-1f3fd"],fname:"1f472-1f3fd",uc:"1f472-1f3fd",isCanonical:!0},":man_with_gua_pi_mao_tone2:":{unicode:["1f472-1f3fc"],fname:"1f472-1f3fc",uc:"1f472-1f3fc",isCanonical:!0},":man_with_gua_pi_mao_tone1:":{unicode:["1f472-1f3fb"],fname:"1f472-1f3fb",uc:"1f472-1f3fb",isCanonical:!0},":person_with_blond_hair_tone5:":{unicode:["1f471-1f3ff"],fname:"1f471-1f3ff",uc:"1f471-1f3ff",isCanonical:!0},":person_with_blond_hair_tone4:":{unicode:["1f471-1f3fe"],fname:"1f471-1f3fe",uc:"1f471-1f3fe",isCanonical:!0},":person_with_blond_hair_tone3:":{unicode:["1f471-1f3fd"],fname:"1f471-1f3fd",uc:"1f471-1f3fd",isCanonical:!0},":person_with_blond_hair_tone2:":{unicode:["1f471-1f3fc"],fname:"1f471-1f3fc",uc:"1f471-1f3fc",isCanonical:!0},":person_with_blond_hair_tone1:":{unicode:["1f471-1f3fb"],fname:"1f471-1f3fb",uc:"1f471-1f3fb",isCanonical:!0},":bride_with_veil_tone5:":{unicode:["1f470-1f3ff"],fname:"1f470-1f3ff",uc:"1f470-1f3ff",isCanonical:!0},":bride_with_veil_tone4:":{unicode:["1f470-1f3fe"],fname:"1f470-1f3fe",uc:"1f470-1f3fe",isCanonical:!0},":bride_with_veil_tone3:":{unicode:["1f470-1f3fd"],fname:"1f470-1f3fd",uc:"1f470-1f3fd",isCanonical:!0},":bride_with_veil_tone2:":{unicode:["1f470-1f3fc"],fname:"1f470-1f3fc",uc:"1f470-1f3fc",isCanonical:!0},":bride_with_veil_tone1:":{unicode:["1f470-1f3fb"],fname:"1f470-1f3fb",uc:"1f470-1f3fb",isCanonical:!0},":cop_tone5:":{unicode:["1f46e-1f3ff"],fname:"1f46e-1f3ff",uc:"1f46e-1f3ff",isCanonical:!0},":cop_tone4:":{unicode:["1f46e-1f3fe"],fname:"1f46e-1f3fe",uc:"1f46e-1f3fe",isCanonical:!0},":cop_tone3:":{unicode:["1f46e-1f3fd"],fname:"1f46e-1f3fd",uc:"1f46e-1f3fd",isCanonical:!0},":cop_tone2:":{unicode:["1f46e-1f3fc"],fname:"1f46e-1f3fc",uc:"1f46e-1f3fc",isCanonical:!0},":cop_tone1:":{unicode:["1f46e-1f3fb"],fname:"1f46e-1f3fb",uc:"1f46e-1f3fb",isCanonical:!0},":woman_tone5:":{unicode:["1f469-1f3ff"],fname:"1f469-1f3ff",uc:"1f469-1f3ff",isCanonical:!0},":woman_tone4:":{unicode:["1f469-1f3fe"],fname:"1f469-1f3fe",uc:"1f469-1f3fe",isCanonical:!0},":woman_tone3:":{unicode:["1f469-1f3fd"],fname:"1f469-1f3fd",uc:"1f469-1f3fd",isCanonical:!0},":woman_tone2:":{unicode:["1f469-1f3fc"],fname:"1f469-1f3fc",uc:"1f469-1f3fc",isCanonical:!0},":woman_tone1:":{unicode:["1f469-1f3fb"],fname:"1f469-1f3fb",uc:"1f469-1f3fb",isCanonical:!0},":man_tone5:":{unicode:["1f468-1f3ff"],fname:"1f468-1f3ff",uc:"1f468-1f3ff",isCanonical:!0},":man_tone4:":{unicode:["1f468-1f3fe"],fname:"1f468-1f3fe",uc:"1f468-1f3fe",isCanonical:!0},":man_tone3:":{unicode:["1f468-1f3fd"],fname:"1f468-1f3fd",uc:"1f468-1f3fd",isCanonical:!0},":man_tone2:":{unicode:["1f468-1f3fc"],fname:"1f468-1f3fc",uc:"1f468-1f3fc",isCanonical:!0},":man_tone1:":{unicode:["1f468-1f3fb"],fname:"1f468-1f3fb",uc:"1f468-1f3fb",isCanonical:!0},":girl_tone5:":{unicode:["1f467-1f3ff"],fname:"1f467-1f3ff",uc:"1f467-1f3ff",isCanonical:!0},":girl_tone4:":{unicode:["1f467-1f3fe"],fname:"1f467-1f3fe",uc:"1f467-1f3fe",isCanonical:!0},":girl_tone3:":{unicode:["1f467-1f3fd"],fname:"1f467-1f3fd",uc:"1f467-1f3fd",isCanonical:!0},":girl_tone2:":{unicode:["1f467-1f3fc"],fname:"1f467-1f3fc",uc:"1f467-1f3fc",isCanonical:!0},":girl_tone1:":{unicode:["1f467-1f3fb"],fname:"1f467-1f3fb",uc:"1f467-1f3fb",isCanonical:!0},":boy_tone5:":{unicode:["1f466-1f3ff"],fname:"1f466-1f3ff",uc:"1f466-1f3ff",isCanonical:!0},":boy_tone4:":{unicode:["1f466-1f3fe"],fname:"1f466-1f3fe",uc:"1f466-1f3fe",isCanonical:!0},":boy_tone3:":{unicode:["1f466-1f3fd"],fname:"1f466-1f3fd",uc:"1f466-1f3fd",isCanonical:!0},":boy_tone2:":{unicode:["1f466-1f3fc"],fname:"1f466-1f3fc",uc:"1f466-1f3fc",isCanonical:!0},":boy_tone1:":{unicode:["1f466-1f3fb"],fname:"1f466-1f3fb",uc:"1f466-1f3fb",isCanonical:!0},":open_hands_tone5:":{unicode:["1f450-1f3ff"],fname:"1f450-1f3ff",uc:"1f450-1f3ff",isCanonical:!0},":open_hands_tone4:":{unicode:["1f450-1f3fe"],fname:"1f450-1f3fe",uc:"1f450-1f3fe",isCanonical:!0},":open_hands_tone3:":{unicode:["1f450-1f3fd"],fname:"1f450-1f3fd",uc:"1f450-1f3fd",isCanonical:!0},":open_hands_tone2:":{unicode:["1f450-1f3fc"],fname:"1f450-1f3fc",uc:"1f450-1f3fc",isCanonical:!0},":open_hands_tone1:":{unicode:["1f450-1f3fb"],fname:"1f450-1f3fb",uc:"1f450-1f3fb",isCanonical:!0},":clap_tone5:":{unicode:["1f44f-1f3ff"],fname:"1f44f-1f3ff",uc:"1f44f-1f3ff",isCanonical:!0},":clap_tone4:":{unicode:["1f44f-1f3fe"],fname:"1f44f-1f3fe",uc:"1f44f-1f3fe",isCanonical:!0},":clap_tone3:":{unicode:["1f44f-1f3fd"],fname:"1f44f-1f3fd",uc:"1f44f-1f3fd",isCanonical:!0},":clap_tone2:":{unicode:["1f44f-1f3fc"],fname:"1f44f-1f3fc",uc:"1f44f-1f3fc",isCanonical:!0},":clap_tone1:":{unicode:["1f44f-1f3fb"],fname:"1f44f-1f3fb",uc:"1f44f-1f3fb",isCanonical:!0},":thumbsdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!0},":-1_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbsdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!0},":-1_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbsdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!0},":-1_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbsdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!0},":-1_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbsdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!0},":-1_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbsup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!0},":+1_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbsup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!0},":+1_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbsup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!0},":+1_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbsup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!0},":+1_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbsup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!0},":+1_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":thumbup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":ok_hand_tone5:":{unicode:["1f44c-1f3ff"],fname:"1f44c-1f3ff",uc:"1f44c-1f3ff",isCanonical:!0},":ok_hand_tone4:":{unicode:["1f44c-1f3fe"],fname:"1f44c-1f3fe",uc:"1f44c-1f3fe",isCanonical:!0},":ok_hand_tone3:":{unicode:["1f44c-1f3fd"],fname:"1f44c-1f3fd",uc:"1f44c-1f3fd",isCanonical:!0},":ok_hand_tone2:":{unicode:["1f44c-1f3fc"],fname:"1f44c-1f3fc",uc:"1f44c-1f3fc",isCanonical:!0},":ok_hand_tone1:":{unicode:["1f44c-1f3fb"],fname:"1f44c-1f3fb",uc:"1f44c-1f3fb",isCanonical:!0},":wave_tone5:":{unicode:["1f44b-1f3ff"],fname:"1f44b-1f3ff",uc:"1f44b-1f3ff",isCanonical:!0},":wave_tone4:":{unicode:["1f44b-1f3fe"],fname:"1f44b-1f3fe",uc:"1f44b-1f3fe",isCanonical:!0},":wave_tone3:":{unicode:["1f44b-1f3fd"],fname:"1f44b-1f3fd",uc:"1f44b-1f3fd",isCanonical:!0},":wave_tone2:":{unicode:["1f44b-1f3fc"],fname:"1f44b-1f3fc",uc:"1f44b-1f3fc",isCanonical:!0},":wave_tone1:":{unicode:["1f44b-1f3fb"],fname:"1f44b-1f3fb",uc:"1f44b-1f3fb",isCanonical:!0},":punch_tone5:":{unicode:["1f44a-1f3ff"],fname:"1f44a-1f3ff",uc:"1f44a-1f3ff",isCanonical:!0},":punch_tone4:":{unicode:["1f44a-1f3fe"],fname:"1f44a-1f3fe",uc:"1f44a-1f3fe",isCanonical:!0},":punch_tone3:":{unicode:["1f44a-1f3fd"],fname:"1f44a-1f3fd",uc:"1f44a-1f3fd",isCanonical:!0},":punch_tone2:":{unicode:["1f44a-1f3fc"],fname:"1f44a-1f3fc",uc:"1f44a-1f3fc",isCanonical:!0},":punch_tone1:":{unicode:["1f44a-1f3fb"],fname:"1f44a-1f3fb",uc:"1f44a-1f3fb",isCanonical:!0},":point_right_tone5:":{unicode:["1f449-1f3ff"],fname:"1f449-1f3ff",uc:"1f449-1f3ff",isCanonical:!0},":point_right_tone4:":{unicode:["1f449-1f3fe"],fname:"1f449-1f3fe",uc:"1f449-1f3fe",isCanonical:!0},":point_right_tone3:":{unicode:["1f449-1f3fd"],fname:"1f449-1f3fd",uc:"1f449-1f3fd",isCanonical:!0},":point_right_tone2:":{unicode:["1f449-1f3fc"],fname:"1f449-1f3fc",uc:"1f449-1f3fc",isCanonical:!0},":point_right_tone1:":{unicode:["1f449-1f3fb"],fname:"1f449-1f3fb",uc:"1f449-1f3fb",isCanonical:!0},":point_left_tone5:":{unicode:["1f448-1f3ff"],fname:"1f448-1f3ff",uc:"1f448-1f3ff",isCanonical:!0},":point_left_tone4:":{unicode:["1f448-1f3fe"],fname:"1f448-1f3fe",uc:"1f448-1f3fe",isCanonical:!0},":point_left_tone3:":{unicode:["1f448-1f3fd"],fname:"1f448-1f3fd",uc:"1f448-1f3fd",isCanonical:!0},":point_left_tone2:":{unicode:["1f448-1f3fc"],fname:"1f448-1f3fc",uc:"1f448-1f3fc",isCanonical:!0},":point_left_tone1:":{unicode:["1f448-1f3fb"],fname:"1f448-1f3fb",uc:"1f448-1f3fb",isCanonical:!0},":point_down_tone5:":{unicode:["1f447-1f3ff"],fname:"1f447-1f3ff",uc:"1f447-1f3ff",isCanonical:!0},":point_down_tone4:":{unicode:["1f447-1f3fe"],fname:"1f447-1f3fe",uc:"1f447-1f3fe",isCanonical:!0},":point_down_tone3:":{unicode:["1f447-1f3fd"],fname:"1f447-1f3fd",uc:"1f447-1f3fd",isCanonical:!0},":point_down_tone2:":{unicode:["1f447-1f3fc"],fname:"1f447-1f3fc",uc:"1f447-1f3fc",isCanonical:!0},":point_down_tone1:":{unicode:["1f447-1f3fb"],fname:"1f447-1f3fb",uc:"1f447-1f3fb",isCanonical:!0},":point_up_2_tone5:":{unicode:["1f446-1f3ff"],fname:"1f446-1f3ff",uc:"1f446-1f3ff",isCanonical:!0},":point_up_2_tone4:":{unicode:["1f446-1f3fe"],fname:"1f446-1f3fe",uc:"1f446-1f3fe",isCanonical:!0},":point_up_2_tone3:":{unicode:["1f446-1f3fd"],fname:"1f446-1f3fd",uc:"1f446-1f3fd",isCanonical:!0},":point_up_2_tone2:":{unicode:["1f446-1f3fc"],fname:"1f446-1f3fc",
uc:"1f446-1f3fc",isCanonical:!0},":point_up_2_tone1:":{unicode:["1f446-1f3fb"],fname:"1f446-1f3fb",uc:"1f446-1f3fb",isCanonical:!0},":nose_tone5:":{unicode:["1f443-1f3ff"],fname:"1f443-1f3ff",uc:"1f443-1f3ff",isCanonical:!0},":nose_tone4:":{unicode:["1f443-1f3fe"],fname:"1f443-1f3fe",uc:"1f443-1f3fe",isCanonical:!0},":nose_tone3:":{unicode:["1f443-1f3fd"],fname:"1f443-1f3fd",uc:"1f443-1f3fd",isCanonical:!0},":nose_tone2:":{unicode:["1f443-1f3fc"],fname:"1f443-1f3fc",uc:"1f443-1f3fc",isCanonical:!0},":nose_tone1:":{unicode:["1f443-1f3fb"],fname:"1f443-1f3fb",uc:"1f443-1f3fb",isCanonical:!0},":ear_tone5:":{unicode:["1f442-1f3ff"],fname:"1f442-1f3ff",uc:"1f442-1f3ff",isCanonical:!0},":ear_tone4:":{unicode:["1f442-1f3fe"],fname:"1f442-1f3fe",uc:"1f442-1f3fe",isCanonical:!0},":ear_tone3:":{unicode:["1f442-1f3fd"],fname:"1f442-1f3fd",uc:"1f442-1f3fd",isCanonical:!0},":ear_tone2:":{unicode:["1f442-1f3fc"],fname:"1f442-1f3fc",uc:"1f442-1f3fc",isCanonical:!0},":ear_tone1:":{unicode:["1f442-1f3fb"],fname:"1f442-1f3fb",uc:"1f442-1f3fb",isCanonical:!0},":lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!0},":weight_lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!1},":lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!0},":weight_lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!1},":lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!0},":weight_lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!1},":lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!0},":weight_lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!1},":lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!0},":weight_lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!1},":swimmer_tone5:":{unicode:["1f3ca-1f3ff"],fname:"1f3ca-1f3ff",uc:"1f3ca-1f3ff",isCanonical:!0},":swimmer_tone4:":{unicode:["1f3ca-1f3fe"],fname:"1f3ca-1f3fe",uc:"1f3ca-1f3fe",isCanonical:!0},":swimmer_tone3:":{unicode:["1f3ca-1f3fd"],fname:"1f3ca-1f3fd",uc:"1f3ca-1f3fd",isCanonical:!0},":swimmer_tone2:":{unicode:["1f3ca-1f3fc"],fname:"1f3ca-1f3fc",uc:"1f3ca-1f3fc",isCanonical:!0},":swimmer_tone1:":{unicode:["1f3ca-1f3fb"],fname:"1f3ca-1f3fb",uc:"1f3ca-1f3fb",isCanonical:!0},":horse_racing_tone5:":{unicode:["1f3c7-1f3ff"],fname:"1f3c7-1f3ff",uc:"1f3c7-1f3ff",isCanonical:!0},":horse_racing_tone4:":{unicode:["1f3c7-1f3fe"],fname:"1f3c7-1f3fe",uc:"1f3c7-1f3fe",isCanonical:!0},":horse_racing_tone3:":{unicode:["1f3c7-1f3fd"],fname:"1f3c7-1f3fd",uc:"1f3c7-1f3fd",isCanonical:!0},":horse_racing_tone2:":{unicode:["1f3c7-1f3fc"],fname:"1f3c7-1f3fc",uc:"1f3c7-1f3fc",isCanonical:!0},":horse_racing_tone1:":{unicode:["1f3c7-1f3fb"],fname:"1f3c7-1f3fb",uc:"1f3c7-1f3fb",isCanonical:!0},":surfer_tone5:":{unicode:["1f3c4-1f3ff"],fname:"1f3c4-1f3ff",uc:"1f3c4-1f3ff",isCanonical:!0},":surfer_tone4:":{unicode:["1f3c4-1f3fe"],fname:"1f3c4-1f3fe",uc:"1f3c4-1f3fe",isCanonical:!0},":surfer_tone3:":{unicode:["1f3c4-1f3fd"],fname:"1f3c4-1f3fd",uc:"1f3c4-1f3fd",isCanonical:!0},":surfer_tone2:":{unicode:["1f3c4-1f3fc"],fname:"1f3c4-1f3fc",uc:"1f3c4-1f3fc",isCanonical:!0},":surfer_tone1:":{unicode:["1f3c4-1f3fb"],fname:"1f3c4-1f3fb",uc:"1f3c4-1f3fb",isCanonical:!0},":runner_tone5:":{unicode:["1f3c3-1f3ff"],fname:"1f3c3-1f3ff",uc:"1f3c3-1f3ff",isCanonical:!0},":runner_tone4:":{unicode:["1f3c3-1f3fe"],fname:"1f3c3-1f3fe",uc:"1f3c3-1f3fe",isCanonical:!0},":runner_tone3:":{unicode:["1f3c3-1f3fd"],fname:"1f3c3-1f3fd",uc:"1f3c3-1f3fd",isCanonical:!0},":runner_tone2:":{unicode:["1f3c3-1f3fc"],fname:"1f3c3-1f3fc",uc:"1f3c3-1f3fc",isCanonical:!0},":runner_tone1:":{unicode:["1f3c3-1f3fb"],fname:"1f3c3-1f3fb",uc:"1f3c3-1f3fb",isCanonical:!0},":santa_tone5:":{unicode:["1f385-1f3ff"],fname:"1f385-1f3ff",uc:"1f385-1f3ff",isCanonical:!0},":santa_tone4:":{unicode:["1f385-1f3fe"],fname:"1f385-1f3fe",uc:"1f385-1f3fe",isCanonical:!0},":santa_tone3:":{unicode:["1f385-1f3fd"],fname:"1f385-1f3fd",uc:"1f385-1f3fd",isCanonical:!0},":santa_tone2:":{unicode:["1f385-1f3fc"],fname:"1f385-1f3fc",uc:"1f385-1f3fc",isCanonical:!0},":santa_tone1:":{unicode:["1f385-1f3fb"],fname:"1f385-1f3fb",uc:"1f385-1f3fb",isCanonical:!0},":flag_zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!0},":zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!1},":flag_zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!0},":zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!1},":flag_za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!0},":za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!1},":flag_yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!0},":yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!1},":flag_ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!0},":ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!1},":flag_xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!0},":xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!1},":flag_ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!0},":ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!1},":flag_wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!0},":wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!1},":flag_vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!0},":vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!1},":flag_vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!0},":vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!1},":flag_vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!0},":vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!1},":flag_vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!0},":vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!1},":flag_ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!0},":ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!1},":flag_vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!0},":vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!1},":flag_va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!0},":va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!1},":flag_uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!0},":uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!1},":flag_uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!0},":uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!1},":flag_us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!0},":us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!1},":flag_um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!0},":um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!1},":flag_ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!0},":ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!1},":flag_ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!0},":ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!1},":flag_tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!0},":tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!1},":flag_tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!0},":tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!1},":flag_tv:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!0},":tuvalu:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!1},":flag_tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!0},":tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!1},":flag_tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!0},":tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!1},":flag_to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!0},":to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!1},":flag_tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!0},":tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!1},":flag_tm:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!0},":turkmenistan:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!1},":flag_tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!0},":tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!1},":flag_tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!0},":tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!1},":flag_tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!0},":tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!1},":flag_th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!0},":th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!1},":flag_tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!0},":tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!1},":flag_tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!0},":tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!1},":flag_td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!0},":td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!1},":flag_tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!0},":tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!1},":flag_ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!0},":ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!1},":flag_sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!0},":sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!1},":flag_sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!0},":sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!1},":flag_sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!0},":sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!1},":flag_sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!0},":sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!1},":flag_st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!0},":st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!1},":flag_ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!0},":ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!1},":flag_sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!0},":sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!1},":flag_so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!0},":so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!1},":flag_sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!0},":sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!1},":flag_sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!0},":sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!1},":flag_sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!0},":sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!1},":flag_sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!0},":sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!1},":flag_sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!0},":sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!1},":flag_si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!0},":si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!1},":flag_sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!0},":sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!1},":flag_sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!0},":sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!1},":flag_se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!0},":se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!1},":flag_sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!0},":sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!1},":flag_sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!0},":sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!1},":flag_sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!0},":sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!1},":flag_sa:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!0},":saudiarabia:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":saudi:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":flag_rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!0},":rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!1},":flag_ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!0},":ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!1},":flag_rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!0},":rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!1},":flag_ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!0},":ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!1},":flag_re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!0},":re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!1},":flag_qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!0},":qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!1},":flag_py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!0},":py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!1},":flag_pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!0},":pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!1},":flag_pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!0},":pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!1},":flag_ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!0},":ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!1},":flag_pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!0},":pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!1},":flag_pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!0},":pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!1},":flag_pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!0},":pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!1},":flag_pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!0},":pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!1},":flag_pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!0},":pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!1},":flag_ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!0},":ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!1},":flag_pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!0},":pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!1},":flag_pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!0},":pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!1},":flag_pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!0},":pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!1},":flag_pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!0},":pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!1},":flag_om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!0},":om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!1},":flag_nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!0},":nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!1},":flag_nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!0},":nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!1},":flag_nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!0},":nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!1},":flag_np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!0},":np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!1},":flag_no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!0},":no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!1},":flag_nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!0},":nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!1},":flag_ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!0},":ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!1},":flag_ng:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!0},":nigeria:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!1},":flag_nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!0},":nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!1},":flag_ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!0},":ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!1},":flag_nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!0},":nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!1},":flag_na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!0},":na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!1},":flag_mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!0},":mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!1},":flag_my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!0},":my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!1},":flag_mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!0},":mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!1},":flag_mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!0},":mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!1},":flag_mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!0},":mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!1},":flag_mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!0},":mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!1},":flag_mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!0},":mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!1},":flag_ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!0},":ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!1},":flag_mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!0},":mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!1},":flag_mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!0},":mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!1},":flag_mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!0},":mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!1},":flag_mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!0},":mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!1},":flag_mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!0},":mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!1},":flag_mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!0},":mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!1},":flag_ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!0},":ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!1},":flag_mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!0},":mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!1},":flag_mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!0},":mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!1},":flag_mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!0},":mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!1},":flag_mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!0},":mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!1},":flag_me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!0},":me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!1},":flag_md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!0},":md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!1},":flag_mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!0},":mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!1},":flag_ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!0},":ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!1},":flag_ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!0},":ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!1},":flag_lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!0},":lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!1},":flag_lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!0},":lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!1},":flag_lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!0},":lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!1},":flag_ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!0},":ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!1},":flag_lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!0},":lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!1},":flag_lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!0},":lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!1},":flag_li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!0},":li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!1},":flag_lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!0},":lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!1},":flag_lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!0},":lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!1},":flag_la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!0},":la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!1},":flag_kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!0},":kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!1},":flag_ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!0},":ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!1},":flag_kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!0},":kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!1},":flag_kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!0},":kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!1},":flag_kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!0},":kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!1},":flag_kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!0},":kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!1},":flag_km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!0},":km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!1},":flag_ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!0},":ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!1},":flag_kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!0},":kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!1},":flag_kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!0},":kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!1},":flag_ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!0},":ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!1},":flag_jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!0},":jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!1},":flag_jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!0},":jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!1},":flag_jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!0},":jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!1},":flag_je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!0},":je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!1},":flag_it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!0},":it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!1},":flag_is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!0},":is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!1},":flag_ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!0},":ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!1},":flag_iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!0},":iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!1},":flag_io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!0},":io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!1},":flag_in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!0},":in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!1},":flag_im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!0},":im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!1},":flag_il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!0},":il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!1},":flag_ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!0},":ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!1},":flag_id:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!0},":indonesia:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!1},":flag_ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!0},":ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!1},":flag_hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!0},":hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!1},":flag_ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!0},":ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!1},":flag_hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!0},":hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!1},":flag_hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!0},":hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!1},":flag_hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!0},":hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",
uc:"1f1ed-1f1f2",isCanonical:!1},":flag_hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!0},":hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!1},":flag_gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!0},":gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!1},":flag_gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!0},":gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!1},":flag_gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!0},":gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!1},":flag_gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!0},":gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!1},":flag_gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!0},":gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!1},":flag_gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!0},":gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!1},":flag_gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!0},":gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!1},":flag_gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!0},":gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!1},":flag_gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!0},":gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!1},":flag_gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!0},":gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!1},":flag_gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!0},":gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!1},":flag_gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!0},":gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!1},":flag_gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!0},":gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!1},":flag_gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!0},":gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!1},":flag_gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!0},":gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!1},":flag_ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!0},":ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!1},":flag_gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!0},":gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!1},":flag_gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!0},":gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!1},":flag_ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!0},":ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!1},":flag_fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!0},":fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!1},":flag_fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!0},":fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!1},":flag_fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!0},":fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!1},":flag_fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!0},":fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!1},":flag_fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!0},":fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!1},":flag_fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!0},":fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!1},":flag_eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!0},":eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!1},":flag_et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!0},":et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!1},":flag_es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!0},":es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!1},":flag_er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!0},":er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!1},":flag_eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!0},":eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!1},":flag_eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!0},":eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!1},":flag_ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!0},":ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!1},":flag_ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!0},":ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!1},":flag_ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!0},":ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!1},":flag_dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!0},":dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!1},":flag_do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!0},":do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!1},":flag_dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!0},":dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!1},":flag_dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!0},":dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!1},":flag_dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!0},":dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!1},":flag_dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!0},":dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!1},":flag_de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!0},":de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!1},":flag_cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!0},":cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!1},":flag_cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!0},":cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!1},":flag_cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!0},":cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!1},":flag_cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!0},":cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!1},":flag_cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!0},":cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!1},":flag_cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!0},":cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!1},":flag_cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!0},":cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!1},":flag_cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!0},":cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!1},":flag_co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!0},":co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!1},":flag_cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!0},":cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!1},":flag_cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!0},":cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!1},":flag_cl:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!0},":chile:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!1},":flag_ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!0},":ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!1},":flag_ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!0},":ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!1},":flag_ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!0},":ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!1},":flag_cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!0},":cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!1},":flag_cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!0},":cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!1},":flag_cd:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!0},":congo:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!1},":flag_cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!0},":cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!1},":flag_ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!0},":ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!1},":flag_bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!0},":bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!1},":flag_by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!0},":by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!1},":flag_bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!0},":bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!1},":flag_bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!0},":bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!1},":flag_bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!0},":bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!1},":flag_bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!0},":bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!1},":flag_br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!0},":br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!1},":flag_bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!0},":bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!1},":flag_bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!0},":bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!1},":flag_bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!0},":bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!1},":flag_bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!0},":bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!1},":flag_bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!0},":bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!1},":flag_bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!0},":bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!1},":flag_bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!0},":bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!1},":flag_bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!0},":bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!1},":flag_bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!0},":bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!1},":flag_bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!0},":bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!1},":flag_be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!0},":be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!1},":flag_bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!0},":bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!1},":flag_bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!0},":bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!1},":flag_ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!0},":ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!1},":flag_az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!0},":az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!1},":flag_ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!0},":ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!1},":flag_aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!0},":aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!1},":flag_au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!0},":au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!1},":flag_at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!0},":at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!1},":flag_as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!0},":as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!1},":flag_ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!0},":ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!1},":flag_aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!0},":aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!1},":flag_ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!0},":ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!1},":flag_am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!0},":am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!1},":flag_al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!0},":al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!1},":flag_ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!0},":ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!1},":flag_ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!0},":ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!1},":flag_af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!0},":af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!1},":flag_ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!0},":ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!1},":flag_ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!0},":ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!1},":flag_ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!0},":ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!1},":mahjong:":{unicode:["1f004-fe0f","1f004"],fname:"1f004",uc:"1f004",isCanonical:!0},":parking:":{unicode:["1f17f-fe0f","1f17f"],fname:"1f17f",uc:"1f17f",isCanonical:!0},":sa:":{unicode:["1f202-fe0f","1f202"],fname:"1f202",uc:"1f202",isCanonical:!0},":u7121:":{unicode:["1f21a-fe0f","1f21a"],fname:"1f21a",uc:"1f21a",isCanonical:!0},":u6307:":{unicode:["1f22f-fe0f","1f22f"],fname:"1f22f",uc:"1f22f",isCanonical:!0},":u6708:":{unicode:["1f237-fe0f","1f237"],fname:"1f237",uc:"1f237",isCanonical:!0},":film_frames:":{unicode:["1f39e-fe0f","1f39e"],fname:"1f39e",uc:"1f39e",isCanonical:!0},":tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!0},":admission_tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!1},":lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!0},":weight_lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!1},":golfer:":{unicode:["1f3cc-fe0f","1f3cc"],fname:"1f3cc",uc:"1f3cc",isCanonical:!0},":motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!0},":racing_motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!1},":race_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!0},":racing_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!1},":military_medal:":{unicode:["1f396-fe0f","1f396"],fname:"1f396",uc:"1f396",isCanonical:!0},":reminder_ribbon:":{unicode:["1f397-fe0f","1f397"],fname:"1f397",uc:"1f397",isCanonical:!0},":hot_pepper:":{unicode:["1f336-fe0f","1f336"],fname:"1f336",uc:"1f336",isCanonical:!0},":cloud_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!0},":cloud_with_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!1},":cloud_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!0},":cloud_with_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!1},":cloud_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!0},":cloud_with_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!1},":cloud_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!0},":cloud_with_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!1},":fog:":{unicode:["1f32b-fe0f","1f32b"],fname:"1f32b",uc:"1f32b",isCanonical:!0},":wind_blowing_face:":{unicode:["1f32c-fe0f","1f32c"],fname:"1f32c",uc:"1f32c",isCanonical:!0},":chipmunk:":{unicode:["1f43f-fe0f","1f43f"],fname:"1f43f",uc:"1f43f",isCanonical:!0},":spider:":{unicode:["1f577-fe0f","1f577"],fname:"1f577",uc:"1f577",isCanonical:!0},":spider_web:":{unicode:["1f578-fe0f","1f578"],fname:"1f578",uc:"1f578",isCanonical:!0},":thermometer:":{unicode:["1f321-fe0f","1f321"],fname:"1f321",uc:"1f321",isCanonical:!0},":microphone2:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!0},":studio_microphone:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!1},":level_slider:":{unicode:["1f39a-fe0f","1f39a"],fname:"1f39a",uc:"1f39a",isCanonical:!0},":control_knobs:":{unicode:["1f39b-fe0f","1f39b"],fname:"1f39b",uc:"1f39b",isCanonical:!0},":flag_white:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!0},":waving_white_flag:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!1},":rosette:":{unicode:["1f3f5-fe0f","1f3f5"],fname:"1f3f5",uc:"1f3f5",isCanonical:!0},":label:":{unicode:["1f3f7-fe0f","1f3f7"],fname:"1f3f7",uc:"1f3f7",isCanonical:!0},":projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!0},":film_projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!1},":om_symbol:":{unicode:["1f549-fe0f","1f549"],fname:"1f549",uc:"1f549",isCanonical:!0},":dove:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!0},":dove_of_peace:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!1},":candle:":{unicode:["1f56f-fe0f","1f56f"],fname:"1f56f",uc:"1f56f",isCanonical:!0},":clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!0},":mantlepiece_clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!1},":hole:":{unicode:["1f573-fe0f","1f573"],fname:"1f573",uc:"1f573",isCanonical:!0},":dark_sunglasses:":{unicode:["1f576-fe0f","1f576"],fname:"1f576",uc:"1f576",isCanonical:!0},":joystick:":{unicode:["1f579-fe0f","1f579"],fname:"1f579",uc:"1f579",isCanonical:!0},":paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!0},":linked_paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!1},":pen_ballpoint:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!0},":lower_left_ballpoint_pen:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!1},":pen_fountain:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!0},":lower_left_fountain_pen:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!1},":paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!0},":lower_left_paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!1},":crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!0},":lower_left_crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!1},":desktop:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!0},":desktop_computer:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!1},":printer:":{unicode:["1f5a8-fe0f","1f5a8"],fname:"1f5a8",uc:"1f5a8",isCanonical:!0},":trackball:":{unicode:["1f5b2-fe0f","1f5b2"],fname:"1f5b2",uc:"1f5b2",isCanonical:!0},":frame_photo:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!0},":frame_with_picture:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!1},":dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!0},":card_index_dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!1},":card_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!0},":card_file_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!1},":file_cabinet:":{unicode:["1f5c4-fe0f","1f5c4"],fname:"1f5c4",uc:"1f5c4",isCanonical:!0},":wastebasket:":{unicode:["1f5d1-fe0f","1f5d1"],fname:"1f5d1",uc:"1f5d1",isCanonical:!0},":notepad_spiral:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!0},":spiral_note_pad:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!1},":calendar_spiral:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!0},":spiral_calendar_pad:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!1},":compression:":{unicode:["1f5dc-fe0f","1f5dc"],fname:"1f5dc",uc:"1f5dc",isCanonical:!0},":key2:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!0},":old_key:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!1},":newspaper2:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!0},":rolled_up_newspaper:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!1},":dagger:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!0},":dagger_knife:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!1},":speaking_head:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!0},":speaking_head_in_silhouette:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!1},":speech_left:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!0},":left_speech_bubble:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!1},":anger_right:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!0},":right_anger_bubble:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!1},":ballot_box:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!0},":ballot_box_with_ballot:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!1},":map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!0},":world_map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!1},":tools:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!0},":hammer_and_wrench:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!1},":shield:":{unicode:["1f6e1-fe0f","1f6e1"],fname:"1f6e1",uc:"1f6e1",isCanonical:!0},":oil:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!0},":oil_drum:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!1},":satellite_orbital:":{unicode:["1f6f0-fe0f","1f6f0"],fname:"1f6f0",uc:"1f6f0",isCanonical:!0},":fork_knife_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!0},":fork_and_knife_with_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!1},":eye:":{unicode:["1f441-fe0f","1f441"],fname:"1f441",uc:"1f441",isCanonical:!0},":levitate:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!0},":man_in_business_suit_levitating:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!1},":spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!0},":sleuth_or_spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!1},":hand_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!0},":raised_hand_with_fingers_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!1},":mountain_snow:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!0},":snow_capped_mountain:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!1},":camping:":{unicode:["1f3d5-fe0f","1f3d5"],fname:"1f3d5",uc:"1f3d5",isCanonical:!0},":beach:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!0},":beach_with_umbrella:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!1},":construction_site:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!0},":building_construction:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!1},":homes:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!0},":house_buildings:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!1},":cityscape:":{unicode:["1f3d9-fe0f","1f3d9"],fname:"1f3d9",uc:"1f3d9",isCanonical:!0},":house_abandoned:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!0},":derelict_house_building:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!1},":classical_building:":{unicode:["1f3db-fe0f","1f3db"],fname:"1f3db",uc:"1f3db",isCanonical:!0},":desert:":{unicode:["1f3dc-fe0f","1f3dc"],fname:"1f3dc",uc:"1f3dc",isCanonical:!0},":island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!0},":desert_island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!1},":park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!0},":national_park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!1},":stadium:":{unicode:["1f3df-fe0f","1f3df"],fname:"1f3df",uc:"1f3df",isCanonical:!0},":couch:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!0},":couch_and_lamp:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!1},":shopping_bags:":{unicode:["1f6cd-fe0f","1f6cd"],fname:"1f6cd",uc:"1f6cd",isCanonical:!0},":bellhop:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!0},":bellhop_bell:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!1},":bed:":{unicode:["1f6cf-fe0f","1f6cf"],fname:"1f6cf",uc:"1f6cf",isCanonical:!0},":motorway:":{unicode:["1f6e3-fe0f","1f6e3"],fname:"1f6e3",uc:"1f6e3",isCanonical:!0},":railway_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!0},":railroad_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!1},":motorboat:":{unicode:["1f6e5-fe0f","1f6e5"],fname:"1f6e5",uc:"1f6e5",isCanonical:!0},":airplane_small:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!0},":small_airplane:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!1},":cruise_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!0},":passenger_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!1},":white_sun_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!0},":white_sun_with_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!1},":white_sun_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!0},":white_sun_behind_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!1},":white_sun_rain_cloud:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!0},":white_sun_behind_cloud_with_rain:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!1},":mouse_three_button:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!0},":three_button_mouse:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!1},":point_up_tone1:":{unicode:["261d-1f3fb"],fname:"261d-1f3fb",uc:"261d-1f3fb",isCanonical:!0},":point_up_tone2:":{unicode:["261d-1f3fc"],fname:"261d-1f3fc",uc:"261d-1f3fc",isCanonical:!0},":point_up_tone3:":{unicode:["261d-1f3fd"],fname:"261d-1f3fd",uc:"261d-1f3fd",isCanonical:!0},":point_up_tone4:":{unicode:["261d-1f3fe"],fname:"261d-1f3fe",uc:"261d-1f3fe",isCanonical:!0},":point_up_tone5:":{unicode:["261d-1f3ff"],fname:"261d-1f3ff",uc:"261d-1f3ff",isCanonical:!0},":v_tone1:":{unicode:["270c-1f3fb"],fname:"270c-1f3fb",uc:"270c-1f3fb",isCanonical:!0},":v_tone2:":{unicode:["270c-1f3fc"],fname:"270c-1f3fc",uc:"270c-1f3fc",isCanonical:!0},":v_tone3:":{unicode:["270c-1f3fd"],fname:"270c-1f3fd",uc:"270c-1f3fd",isCanonical:!0},":v_tone4:":{unicode:["270c-1f3fe"],fname:"270c-1f3fe",uc:"270c-1f3fe",isCanonical:!0},
@@ -92,5 +86,11 @@ uc:"1f1ed-1f1f2",isCanonical:!1},":flag_hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1
uc:"1f38b",isCanonical:!0},":crossed_flags:":{unicode:["1f38c"],fname:"1f38c",uc:"1f38c",isCanonical:!0},":call_me:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!0},":call_me_hand:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!1},":bamboo:":{unicode:["1f38d"],fname:"1f38d",uc:"1f38d",isCanonical:!0},":man_dancing:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!0},":male_dancer:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!1},":dolls:":{unicode:["1f38e"],fname:"1f38e",uc:"1f38e",isCanonical:!0},":selfie:":{unicode:["1f933"],fname:"1f933",uc:"1f933",isCanonical:!0},":flags:":{unicode:["1f38f"],fname:"1f38f",uc:"1f38f",isCanonical:!0},":pregnant_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!0},":expecting_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!1},":wind_chime:":{unicode:["1f390"],fname:"1f390",uc:"1f390",isCanonical:!0},":face_palm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!0},":facepalm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!1},":shrug:":{unicode:["1f937"],fname:"1f937",uc:"1f937",isCanonical:!0},":rice_scene:":{unicode:["1f391"],fname:"1f391",uc:"1f391",isCanonical:!0},":school_satchel:":{unicode:["1f392"],fname:"1f392",uc:"1f392",isCanonical:!0},":mortar_board:":{unicode:["1f393"],fname:"1f393",uc:"1f393",isCanonical:!0},":carousel_horse:":{unicode:["1f3a0"],fname:"1f3a0",uc:"1f3a0",isCanonical:!0},":ferris_wheel:":{unicode:["1f3a1"],fname:"1f3a1",uc:"1f3a1",isCanonical:!0},":roller_coaster:":{unicode:["1f3a2"],fname:"1f3a2",uc:"1f3a2",isCanonical:!0},":fishing_pole_and_fish:":{unicode:["1f3a3"],fname:"1f3a3",uc:"1f3a3",isCanonical:!0},":microphone:":{unicode:["1f3a4"],fname:"1f3a4",uc:"1f3a4",isCanonical:!0},":movie_camera:":{unicode:["1f3a5"],fname:"1f3a5",uc:"1f3a5",isCanonical:!0},":cinema:":{unicode:["1f3a6"],fname:"1f3a6",uc:"1f3a6",isCanonical:!0},":headphones:":{unicode:["1f3a7"],fname:"1f3a7",uc:"1f3a7",isCanonical:!0},":mrs_claus:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!0},":mother_christmas:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!1},":art:":{unicode:["1f3a8"],fname:"1f3a8",uc:"1f3a8",isCanonical:!0},":man_in_tuxedo:":{unicode:["1f935"],fname:"1f935",uc:"1f935",isCanonical:!0},":tophat:":{unicode:["1f3a9"],fname:"1f3a9",uc:"1f3a9",isCanonical:!0},":circus_tent:":{unicode:["1f3aa"],fname:"1f3aa",uc:"1f3aa",isCanonical:!0},":prince:":{unicode:["1f934"],fname:"1f934",uc:"1f934",isCanonical:!0},":ticket:":{unicode:["1f3ab"],fname:"1f3ab",uc:"1f3ab",isCanonical:!0},":clapper:":{unicode:["1f3ac"],fname:"1f3ac",uc:"1f3ac",isCanonical:!0},":performing_arts:":{unicode:["1f3ad"],fname:"1f3ad",uc:"1f3ad",isCanonical:!0},":sneezing_face:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!0},":sneeze:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!1},":video_game:":{unicode:["1f3ae"],fname:"1f3ae",uc:"1f3ae",isCanonical:!0},":dart:":{unicode:["1f3af"],fname:"1f3af",uc:"1f3af",isCanonical:!0},":slot_machine:":{unicode:["1f3b0"],fname:"1f3b0",uc:"1f3b0",isCanonical:!0},":8ball:":{unicode:["1f3b1"],fname:"1f3b1",uc:"1f3b1",isCanonical:!0},":game_die:":{unicode:["1f3b2"],fname:"1f3b2",uc:"1f3b2",isCanonical:!0},":bowling:":{unicode:["1f3b3"],fname:"1f3b3",uc:"1f3b3",isCanonical:!0},":flower_playing_cards:":{unicode:["1f3b4"],fname:"1f3b4",uc:"1f3b4",isCanonical:!0},":lying_face:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!0},":liar:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!1},":musical_note:":{unicode:["1f3b5"],fname:"1f3b5",uc:"1f3b5",isCanonical:!0},":notes:":{unicode:["1f3b6"],fname:"1f3b6",uc:"1f3b6",isCanonical:!0},":saxophone:":{unicode:["1f3b7"],fname:"1f3b7",uc:"1f3b7",isCanonical:!0},":drooling_face:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!0},":drool:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!1},":guitar:":{unicode:["1f3b8"],fname:"1f3b8",uc:"1f3b8",isCanonical:!0},":musical_keyboard:":{unicode:["1f3b9"],fname:"1f3b9",uc:"1f3b9",isCanonical:!0},":trumpet:":{unicode:["1f3ba"],fname:"1f3ba",uc:"1f3ba",isCanonical:!0},":rofl:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!0},":rolling_on_the_floor_laughing:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!1},":violin:":{unicode:["1f3bb"],fname:"1f3bb",uc:"1f3bb",isCanonical:!0},":musical_score:":{unicode:["1f3bc"],fname:"1f3bc",uc:"1f3bc",isCanonical:!0},":running_shirt_with_sash:":{unicode:["1f3bd"],fname:"1f3bd",uc:"1f3bd",isCanonical:!0},":nauseated_face:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!0},":sick:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!1},":tennis:":{unicode:["1f3be"],fname:"1f3be",uc:"1f3be",isCanonical:!0},":ski:":{unicode:["1f3bf"],fname:"1f3bf",uc:"1f3bf",isCanonical:!0},":basketball:":{unicode:["1f3c0"],fname:"1f3c0",uc:"1f3c0",isCanonical:!0},":checkered_flag:":{unicode:["1f3c1"],fname:"1f3c1",uc:"1f3c1",isCanonical:!0},":clown:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!0},":clown_face:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!1},":snowboarder:":{unicode:["1f3c2"],fname:"1f3c2",uc:"1f3c2",isCanonical:!0},":runner:":{unicode:["1f3c3"],fname:"1f3c3",uc:"1f3c3",isCanonical:!0},":surfer:":{unicode:["1f3c4"],fname:"1f3c4",uc:"1f3c4",isCanonical:!0},":trophy:":{unicode:["1f3c6"],fname:"1f3c6",uc:"1f3c6",isCanonical:!0},":football:":{unicode:["1f3c8"],fname:"1f3c8",uc:"1f3c8",isCanonical:!0},":swimmer:":{unicode:["1f3ca"],fname:"1f3ca",uc:"1f3ca",isCanonical:!0},":house:":{unicode:["1f3e0"],fname:"1f3e0",uc:"1f3e0",isCanonical:!0},":house_with_garden:":{unicode:["1f3e1"],fname:"1f3e1",uc:"1f3e1",isCanonical:!0},":office:":{unicode:["1f3e2"],fname:"1f3e2",uc:"1f3e2",isCanonical:!0},":post_office:":{unicode:["1f3e3"],fname:"1f3e3",uc:"1f3e3",isCanonical:!0},":hospital:":{unicode:["1f3e5"],fname:"1f3e5",uc:"1f3e5",isCanonical:!0},":bank:":{unicode:["1f3e6"],fname:"1f3e6",uc:"1f3e6",isCanonical:!0},":atm:":{unicode:["1f3e7"],fname:"1f3e7",uc:"1f3e7",isCanonical:!0},":hotel:":{unicode:["1f3e8"],fname:"1f3e8",uc:"1f3e8",isCanonical:!0},":love_hotel:":{unicode:["1f3e9"],fname:"1f3e9",uc:"1f3e9",isCanonical:!0},":convenience_store:":{unicode:["1f3ea"],fname:"1f3ea",uc:"1f3ea",isCanonical:!0},":school:":{unicode:["1f3eb"],fname:"1f3eb",uc:"1f3eb",isCanonical:!0},":department_store:":{unicode:["1f3ec"],fname:"1f3ec",uc:"1f3ec",isCanonical:!0},":cowboy:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!0},":face_with_cowboy_hat:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!1},":factory:":{unicode:["1f3ed"],fname:"1f3ed",uc:"1f3ed",isCanonical:!0},":izakaya_lantern:":{unicode:["1f3ee"],fname:"1f3ee",uc:"1f3ee",isCanonical:!0},":japanese_castle:":{unicode:["1f3ef"],fname:"1f3ef",uc:"1f3ef",isCanonical:!0},":european_castle:":{unicode:["1f3f0"],fname:"1f3f0",uc:"1f3f0",isCanonical:!0},":snail:":{unicode:["1f40c"],fname:"1f40c",uc:"1f40c",isCanonical:!0},":snake:":{unicode:["1f40d"],fname:"1f40d",uc:"1f40d",isCanonical:!0},":racehorse:":{unicode:["1f40e"],fname:"1f40e",uc:"1f40e",isCanonical:!0},":sheep:":{unicode:["1f411"],fname:"1f411",uc:"1f411",isCanonical:!0},":monkey:":{unicode:["1f412"],fname:"1f412",uc:"1f412",isCanonical:!0},":chicken:":{unicode:["1f414"],fname:"1f414",uc:"1f414",isCanonical:!0},":boar:":{unicode:["1f417"],fname:"1f417",uc:"1f417",isCanonical:!0},":elephant:":{unicode:["1f418"],fname:"1f418",uc:"1f418",isCanonical:!0},":octopus:":{unicode:["1f419"],fname:"1f419",uc:"1f419",isCanonical:!0},":shell:":{unicode:["1f41a"],fname:"1f41a",uc:"1f41a",isCanonical:!0},":bug:":{unicode:["1f41b"],fname:"1f41b",uc:"1f41b",isCanonical:!0},":ant:":{unicode:["1f41c"],fname:"1f41c",uc:"1f41c",isCanonical:!0},":bee:":{unicode:["1f41d"],fname:"1f41d",uc:"1f41d",isCanonical:!0},":beetle:":{unicode:["1f41e"],fname:"1f41e",uc:"1f41e",isCanonical:!0},":fish:":{unicode:["1f41f"],fname:"1f41f",uc:"1f41f",isCanonical:!0},":tropical_fish:":{unicode:["1f420"],fname:"1f420",uc:"1f420",isCanonical:!0},":blowfish:":{unicode:["1f421"],fname:"1f421",uc:"1f421",isCanonical:!0},":turtle:":{unicode:["1f422"],fname:"1f422",uc:"1f422",isCanonical:!0},":hatching_chick:":{unicode:["1f423"],fname:"1f423",uc:"1f423",isCanonical:!0},":baby_chick:":{unicode:["1f424"],fname:"1f424",uc:"1f424",isCanonical:!0},":hatched_chick:":{unicode:["1f425"],fname:"1f425",uc:"1f425",isCanonical:!0},":bird:":{unicode:["1f426"],fname:"1f426",uc:"1f426",isCanonical:!0},":penguin:":{unicode:["1f427"],fname:"1f427",uc:"1f427",isCanonical:!0},":koala:":{unicode:["1f428"],fname:"1f428",uc:"1f428",isCanonical:!0},":poodle:":{unicode:["1f429"],fname:"1f429",uc:"1f429",isCanonical:!0},":camel:":{unicode:["1f42b"],fname:"1f42b",uc:"1f42b",isCanonical:!0},":dolphin:":{unicode:["1f42c"],fname:"1f42c",uc:"1f42c",isCanonical:!0},":mouse:":{unicode:["1f42d"],fname:"1f42d",uc:"1f42d",isCanonical:!0},":cow:":{unicode:["1f42e"],fname:"1f42e",uc:"1f42e",isCanonical:!0},":tiger:":{unicode:["1f42f"],fname:"1f42f",uc:"1f42f",isCanonical:!0},":rabbit:":{unicode:["1f430"],fname:"1f430",uc:"1f430",isCanonical:!0},":cat:":{unicode:["1f431"],fname:"1f431",uc:"1f431",isCanonical:!0},":dragon_face:":{unicode:["1f432"],fname:"1f432",uc:"1f432",isCanonical:!0},":whale:":{unicode:["1f433"],fname:"1f433",uc:"1f433",isCanonical:!0},":horse:":{unicode:["1f434"],fname:"1f434",uc:"1f434",isCanonical:!0},":monkey_face:":{unicode:["1f435"],fname:"1f435",uc:"1f435",isCanonical:!0},":dog:":{unicode:["1f436"],fname:"1f436",uc:"1f436",isCanonical:!0},":pig:":{unicode:["1f437"],fname:"1f437",uc:"1f437",isCanonical:!0},":frog:":{unicode:["1f438"],fname:"1f438",uc:"1f438",isCanonical:!0},":hamster:":{unicode:["1f439"],fname:"1f439",uc:"1f439",isCanonical:!0},":wolf:":{unicode:["1f43a"],fname:"1f43a",uc:"1f43a",isCanonical:!0},":bear:":{unicode:["1f43b"],fname:"1f43b",uc:"1f43b",isCanonical:!0},":panda_face:":{unicode:["1f43c"],fname:"1f43c",uc:"1f43c",isCanonical:!0},":pig_nose:":{unicode:["1f43d"],fname:"1f43d",uc:"1f43d",isCanonical:!0},":feet:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!0},":paw_prints:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!1},":eyes:":{unicode:["1f440"],fname:"1f440",uc:"1f440",isCanonical:!0},":ear:":{unicode:["1f442"],fname:"1f442",uc:"1f442",isCanonical:!0},":nose:":{unicode:["1f443"],fname:"1f443",uc:"1f443",isCanonical:!0},":lips:":{unicode:["1f444"],fname:"1f444",uc:"1f444",isCanonical:!0},":tongue:":{unicode:["1f445"],fname:"1f445",uc:"1f445",isCanonical:!0},":point_up_2:":{unicode:["1f446"],fname:"1f446",uc:"1f446",isCanonical:!0},":point_down:":{unicode:["1f447"],fname:"1f447",uc:"1f447",isCanonical:!0},":point_left:":{unicode:["1f448"],fname:"1f448",uc:"1f448",isCanonical:!0},":point_right:":{unicode:["1f449"],fname:"1f449",uc:"1f449",isCanonical:!0},":punch:":{unicode:["1f44a"],fname:"1f44a",uc:"1f44a",isCanonical:!0},":wave:":{unicode:["1f44b"],fname:"1f44b",uc:"1f44b",isCanonical:!0},":ok_hand:":{unicode:["1f44c"],fname:"1f44c",uc:"1f44c",isCanonical:!0},":thumbsup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!0},":+1:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbsdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!0},":-1:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":thumbdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":clap:":{unicode:["1f44f"],fname:"1f44f",uc:"1f44f",isCanonical:!0},":open_hands:":{unicode:["1f450"],fname:"1f450",uc:"1f450",isCanonical:!0},":crown:":{unicode:["1f451"],fname:"1f451",uc:"1f451",isCanonical:!0},":womans_hat:":{unicode:["1f452"],fname:"1f452",uc:"1f452",isCanonical:!0},":eyeglasses:":{unicode:["1f453"],fname:"1f453",uc:"1f453",isCanonical:!0},":necktie:":{unicode:["1f454"],fname:"1f454",uc:"1f454",isCanonical:!0},":shirt:":{unicode:["1f455"],fname:"1f455",uc:"1f455",isCanonical:!0},":jeans:":{unicode:["1f456"],fname:"1f456",uc:"1f456",isCanonical:!0},":dress:":{unicode:["1f457"],fname:"1f457",uc:"1f457",isCanonical:!0},":kimono:":{unicode:["1f458"],fname:"1f458",uc:"1f458",isCanonical:!0},":bikini:":{unicode:["1f459"],fname:"1f459",uc:"1f459",isCanonical:!0},":womans_clothes:":{unicode:["1f45a"],fname:"1f45a",uc:"1f45a",isCanonical:!0},":purse:":{unicode:["1f45b"],fname:"1f45b",uc:"1f45b",isCanonical:!0},":handbag:":{unicode:["1f45c"],fname:"1f45c",uc:"1f45c",isCanonical:!0},":pouch:":{unicode:["1f45d"],fname:"1f45d",uc:"1f45d",isCanonical:!0},":mans_shoe:":{unicode:["1f45e"],fname:"1f45e",uc:"1f45e",isCanonical:!0},":athletic_shoe:":{unicode:["1f45f"],fname:"1f45f",uc:"1f45f",isCanonical:!0},":high_heel:":{unicode:["1f460"],fname:"1f460",uc:"1f460",isCanonical:!0},":sandal:":{unicode:["1f461"],fname:"1f461",uc:"1f461",isCanonical:!0},":boot:":{unicode:["1f462"],fname:"1f462",uc:"1f462",isCanonical:!0},":footprints:":{unicode:["1f463"],fname:"1f463",uc:"1f463",isCanonical:!0},":bust_in_silhouette:":{unicode:["1f464"],fname:"1f464",uc:"1f464",isCanonical:!0},":boy:":{unicode:["1f466"],fname:"1f466",uc:"1f466",isCanonical:!0},":girl:":{unicode:["1f467"],fname:"1f467",uc:"1f467",isCanonical:!0},":man:":{unicode:["1f468"],fname:"1f468",uc:"1f468",isCanonical:!0},":woman:":{unicode:["1f469"],fname:"1f469",uc:"1f469",isCanonical:!0},":family:":{unicode:["1f46a"],fname:"1f46a",uc:"1f46a",isCanonical:!0},":couple:":{unicode:["1f46b"],fname:"1f46b",uc:"1f46b",isCanonical:!0},":cop:":{unicode:["1f46e"],fname:"1f46e",uc:"1f46e",isCanonical:!0},":dancers:":{unicode:["1f46f"],fname:"1f46f",uc:"1f46f",isCanonical:!0},":bride_with_veil:":{unicode:["1f470"],fname:"1f470",uc:"1f470",isCanonical:!0},":person_with_blond_hair:":{unicode:["1f471"],fname:"1f471",uc:"1f471",isCanonical:!0},":man_with_gua_pi_mao:":{unicode:["1f472"],fname:"1f472",uc:"1f472",isCanonical:!0},":man_with_turban:":{unicode:["1f473"],fname:"1f473",uc:"1f473",isCanonical:!0},":older_man:":{unicode:["1f474"],fname:"1f474",uc:"1f474",isCanonical:!0},":older_woman:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!0},":grandma:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!1},":baby:":{unicode:["1f476"],fname:"1f476",uc:"1f476",isCanonical:!0},":construction_worker:":{unicode:["1f477"],fname:"1f477",uc:"1f477",isCanonical:!0},":princess:":{unicode:["1f478"],fname:"1f478",uc:"1f478",isCanonical:!0},":japanese_ogre:":{unicode:["1f479"],fname:"1f479",uc:"1f479",isCanonical:!0},":japanese_goblin:":{unicode:["1f47a"],fname:"1f47a",uc:"1f47a",isCanonical:!0},":ghost:":{unicode:["1f47b"],fname:"1f47b",uc:"1f47b",isCanonical:!0},":angel:":{unicode:["1f47c"],fname:"1f47c",uc:"1f47c",isCanonical:!0},":alien:":{unicode:["1f47d"],fname:"1f47d",uc:"1f47d",isCanonical:!0},":space_invader:":{unicode:["1f47e"],fname:"1f47e",uc:"1f47e",isCanonical:!0},":imp:":{unicode:["1f47f"],fname:"1f47f",uc:"1f47f",isCanonical:!0},":skull:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!0},":skeleton:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!1},":card_index:":{unicode:["1f4c7"],fname:"1f4c7",uc:"1f4c7",isCanonical:!0},":information_desk_person:":{unicode:["1f481"],fname:"1f481",uc:"1f481",isCanonical:!0},":guardsman:":{unicode:["1f482"],fname:"1f482",uc:"1f482",isCanonical:!0},":dancer:":{unicode:["1f483"],fname:"1f483",uc:"1f483",isCanonical:!0},":lipstick:":{unicode:["1f484"],fname:"1f484",uc:"1f484",isCanonical:!0},":nail_care:":{unicode:["1f485"],fname:"1f485",uc:"1f485",isCanonical:!0},":ledger:":{unicode:["1f4d2"],fname:"1f4d2",uc:"1f4d2",isCanonical:!0},":massage:":{unicode:["1f486"],fname:"1f486",uc:"1f486",isCanonical:!0},":notebook:":{unicode:["1f4d3"],fname:"1f4d3",uc:"1f4d3",isCanonical:!0},":haircut:":{unicode:["1f487"],fname:"1f487",uc:"1f487",isCanonical:!0},":notebook_with_decorative_cover:":{unicode:["1f4d4"],fname:"1f4d4",uc:"1f4d4",isCanonical:!0},":barber:":{unicode:["1f488"],fname:"1f488",uc:"1f488",isCanonical:!0},":closed_book:":{unicode:["1f4d5"],fname:"1f4d5",uc:"1f4d5",isCanonical:!0},":syringe:":{unicode:["1f489"],fname:"1f489",uc:"1f489",isCanonical:!0},":book:":{unicode:["1f4d6"],fname:"1f4d6",uc:"1f4d6",isCanonical:!0},":pill:":{unicode:["1f48a"],fname:"1f48a",uc:"1f48a",isCanonical:!0},":green_book:":{unicode:["1f4d7"],fname:"1f4d7",uc:"1f4d7",isCanonical:!0},":kiss:":{unicode:["1f48b"],fname:"1f48b",uc:"1f48b",isCanonical:!0},":blue_book:":{unicode:["1f4d8"],fname:"1f4d8",uc:"1f4d8",isCanonical:!0},":love_letter:":{unicode:["1f48c"],fname:"1f48c",uc:"1f48c",isCanonical:!0},":orange_book:":{unicode:["1f4d9"],fname:"1f4d9",uc:"1f4d9",isCanonical:!0},":ring:":{unicode:["1f48d"],fname:"1f48d",uc:"1f48d",isCanonical:!0},":books:":{unicode:["1f4da"],fname:"1f4da",uc:"1f4da",isCanonical:!0},":gem:":{unicode:["1f48e"],fname:"1f48e",uc:"1f48e",isCanonical:!0},":name_badge:":{unicode:["1f4db"],fname:"1f4db",uc:"1f4db",isCanonical:!0},":couplekiss:":{unicode:["1f48f"],fname:"1f48f",uc:"1f48f",isCanonical:!0},":scroll:":{unicode:["1f4dc"],fname:"1f4dc",uc:"1f4dc",isCanonical:!0},":bouquet:":{unicode:["1f490"],fname:"1f490",uc:"1f490",isCanonical:!0},":pencil:":{unicode:["1f4dd"],fname:"1f4dd",uc:"1f4dd",isCanonical:!0},":couple_with_heart:":{unicode:["1f491"],fname:"1f491",uc:"1f491",isCanonical:!0},":telephone_receiver:":{unicode:["1f4de"],fname:"1f4de",uc:"1f4de",isCanonical:!0},":wedding:":{unicode:["1f492"],fname:"1f492",uc:"1f492",isCanonical:!0},":pager:":{unicode:["1f4df"],fname:"1f4df",uc:"1f4df",isCanonical:!0},":fax:":{unicode:["1f4e0"],fname:"1f4e0",uc:"1f4e0",isCanonical:!0},":heartbeat:":{unicode:["1f493"],fname:"1f493",uc:"1f493",isCanonical:!0},":satellite:":{unicode:["1f4e1"],fname:"1f4e1",uc:"1f4e1",isCanonical:!0},":loudspeaker:":{unicode:["1f4e2"],fname:"1f4e2",uc:"1f4e2",isCanonical:!0},":broken_heart:":{unicode:["1f494"],fname:"1f494",uc:"1f494",isCanonical:!0},":mega:":{unicode:["1f4e3"],fname:"1f4e3",uc:"1f4e3",isCanonical:!0},":outbox_tray:":{unicode:["1f4e4"],fname:"1f4e4",uc:"1f4e4",isCanonical:!0},":two_hearts:":{unicode:["1f495"],fname:"1f495",uc:"1f495",isCanonical:!0},":inbox_tray:":{unicode:["1f4e5"],fname:"1f4e5",uc:"1f4e5",isCanonical:!0},":package:":{unicode:["1f4e6"],fname:"1f4e6",uc:"1f4e6",isCanonical:!0},":sparkling_heart:":{unicode:["1f496"],fname:"1f496",uc:"1f496",isCanonical:!0},":e-mail:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!0},":email:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!1},":incoming_envelope:":{unicode:["1f4e8"],fname:"1f4e8",uc:"1f4e8",isCanonical:!0},":heartpulse:":{unicode:["1f497"],fname:"1f497",uc:"1f497",isCanonical:!0},":envelope_with_arrow:":{unicode:["1f4e9"],fname:"1f4e9",uc:"1f4e9",isCanonical:!0},":mailbox_closed:":{unicode:["1f4ea"],fname:"1f4ea",uc:"1f4ea",isCanonical:!0},":cupid:":{unicode:["1f498"],fname:"1f498",uc:"1f498",isCanonical:!0},":mailbox:":{unicode:["1f4eb"],fname:"1f4eb",uc:"1f4eb",isCanonical:!0},":postbox:":{unicode:["1f4ee"],fname:"1f4ee",uc:"1f4ee",isCanonical:!0},":blue_heart:":{unicode:["1f499"],fname:"1f499",uc:"1f499",isCanonical:!0},":newspaper:":{unicode:["1f4f0"],fname:"1f4f0",uc:"1f4f0",isCanonical:!0},":iphone:":{unicode:["1f4f1"],fname:"1f4f1",uc:"1f4f1",isCanonical:!0},":green_heart:":{unicode:["1f49a"],fname:"1f49a",uc:"1f49a",isCanonical:!0},":calling:":{unicode:["1f4f2"],fname:"1f4f2",uc:"1f4f2",isCanonical:!0},":vibration_mode:":{unicode:["1f4f3"],fname:"1f4f3",uc:"1f4f3",isCanonical:!0},":yellow_heart:":{unicode:["1f49b"],fname:"1f49b",uc:"1f49b",isCanonical:!0},":mobile_phone_off:":{unicode:["1f4f4"],fname:"1f4f4",uc:"1f4f4",isCanonical:!0},":signal_strength:":{unicode:["1f4f6"],fname:"1f4f6",uc:"1f4f6",isCanonical:!0},":purple_heart:":{unicode:["1f49c"],fname:"1f49c",uc:"1f49c",isCanonical:!0},":camera:":{unicode:["1f4f7"],fname:"1f4f7",uc:"1f4f7",isCanonical:!0},":video_camera:":{unicode:["1f4f9"],fname:"1f4f9",uc:"1f4f9",isCanonical:!0},":gift_heart:":{unicode:["1f49d"],fname:"1f49d",uc:"1f49d",isCanonical:!0},":tv:":{unicode:["1f4fa"],fname:"1f4fa",uc:"1f4fa",isCanonical:!0},":radio:":{unicode:["1f4fb"],fname:"1f4fb",uc:"1f4fb",isCanonical:!0},":revolving_hearts:":{unicode:["1f49e"],fname:"1f49e",uc:"1f49e",isCanonical:!0},":vhs:":{unicode:["1f4fc"],fname:"1f4fc",uc:"1f4fc",isCanonical:!0},":arrows_clockwise:":{unicode:["1f503"],fname:"1f503",uc:"1f503",isCanonical:!0},":heart_decoration:":{unicode:["1f49f"],fname:"1f49f",uc:"1f49f",isCanonical:!0},":loud_sound:":{unicode:["1f50a"],fname:"1f50a",uc:"1f50a",isCanonical:!0},":battery:":{unicode:["1f50b"],fname:"1f50b",uc:"1f50b",isCanonical:!0},":diamond_shape_with_a_dot_inside:":{unicode:["1f4a0"],fname:"1f4a0",uc:"1f4a0",isCanonical:!0},":electric_plug:":{unicode:["1f50c"],fname:"1f50c",uc:"1f50c",isCanonical:!0},":mag:":{unicode:["1f50d"],fname:"1f50d",uc:"1f50d",isCanonical:!0},":bulb:":{unicode:["1f4a1"],fname:"1f4a1",uc:"1f4a1",isCanonical:!0},":mag_right:":{unicode:["1f50e"],fname:"1f50e",uc:"1f50e",isCanonical:!0},":lock_with_ink_pen:":{unicode:["1f50f"],fname:"1f50f",uc:"1f50f",isCanonical:!0},":anger:":{unicode:["1f4a2"],fname:"1f4a2",uc:"1f4a2",isCanonical:!0},":closed_lock_with_key:":{unicode:["1f510"],fname:"1f510",uc:"1f510",isCanonical:!0},":key:":{unicode:["1f511"],fname:"1f511",uc:"1f511",isCanonical:!0},":bomb:":{unicode:["1f4a3"],fname:"1f4a3",uc:"1f4a3",isCanonical:!0},":lock:":{unicode:["1f512"],fname:"1f512",uc:"1f512",isCanonical:!0},":unlock:":{unicode:["1f513"],fname:"1f513",uc:"1f513",isCanonical:!0},":zzz:":{unicode:["1f4a4"],fname:"1f4a4",uc:"1f4a4",isCanonical:!0},":bell:":{unicode:["1f514"],fname:"1f514",uc:"1f514",isCanonical:!0},":bookmark:":{unicode:["1f516"],fname:"1f516",uc:"1f516",isCanonical:!0},":boom:":{unicode:["1f4a5"],fname:"1f4a5",uc:"1f4a5",isCanonical:!0},":link:":{unicode:["1f517"],fname:"1f517",uc:"1f517",isCanonical:!0},":radio_button:":{unicode:["1f518"],fname:"1f518",uc:"1f518",isCanonical:!0},":sweat_drops:":{unicode:["1f4a6"],fname:"1f4a6",uc:"1f4a6",isCanonical:!0},":back:":{unicode:["1f519"],fname:"1f519",uc:"1f519",isCanonical:!0},":end:":{unicode:["1f51a"],fname:"1f51a",uc:"1f51a",isCanonical:!0},":droplet:":{unicode:["1f4a7"],fname:"1f4a7",uc:"1f4a7",isCanonical:!0},":on:":{unicode:["1f51b"],fname:"1f51b",uc:"1f51b",isCanonical:!0},":soon:":{unicode:["1f51c"],fname:"1f51c",uc:"1f51c",isCanonical:!0},":dash:":{unicode:["1f4a8"],fname:"1f4a8",uc:"1f4a8",isCanonical:!0},":top:":{unicode:["1f51d"],fname:"1f51d",uc:"1f51d",isCanonical:!0},":underage:":{unicode:["1f51e"],fname:"1f51e",uc:"1f51e",isCanonical:!0},":poop:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!0},":shit:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":hankey:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":poo:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":keycap_ten:":{unicode:["1f51f"],fname:"1f51f",uc:"1f51f",isCanonical:!0},":muscle:":{unicode:["1f4aa"],fname:"1f4aa",uc:"1f4aa",isCanonical:!0},":capital_abcd:":{unicode:["1f520"],fname:"1f520",uc:"1f520",isCanonical:!0},":abcd:":{unicode:["1f521"],fname:"1f521",uc:"1f521",isCanonical:!0},":dizzy:":{unicode:["1f4ab"],fname:"1f4ab",uc:"1f4ab",isCanonical:!0},":1234:":{unicode:["1f522"],fname:"1f522",uc:"1f522",isCanonical:!0},":symbols:":{unicode:["1f523"],fname:"1f523",uc:"1f523",isCanonical:!0},":speech_balloon:":{unicode:["1f4ac"],fname:"1f4ac",uc:"1f4ac",isCanonical:!0},":abc:":{unicode:["1f524"],fname:"1f524",uc:"1f524",isCanonical:!0},":fire:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!0},":flame:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!1},":white_flower:":{unicode:["1f4ae"],fname:"1f4ae",uc:"1f4ae",isCanonical:!0},":flashlight:":{unicode:["1f526"],fname:"1f526",uc:"1f526",isCanonical:!0},":wrench:":{unicode:["1f527"],fname:"1f527",uc:"1f527",isCanonical:!0},":100:":{unicode:["1f4af"],fname:"1f4af",uc:"1f4af",isCanonical:!0},":hammer:":{unicode:["1f528"],fname:"1f528",uc:"1f528",isCanonical:!0},":nut_and_bolt:":{unicode:["1f529"],fname:"1f529",uc:"1f529",isCanonical:!0},":moneybag:":{unicode:["1f4b0"],fname:"1f4b0",uc:"1f4b0",isCanonical:!0},":knife:":{unicode:["1f52a"],fname:"1f52a",uc:"1f52a",isCanonical:!0},":gun:":{unicode:["1f52b"],fname:"1f52b",uc:"1f52b",isCanonical:!0},":currency_exchange:":{unicode:["1f4b1"],fname:"1f4b1",uc:"1f4b1",isCanonical:!0},":crystal_ball:":{unicode:["1f52e"],fname:"1f52e",uc:"1f52e",isCanonical:!0},":heavy_dollar_sign:":{unicode:["1f4b2"],fname:"1f4b2",uc:"1f4b2",isCanonical:!0},":six_pointed_star:":{unicode:["1f52f"],fname:"1f52f",uc:"1f52f",isCanonical:!0},":credit_card:":{unicode:["1f4b3"],fname:"1f4b3",uc:"1f4b3",isCanonical:!0},":beginner:":{unicode:["1f530"],fname:"1f530",uc:"1f530",isCanonical:!0},":trident:":{unicode:["1f531"],fname:"1f531",uc:"1f531",isCanonical:!0},":yen:":{unicode:["1f4b4"],fname:"1f4b4",uc:"1f4b4",isCanonical:!0},":black_square_button:":{unicode:["1f532"],fname:"1f532",uc:"1f532",isCanonical:!0},":white_square_button:":{unicode:["1f533"],fname:"1f533",uc:"1f533",isCanonical:!0},":dollar:":{unicode:["1f4b5"],fname:"1f4b5",uc:"1f4b5",isCanonical:!0},":red_circle:":{unicode:["1f534"],fname:"1f534",uc:"1f534",isCanonical:!0},":blue_circle:":{unicode:["1f535"],fname:"1f535",uc:"1f535",isCanonical:!0},":money_with_wings:":{unicode:["1f4b8"],fname:"1f4b8",uc:"1f4b8",isCanonical:!0},":large_orange_diamond:":{unicode:["1f536"],fname:"1f536",uc:"1f536",isCanonical:!0},":large_blue_diamond:":{unicode:["1f537"],fname:"1f537",uc:"1f537",isCanonical:!0},":chart:":{unicode:["1f4b9"],fname:"1f4b9",uc:"1f4b9",isCanonical:!0},":small_orange_diamond:":{unicode:["1f538"],fname:"1f538",uc:"1f538",isCanonical:!0},":small_blue_diamond:":{unicode:["1f539"],fname:"1f539",uc:"1f539",isCanonical:!0},":seat:":{unicode:["1f4ba"],fname:"1f4ba",uc:"1f4ba",isCanonical:!0},":small_red_triangle:":{unicode:["1f53a"],fname:"1f53a",uc:"1f53a",isCanonical:!0},":small_red_triangle_down:":{unicode:["1f53b"],fname:"1f53b",uc:"1f53b",isCanonical:!0},":computer:":{unicode:["1f4bb"],fname:"1f4bb",uc:"1f4bb",isCanonical:!0},":arrow_up_small:":{unicode:["1f53c"],fname:"1f53c",uc:"1f53c",isCanonical:!0},":briefcase:":{unicode:["1f4bc"],fname:"1f4bc",uc:"1f4bc",isCanonical:!0},":arrow_down_small:":{unicode:["1f53d"],fname:"1f53d",uc:"1f53d",isCanonical:!0},":clock1:":{unicode:["1f550"],fname:"1f550",uc:"1f550",isCanonical:!0},":minidisc:":{unicode:["1f4bd"],fname:"1f4bd",uc:"1f4bd",isCanonical:!0},":clock2:":{unicode:["1f551"],fname:"1f551",uc:"1f551",isCanonical:!0},":floppy_disk:":{unicode:["1f4be"],fname:"1f4be",uc:"1f4be",isCanonical:!0},":clock3:":{unicode:["1f552"],fname:"1f552",uc:"1f552",isCanonical:!0},":cd:":{unicode:["1f4bf"],fname:"1f4bf",uc:"1f4bf",isCanonical:!0},":clock4:":{unicode:["1f553"],fname:"1f553",uc:"1f553",isCanonical:!0},":dvd:":{unicode:["1f4c0"],fname:"1f4c0",uc:"1f4c0",isCanonical:!0},":clock5:":{unicode:["1f554"],fname:"1f554",uc:"1f554",isCanonical:!0},":clock6:":{unicode:["1f555"],fname:"1f555",uc:"1f555",isCanonical:!0},":file_folder:":{unicode:["1f4c1"],fname:"1f4c1",uc:"1f4c1",isCanonical:!0},":clock7:":{unicode:["1f556"],fname:"1f556",uc:"1f556",isCanonical:!0},":clock8:":{unicode:["1f557"],fname:"1f557",uc:"1f557",isCanonical:!0},":open_file_folder:":{unicode:["1f4c2"],fname:"1f4c2",uc:"1f4c2",isCanonical:!0},":clock9:":{unicode:["1f558"],fname:"1f558",uc:"1f558",isCanonical:!0},":clock10:":{unicode:["1f559"],fname:"1f559",uc:"1f559",isCanonical:!0},":page_with_curl:":{unicode:["1f4c3"],fname:"1f4c3",uc:"1f4c3",isCanonical:!0},":clock11:":{unicode:["1f55a"],fname:"1f55a",uc:"1f55a",isCanonical:!0},":clock12:":{unicode:["1f55b"],fname:"1f55b",uc:"1f55b",isCanonical:!0},":page_facing_up:":{unicode:["1f4c4"],fname:"1f4c4",uc:"1f4c4",isCanonical:!0},":mount_fuji:":{unicode:["1f5fb"],fname:"1f5fb",uc:"1f5fb",isCanonical:!0},":tokyo_tower:":{unicode:["1f5fc"],fname:"1f5fc",uc:"1f5fc",isCanonical:!0},":date:":{unicode:["1f4c5"],fname:"1f4c5",uc:"1f4c5",isCanonical:!0},":statue_of_liberty:":{unicode:["1f5fd"],fname:"1f5fd",uc:"1f5fd",isCanonical:!0},":japan:":{unicode:["1f5fe"],fname:"1f5fe",uc:"1f5fe",isCanonical:!0},":calendar:":{unicode:["1f4c6"],fname:"1f4c6",uc:"1f4c6",isCanonical:!0},":moyai:":{unicode:["1f5ff"],fname:"1f5ff",uc:"1f5ff",isCanonical:!0},":grin:":{unicode:["1f601"],fname:"1f601",uc:"1f601",isCanonical:!0},":joy:":{unicode:["1f602"],fname:"1f602",uc:"1f602",isCanonical:!0},":smiley:":{unicode:["1f603"],fname:"1f603",uc:"1f603",isCanonical:!0},":chart_with_upwards_trend:":{unicode:["1f4c8"],fname:"1f4c8",uc:"1f4c8",isCanonical:!0},":smile:":{unicode:["1f604"],fname:"1f604",uc:"1f604",isCanonical:!0},":sweat_smile:":{unicode:["1f605"],fname:"1f605",uc:"1f605",isCanonical:!0},":chart_with_downwards_trend:":{unicode:["1f4c9"],fname:"1f4c9",uc:"1f4c9",isCanonical:!0},":laughing:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!0},":satisfied:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!1},":wink:":{unicode:["1f609"],fname:"1f609",uc:"1f609",isCanonical:!0},":bar_chart:":{unicode:["1f4ca"],fname:"1f4ca",uc:"1f4ca",isCanonical:!0},":blush:":{unicode:["1f60a"],fname:"1f60a",uc:"1f60a",isCanonical:!0},":yum:":{unicode:["1f60b"],fname:"1f60b",uc:"1f60b",isCanonical:!0},":clipboard:":{unicode:["1f4cb"],fname:"1f4cb",uc:"1f4cb",isCanonical:!0},":relieved:":{unicode:["1f60c"],fname:"1f60c",uc:"1f60c",isCanonical:!0},":heart_eyes:":{unicode:["1f60d"],fname:"1f60d",uc:"1f60d",isCanonical:!0},":pushpin:":{unicode:["1f4cc"],fname:"1f4cc",uc:"1f4cc",isCanonical:!0},":smirk:":{unicode:["1f60f"],fname:"1f60f",uc:"1f60f",isCanonical:!0},":unamused:":{unicode:["1f612"],fname:"1f612",uc:"1f612",isCanonical:!0},":round_pushpin:":{unicode:["1f4cd"],fname:"1f4cd",uc:"1f4cd",isCanonical:!0},":sweat:":{unicode:["1f613"],fname:"1f613",uc:"1f613",isCanonical:!0},":pensive:":{unicode:["1f614"],fname:"1f614",uc:"1f614",isCanonical:!0},":paperclip:":{unicode:["1f4ce"],fname:"1f4ce",uc:"1f4ce",isCanonical:!0},":confounded:":{unicode:["1f616"],fname:"1f616",uc:"1f616",isCanonical:!0},":kissing_heart:":{unicode:["1f618"],fname:"1f618",uc:"1f618",isCanonical:!0},":straight_ruler:":{unicode:["1f4cf"],fname:"1f4cf",uc:"1f4cf",isCanonical:!0},":kissing_closed_eyes:":{unicode:["1f61a"],fname:"1f61a",uc:"1f61a",isCanonical:!0},":stuck_out_tongue_winking_eye:":{unicode:["1f61c"],fname:"1f61c",uc:"1f61c",isCanonical:!0},":triangular_ruler:":{unicode:["1f4d0"],fname:"1f4d0",uc:"1f4d0",isCanonical:!0},":stuck_out_tongue_closed_eyes:":{unicode:["1f61d"],fname:"1f61d",uc:"1f61d",isCanonical:!0},":disappointed:":{unicode:["1f61e"],fname:"1f61e",uc:"1f61e",isCanonical:!0},":bookmark_tabs:":{unicode:["1f4d1"],fname:"1f4d1",uc:"1f4d1",isCanonical:!0},":angry:":{unicode:["1f620"],fname:"1f620",uc:"1f620",isCanonical:!0},":rage:":{unicode:["1f621"],fname:"1f621",uc:"1f621",isCanonical:!0},":cry:":{unicode:["1f622"],fname:"1f622",uc:"1f622",isCanonical:!0},":persevere:":{unicode:["1f623"],fname:"1f623",uc:"1f623",isCanonical:!0},":triumph:":{unicode:["1f624"],fname:"1f624",uc:"1f624",isCanonical:!0},":disappointed_relieved:":{unicode:["1f625"],fname:"1f625",uc:"1f625",isCanonical:!0},":fearful:":{unicode:["1f628"],fname:"1f628",uc:"1f628",isCanonical:!0},":weary:":{unicode:["1f629"],fname:"1f629",uc:"1f629",isCanonical:!0},":sleepy:":{unicode:["1f62a"],fname:"1f62a",uc:"1f62a",isCanonical:!0},":tired_face:":{unicode:["1f62b"],fname:"1f62b",uc:"1f62b",isCanonical:!0},":sob:":{unicode:["1f62d"],fname:"1f62d",uc:"1f62d",isCanonical:!0},":cold_sweat:":{unicode:["1f630"],fname:"1f630",uc:"1f630",isCanonical:!0},":scream:":{unicode:["1f631"],fname:"1f631",uc:"1f631",isCanonical:!0},":astonished:":{unicode:["1f632"],fname:"1f632",uc:"1f632",isCanonical:!0},":flushed:":{unicode:["1f633"],fname:"1f633",uc:"1f633",isCanonical:!0},":dizzy_face:":{unicode:["1f635"],fname:"1f635",uc:"1f635",isCanonical:!0},":mask:":{unicode:["1f637"],fname:"1f637",uc:"1f637",isCanonical:!0},":smile_cat:":{unicode:["1f638"],fname:"1f638",uc:"1f638",isCanonical:!0},
":joy_cat:":{unicode:["1f639"],fname:"1f639",uc:"1f639",isCanonical:!0},":smiley_cat:":{unicode:["1f63a"],fname:"1f63a",uc:"1f63a",isCanonical:!0},":heart_eyes_cat:":{unicode:["1f63b"],fname:"1f63b",uc:"1f63b",isCanonical:!0},":smirk_cat:":{unicode:["1f63c"],fname:"1f63c",uc:"1f63c",isCanonical:!0},":kissing_cat:":{unicode:["1f63d"],fname:"1f63d",uc:"1f63d",isCanonical:!0},":pouting_cat:":{unicode:["1f63e"],fname:"1f63e",uc:"1f63e",isCanonical:!0},":crying_cat_face:":{unicode:["1f63f"],fname:"1f63f",uc:"1f63f",isCanonical:!0},":scream_cat:":{unicode:["1f640"],fname:"1f640",uc:"1f640",isCanonical:!0},":no_good:":{unicode:["1f645"],fname:"1f645",uc:"1f645",isCanonical:!0},":ok_woman:":{unicode:["1f646"],fname:"1f646",uc:"1f646",isCanonical:!0},":bow:":{unicode:["1f647"],fname:"1f647",uc:"1f647",isCanonical:!0},":see_no_evil:":{unicode:["1f648"],fname:"1f648",uc:"1f648",isCanonical:!0},":hear_no_evil:":{unicode:["1f649"],fname:"1f649",uc:"1f649",isCanonical:!0},":speak_no_evil:":{unicode:["1f64a"],fname:"1f64a",uc:"1f64a",isCanonical:!0},":raising_hand:":{unicode:["1f64b"],fname:"1f64b",uc:"1f64b",isCanonical:!0},":raised_hands:":{unicode:["1f64c"],fname:"1f64c",uc:"1f64c",isCanonical:!0},":person_frowning:":{unicode:["1f64d"],fname:"1f64d",uc:"1f64d",isCanonical:!0},":person_with_pouting_face:":{unicode:["1f64e"],fname:"1f64e",uc:"1f64e",isCanonical:!0},":pray:":{unicode:["1f64f"],fname:"1f64f",uc:"1f64f",isCanonical:!0},":rocket:":{unicode:["1f680"],fname:"1f680",uc:"1f680",isCanonical:!0},":railway_car:":{unicode:["1f683"],fname:"1f683",uc:"1f683",isCanonical:!0},":bullettrain_side:":{unicode:["1f684"],fname:"1f684",uc:"1f684",isCanonical:!0},":bullettrain_front:":{unicode:["1f685"],fname:"1f685",uc:"1f685",isCanonical:!0},":metro:":{unicode:["1f687"],fname:"1f687",uc:"1f687",isCanonical:!0},":station:":{unicode:["1f689"],fname:"1f689",uc:"1f689",isCanonical:!0},":bus:":{unicode:["1f68c"],fname:"1f68c",uc:"1f68c",isCanonical:!0},":busstop:":{unicode:["1f68f"],fname:"1f68f",uc:"1f68f",isCanonical:!0},":ambulance:":{unicode:["1f691"],fname:"1f691",uc:"1f691",isCanonical:!0},":fire_engine:":{unicode:["1f692"],fname:"1f692",uc:"1f692",isCanonical:!0},":police_car:":{unicode:["1f693"],fname:"1f693",uc:"1f693",isCanonical:!0},":taxi:":{unicode:["1f695"],fname:"1f695",uc:"1f695",isCanonical:!0},":red_car:":{unicode:["1f697"],fname:"1f697",uc:"1f697",isCanonical:!0},":blue_car:":{unicode:["1f699"],fname:"1f699",uc:"1f699",isCanonical:!0},":truck:":{unicode:["1f69a"],fname:"1f69a",uc:"1f69a",isCanonical:!0},":ship:":{unicode:["1f6a2"],fname:"1f6a2",uc:"1f6a2",isCanonical:!0},":speedboat:":{unicode:["1f6a4"],fname:"1f6a4",uc:"1f6a4",isCanonical:!0},":traffic_light:":{unicode:["1f6a5"],fname:"1f6a5",uc:"1f6a5",isCanonical:!0},":construction:":{unicode:["1f6a7"],fname:"1f6a7",uc:"1f6a7",isCanonical:!0},":rotating_light:":{unicode:["1f6a8"],fname:"1f6a8",uc:"1f6a8",isCanonical:!0},":triangular_flag_on_post:":{unicode:["1f6a9"],fname:"1f6a9",uc:"1f6a9",isCanonical:!0},":door:":{unicode:["1f6aa"],fname:"1f6aa",uc:"1f6aa",isCanonical:!0},":no_entry_sign:":{unicode:["1f6ab"],fname:"1f6ab",uc:"1f6ab",isCanonical:!0},":smoking:":{unicode:["1f6ac"],fname:"1f6ac",uc:"1f6ac",isCanonical:!0},":no_smoking:":{unicode:["1f6ad"],fname:"1f6ad",uc:"1f6ad",isCanonical:!0},":bike:":{unicode:["1f6b2"],fname:"1f6b2",uc:"1f6b2",isCanonical:!0},":walking:":{unicode:["1f6b6"],fname:"1f6b6",uc:"1f6b6",isCanonical:!0},":mens:":{unicode:["1f6b9"],fname:"1f6b9",uc:"1f6b9",isCanonical:!0},":womens:":{unicode:["1f6ba"],fname:"1f6ba",uc:"1f6ba",isCanonical:!0},":restroom:":{unicode:["1f6bb"],fname:"1f6bb",uc:"1f6bb",isCanonical:!0},":baby_symbol:":{unicode:["1f6bc"],fname:"1f6bc",uc:"1f6bc",isCanonical:!0},":toilet:":{unicode:["1f6bd"],fname:"1f6bd",uc:"1f6bd",isCanonical:!0},":wc:":{unicode:["1f6be"],fname:"1f6be",uc:"1f6be",isCanonical:!0},":bath:":{unicode:["1f6c0"],fname:"1f6c0",uc:"1f6c0",isCanonical:!0},":metal:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!0},":sign_of_the_horns:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!1},":grinning:":{unicode:["1f600"],fname:"1f600",uc:"1f600",isCanonical:!0},":innocent:":{unicode:["1f607"],fname:"1f607",uc:"1f607",isCanonical:!0},":smiling_imp:":{unicode:["1f608"],fname:"1f608",uc:"1f608",isCanonical:!0},":sunglasses:":{unicode:["1f60e"],fname:"1f60e",uc:"1f60e",isCanonical:!0},":neutral_face:":{unicode:["1f610"],fname:"1f610",uc:"1f610",isCanonical:!0},":expressionless:":{unicode:["1f611"],fname:"1f611",uc:"1f611",isCanonical:!0},":confused:":{unicode:["1f615"],fname:"1f615",uc:"1f615",isCanonical:!0},":kissing:":{unicode:["1f617"],fname:"1f617",uc:"1f617",isCanonical:!0},":kissing_smiling_eyes:":{unicode:["1f619"],fname:"1f619",uc:"1f619",isCanonical:!0},":stuck_out_tongue:":{unicode:["1f61b"],fname:"1f61b",uc:"1f61b",isCanonical:!0},":worried:":{unicode:["1f61f"],fname:"1f61f",uc:"1f61f",isCanonical:!0},":frowning:":{unicode:["1f626"],fname:"1f626",uc:"1f626",isCanonical:!0},":anguished:":{unicode:["1f627"],fname:"1f627",uc:"1f627",isCanonical:!0},":grimacing:":{unicode:["1f62c"],fname:"1f62c",uc:"1f62c",isCanonical:!0},":open_mouth:":{unicode:["1f62e"],fname:"1f62e",uc:"1f62e",isCanonical:!0},":hushed:":{unicode:["1f62f"],fname:"1f62f",uc:"1f62f",isCanonical:!0},":sleeping:":{unicode:["1f634"],fname:"1f634",uc:"1f634",isCanonical:!0},":no_mouth:":{unicode:["1f636"],fname:"1f636",uc:"1f636",isCanonical:!0},":helicopter:":{unicode:["1f681"],fname:"1f681",uc:"1f681",isCanonical:!0},":steam_locomotive:":{unicode:["1f682"],fname:"1f682",uc:"1f682",isCanonical:!0},":train2:":{unicode:["1f686"],fname:"1f686",uc:"1f686",isCanonical:!0},":light_rail:":{unicode:["1f688"],fname:"1f688",uc:"1f688",isCanonical:!0},":tram:":{unicode:["1f68a"],fname:"1f68a",uc:"1f68a",isCanonical:!0},":oncoming_bus:":{unicode:["1f68d"],fname:"1f68d",uc:"1f68d",isCanonical:!0},":trolleybus:":{unicode:["1f68e"],fname:"1f68e",uc:"1f68e",isCanonical:!0},":minibus:":{unicode:["1f690"],fname:"1f690",uc:"1f690",isCanonical:!0},":oncoming_police_car:":{unicode:["1f694"],fname:"1f694",uc:"1f694",isCanonical:!0},":oncoming_taxi:":{unicode:["1f696"],fname:"1f696",uc:"1f696",isCanonical:!0},":oncoming_automobile:":{unicode:["1f698"],fname:"1f698",uc:"1f698",isCanonical:!0},":articulated_lorry:":{unicode:["1f69b"],fname:"1f69b",uc:"1f69b",isCanonical:!0},":tractor:":{unicode:["1f69c"],fname:"1f69c",uc:"1f69c",isCanonical:!0},":monorail:":{unicode:["1f69d"],fname:"1f69d",uc:"1f69d",isCanonical:!0},":mountain_railway:":{unicode:["1f69e"],fname:"1f69e",uc:"1f69e",isCanonical:!0},":suspension_railway:":{unicode:["1f69f"],fname:"1f69f",uc:"1f69f",isCanonical:!0},":mountain_cableway:":{unicode:["1f6a0"],fname:"1f6a0",uc:"1f6a0",isCanonical:!0},":aerial_tramway:":{unicode:["1f6a1"],fname:"1f6a1",uc:"1f6a1",isCanonical:!0},":rowboat:":{unicode:["1f6a3"],fname:"1f6a3",uc:"1f6a3",isCanonical:!0},":vertical_traffic_light:":{unicode:["1f6a6"],fname:"1f6a6",uc:"1f6a6",isCanonical:!0},":put_litter_in_its_place:":{unicode:["1f6ae"],fname:"1f6ae",uc:"1f6ae",isCanonical:!0},":do_not_litter:":{unicode:["1f6af"],fname:"1f6af",uc:"1f6af",isCanonical:!0},":potable_water:":{unicode:["1f6b0"],fname:"1f6b0",uc:"1f6b0",isCanonical:!0},":non-potable_water:":{unicode:["1f6b1"],fname:"1f6b1",uc:"1f6b1",isCanonical:!0},":no_bicycles:":{unicode:["1f6b3"],fname:"1f6b3",uc:"1f6b3",isCanonical:!0},":bicyclist:":{unicode:["1f6b4"],fname:"1f6b4",uc:"1f6b4",isCanonical:!0},":mountain_bicyclist:":{unicode:["1f6b5"],fname:"1f6b5",uc:"1f6b5",isCanonical:!0},":no_pedestrians:":{unicode:["1f6b7"],fname:"1f6b7",uc:"1f6b7",isCanonical:!0},":children_crossing:":{unicode:["1f6b8"],fname:"1f6b8",uc:"1f6b8",isCanonical:!0},":shower:":{unicode:["1f6bf"],fname:"1f6bf",uc:"1f6bf",isCanonical:!0},":bathtub:":{unicode:["1f6c1"],fname:"1f6c1",uc:"1f6c1",isCanonical:!0},":passport_control:":{unicode:["1f6c2"],fname:"1f6c2",uc:"1f6c2",isCanonical:!0},":customs:":{unicode:["1f6c3"],fname:"1f6c3",uc:"1f6c3",isCanonical:!0},":baggage_claim:":{unicode:["1f6c4"],fname:"1f6c4",uc:"1f6c4",isCanonical:!0},":left_luggage:":{unicode:["1f6c5"],fname:"1f6c5",uc:"1f6c5",isCanonical:!0},":earth_africa:":{unicode:["1f30d"],fname:"1f30d",uc:"1f30d",isCanonical:!0},":earth_americas:":{unicode:["1f30e"],fname:"1f30e",uc:"1f30e",isCanonical:!0},":globe_with_meridians:":{unicode:["1f310"],fname:"1f310",uc:"1f310",isCanonical:!0},":waxing_crescent_moon:":{unicode:["1f312"],fname:"1f312",uc:"1f312",isCanonical:!0},":waning_gibbous_moon:":{unicode:["1f316"],fname:"1f316",uc:"1f316",isCanonical:!0},":last_quarter_moon:":{unicode:["1f317"],fname:"1f317",uc:"1f317",isCanonical:!0},":waning_crescent_moon:":{unicode:["1f318"],fname:"1f318",uc:"1f318",isCanonical:!0},":new_moon_with_face:":{unicode:["1f31a"],fname:"1f31a",uc:"1f31a",isCanonical:!0},":last_quarter_moon_with_face:":{unicode:["1f31c"],fname:"1f31c",uc:"1f31c",isCanonical:!0},":full_moon_with_face:":{unicode:["1f31d"],fname:"1f31d",uc:"1f31d",isCanonical:!0},":sun_with_face:":{unicode:["1f31e"],fname:"1f31e",uc:"1f31e",isCanonical:!0},":evergreen_tree:":{unicode:["1f332"],fname:"1f332",uc:"1f332",isCanonical:!0},":deciduous_tree:":{unicode:["1f333"],fname:"1f333",uc:"1f333",isCanonical:!0},":lemon:":{unicode:["1f34b"],fname:"1f34b",uc:"1f34b",isCanonical:!0},":pear:":{unicode:["1f350"],fname:"1f350",uc:"1f350",isCanonical:!0},":baby_bottle:":{unicode:["1f37c"],fname:"1f37c",uc:"1f37c",isCanonical:!0},":horse_racing:":{unicode:["1f3c7"],fname:"1f3c7",uc:"1f3c7",isCanonical:!0},":rugby_football:":{unicode:["1f3c9"],fname:"1f3c9",uc:"1f3c9",isCanonical:!0},":european_post_office:":{unicode:["1f3e4"],fname:"1f3e4",uc:"1f3e4",isCanonical:!0},":rat:":{unicode:["1f400"],fname:"1f400",uc:"1f400",isCanonical:!0},":mouse2:":{unicode:["1f401"],fname:"1f401",uc:"1f401",isCanonical:!0},":ox:":{unicode:["1f402"],fname:"1f402",uc:"1f402",isCanonical:!0},":water_buffalo:":{unicode:["1f403"],fname:"1f403",uc:"1f403",isCanonical:!0},":cow2:":{unicode:["1f404"],fname:"1f404",uc:"1f404",isCanonical:!0},":tiger2:":{unicode:["1f405"],fname:"1f405",uc:"1f405",isCanonical:!0},":leopard:":{unicode:["1f406"],fname:"1f406",uc:"1f406",isCanonical:!0},":rabbit2:":{unicode:["1f407"],fname:"1f407",uc:"1f407",isCanonical:!0},":cat2:":{unicode:["1f408"],fname:"1f408",uc:"1f408",isCanonical:!0},":dragon:":{unicode:["1f409"],fname:"1f409",uc:"1f409",isCanonical:!0},":crocodile:":{unicode:["1f40a"],fname:"1f40a",uc:"1f40a",isCanonical:!0},":whale2:":{unicode:["1f40b"],fname:"1f40b",uc:"1f40b",isCanonical:!0},":ram:":{unicode:["1f40f"],fname:"1f40f",uc:"1f40f",isCanonical:!0},":goat:":{unicode:["1f410"],fname:"1f410",uc:"1f410",isCanonical:!0},":rooster:":{unicode:["1f413"],fname:"1f413",uc:"1f413",isCanonical:!0},":dog2:":{unicode:["1f415"],fname:"1f415",uc:"1f415",isCanonical:!0},":pig2:":{unicode:["1f416"],fname:"1f416",uc:"1f416",isCanonical:!0},":dromedary_camel:":{unicode:["1f42a"],fname:"1f42a",uc:"1f42a",isCanonical:!0},":busts_in_silhouette:":{unicode:["1f465"],fname:"1f465",uc:"1f465",isCanonical:!0},":two_men_holding_hands:":{unicode:["1f46c"],fname:"1f46c",uc:"1f46c",isCanonical:!0},":two_women_holding_hands:":{unicode:["1f46d"],fname:"1f46d",uc:"1f46d",isCanonical:!0},":thought_balloon:":{unicode:["1f4ad"],fname:"1f4ad",uc:"1f4ad",isCanonical:!0},":euro:":{unicode:["1f4b6"],fname:"1f4b6",uc:"1f4b6",isCanonical:!0},":pound:":{unicode:["1f4b7"],fname:"1f4b7",uc:"1f4b7",isCanonical:!0},":mailbox_with_mail:":{unicode:["1f4ec"],fname:"1f4ec",uc:"1f4ec",isCanonical:!0},":mailbox_with_no_mail:":{unicode:["1f4ed"],fname:"1f4ed",uc:"1f4ed",isCanonical:!0},":postal_horn:":{unicode:["1f4ef"],fname:"1f4ef",uc:"1f4ef",isCanonical:!0},":no_mobile_phones:":{unicode:["1f4f5"],fname:"1f4f5",uc:"1f4f5",isCanonical:!0},":twisted_rightwards_arrows:":{unicode:["1f500"],fname:"1f500",uc:"1f500",isCanonical:!0},":repeat:":{unicode:["1f501"],fname:"1f501",uc:"1f501",isCanonical:!0},":repeat_one:":{unicode:["1f502"],fname:"1f502",uc:"1f502",isCanonical:!0},":arrows_counterclockwise:":{unicode:["1f504"],fname:"1f504",uc:"1f504",isCanonical:!0},":low_brightness:":{unicode:["1f505"],fname:"1f505",uc:"1f505",isCanonical:!0},":high_brightness:":{unicode:["1f506"],fname:"1f506",uc:"1f506",isCanonical:!0},":mute:":{unicode:["1f507"],fname:"1f507",uc:"1f507",isCanonical:!0},":sound:":{unicode:["1f509"],fname:"1f509",uc:"1f509",isCanonical:!0},":no_bell:":{unicode:["1f515"],fname:"1f515",uc:"1f515",isCanonical:!0},":microscope:":{unicode:["1f52c"],fname:"1f52c",uc:"1f52c",isCanonical:!0},":telescope:":{unicode:["1f52d"],fname:"1f52d",uc:"1f52d",isCanonical:!0},":clock130:":{unicode:["1f55c"],fname:"1f55c",uc:"1f55c",isCanonical:!0},":clock230:":{unicode:["1f55d"],fname:"1f55d",uc:"1f55d",isCanonical:!0},":clock330:":{unicode:["1f55e"],fname:"1f55e",uc:"1f55e",isCanonical:!0},":clock430:":{unicode:["1f55f"],fname:"1f55f",uc:"1f55f",isCanonical:!0},":clock530:":{unicode:["1f560"],fname:"1f560",uc:"1f560",isCanonical:!0},":clock630:":{unicode:["1f561"],fname:"1f561",uc:"1f561",isCanonical:!0},":clock730:":{unicode:["1f562"],fname:"1f562",uc:"1f562",isCanonical:!0},":clock830:":{unicode:["1f563"],fname:"1f563",uc:"1f563",isCanonical:!0},":clock930:":{unicode:["1f564"],fname:"1f564",uc:"1f564",isCanonical:!0},":clock1030:":{unicode:["1f565"],fname:"1f565",uc:"1f565",isCanonical:!0},":clock1130:":{unicode:["1f566"],fname:"1f566",uc:"1f566",isCanonical:!0},":clock1230:":{unicode:["1f567"],fname:"1f567",uc:"1f567",isCanonical:!0},":speaker:":{unicode:["1f508"],fname:"1f508",uc:"1f508",isCanonical:!0},":train:":{unicode:["1f68b"],fname:"1f68b",uc:"1f68b",isCanonical:!0},":medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!0},":sports_medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!1},":flag_black:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!0},":waving_black_flag:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!1},":camera_with_flash:":{unicode:["1f4f8"],fname:"1f4f8",uc:"1f4f8",isCanonical:!0},":sleeping_accommodation:":{unicode:["1f6cc"],fname:"1f6cc",uc:"1f6cc",isCanonical:!0},":middle_finger:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!0},":reversed_hand_with_middle_finger_extended:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!1},":vulcan:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!1},":slight_frown:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!0},":slightly_frowning_face:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!1},":slight_smile:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!0},":slightly_smiling_face:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!1},":airplane_departure:":{unicode:["1f6eb"],fname:"1f6eb",uc:"1f6eb",isCanonical:!0},":airplane_arriving:":{unicode:["1f6ec"],fname:"1f6ec",uc:"1f6ec",isCanonical:!0},":tone1:":{unicode:["1f3fb"],fname:"1f3fb",uc:"1f3fb",isCanonical:!0},":tone2:":{unicode:["1f3fc"],fname:"1f3fc",uc:"1f3fc",isCanonical:!0},":tone3:":{unicode:["1f3fd"],fname:"1f3fd",uc:"1f3fd",isCanonical:!0},":tone4:":{unicode:["1f3fe"],fname:"1f3fe",uc:"1f3fe",isCanonical:!0},":tone5:":{unicode:["1f3ff"],fname:"1f3ff",uc:"1f3ff",isCanonical:!0},":upside_down:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!0},":upside_down_face:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!1},":money_mouth:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!0},":money_mouth_face:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!1},":nerd:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!0},":nerd_face:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!1},":hugging:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!0},":hugging_face:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!1},":rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!0},":face_with_rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!1},":thinking:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!0},":thinking_face:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!1},":zipper_mouth:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!0},":zipper_mouth_face:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!1},":thermometer_face:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!0},":face_with_thermometer:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!1},":head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!0},":face_with_head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!1},":robot:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!0},":robot_face:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!1},":lion_face:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!0},":lion:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!1},":unicorn:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!0},":unicorn_face:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!1},":scorpion:":{unicode:["1f982"],fname:"1f982",uc:"1f982",isCanonical:!0},":crab:":{unicode:["1f980"],fname:"1f980",uc:"1f980",isCanonical:!0},":turkey:":{unicode:["1f983"],fname:"1f983",uc:"1f983",isCanonical:!0},":cheese:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!0},":cheese_wedge:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!1},":hotdog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!0},":hot_dog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!1},":taco:":{unicode:["1f32e"],fname:"1f32e",uc:"1f32e",isCanonical:!0},":burrito:":{unicode:["1f32f"],fname:"1f32f",uc:"1f32f",isCanonical:!0},":popcorn:":{unicode:["1f37f"],fname:"1f37f",uc:"1f37f",isCanonical:!0},":champagne:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!0},":bottle_with_popping_cork:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!1},":bow_and_arrow:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!0},":archery:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!1},":amphora:":{unicode:["1f3fa"],fname:"1f3fa",uc:"1f3fa",isCanonical:!0},":place_of_worship:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!0},":worship_symbol:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!1},":kaaba:":{unicode:["1f54b"],fname:"1f54b",uc:"1f54b",isCanonical:!0},":mosque:":{unicode:["1f54c"],fname:"1f54c",uc:"1f54c",isCanonical:!0},":synagogue:":{unicode:["1f54d"],fname:"1f54d",uc:"1f54d",isCanonical:!0},":menorah:":{unicode:["1f54e"],fname:"1f54e",uc:"1f54e",isCanonical:!0},":prayer_beads:":{unicode:["1f4ff"],fname:"1f4ff",uc:"1f4ff",isCanonical:!0},":cricket:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!0},":cricket_bat_ball:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!1},":volleyball:":{unicode:["1f3d0"],fname:"1f3d0",uc:"1f3d0",isCanonical:!0},":field_hockey:":{unicode:["1f3d1"],fname:"1f3d1",uc:"1f3d1",isCanonical:!0},":hockey:":{unicode:["1f3d2"],fname:"1f3d2",uc:"1f3d2",isCanonical:!0},":ping_pong:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!0},":table_tennis:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!1},":badminton:":{unicode:["1f3f8"],fname:"1f3f8",uc:"1f3f8",isCanonical:!0},":drum:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!0},":drum_with_drumsticks:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!1},":shrimp:":{unicode:["1f990"],fname:"1f990",uc:"1f990",isCanonical:!0},":squid:":{unicode:["1f991"],fname:"1f991",uc:"1f991",isCanonical:!0},":egg:":{unicode:["1f95a"],fname:"1f95a",uc:"1f95a",isCanonical:!0},":milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!0},":glass_of_milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!1},":peanuts:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!0},":shelled_peanut:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!1},":kiwi:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!0},":kiwifruit:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!1},":pancakes:":{unicode:["1f95e"],fname:"1f95e",uc:"1f95e",isCanonical:!0},":regional_indicator_w:":{unicode:["1f1fc"],fname:"1f1fc",uc:"1f1fc",isCanonical:!0},":regional_indicator_v:":{unicode:["1f1fb"],fname:"1f1fb",uc:"1f1fb",isCanonical:!0},":regional_indicator_u:":{unicode:["1f1fa"],fname:"1f1fa",uc:"1f1fa",isCanonical:!0},":regional_indicator_t:":{unicode:["1f1f9"],fname:"1f1f9",uc:"1f1f9",isCanonical:!0},":regional_indicator_s:":{unicode:["1f1f8"],fname:"1f1f8",uc:"1f1f8",isCanonical:!0},":regional_indicator_r:":{unicode:["1f1f7"],fname:"1f1f7",uc:"1f1f7",isCanonical:!0},":regional_indicator_q:":{unicode:["1f1f6"],fname:"1f1f6",uc:"1f1f6",isCanonical:!0},":regional_indicator_p:":{unicode:["1f1f5"],fname:"1f1f5",uc:"1f1f5",isCanonical:!0},":regional_indicator_o:":{unicode:["1f1f4"],fname:"1f1f4",uc:"1f1f4",isCanonical:!0},":regional_indicator_n:":{unicode:["1f1f3"],fname:"1f1f3",uc:"1f1f3",isCanonical:!0},":regional_indicator_m:":{unicode:["1f1f2"],fname:"1f1f2",uc:"1f1f2",isCanonical:!0},":regional_indicator_l:":{unicode:["1f1f1"],fname:"1f1f1",uc:"1f1f1",isCanonical:!0},":regional_indicator_k:":{unicode:["1f1f0"],fname:"1f1f0",uc:"1f1f0",isCanonical:!0},":regional_indicator_j:":{unicode:["1f1ef"],fname:"1f1ef",uc:"1f1ef",isCanonical:!0},":regional_indicator_i:":{unicode:["1f1ee"],fname:"1f1ee",uc:"1f1ee",isCanonical:!0},":regional_indicator_h:":{unicode:["1f1ed"],fname:"1f1ed",uc:"1f1ed",isCanonical:!0},":regional_indicator_g:":{unicode:["1f1ec"],fname:"1f1ec",uc:"1f1ec",isCanonical:!0},":regional_indicator_f:":{unicode:["1f1eb"],fname:"1f1eb",uc:"1f1eb",isCanonical:!0},":regional_indicator_e:":{unicode:["1f1ea"],fname:"1f1ea",uc:"1f1ea",isCanonical:!0},":regional_indicator_d:":{unicode:["1f1e9"],fname:"1f1e9",uc:"1f1e9",isCanonical:!0},":regional_indicator_c:":{unicode:["1f1e8"],fname:"1f1e8",uc:"1f1e8",isCanonical:!0},":regional_indicator_b:":{unicode:["1f1e7"],fname:"1f1e7",uc:"1f1e7",isCanonical:!0},":regional_indicator_a:":{unicode:["1f1e6"],fname:"1f1e6",uc:"1f1e6",isCanonical:!0},":fast_forward:":{unicode:["23e9"],fname:"23e9",uc:"23e9",isCanonical:!0},":rewind:":{unicode:["23ea"],fname:"23ea",uc:"23ea",isCanonical:!0},":arrow_double_up:":{unicode:["23eb"],fname:"23eb",uc:"23eb",isCanonical:!0},":arrow_double_down:":{unicode:["23ec"],fname:"23ec",uc:"23ec",isCanonical:!0},":alarm_clock:":{unicode:["23f0"],fname:"23f0",uc:"23f0",isCanonical:!0},":hourglass_flowing_sand:":{unicode:["23f3"],fname:"23f3",uc:"23f3",isCanonical:!0},":ophiuchus:":{unicode:["26ce"],fname:"26ce",uc:"26ce",isCanonical:!0},":white_check_mark:":{unicode:["2705"],fname:"2705",uc:"2705",isCanonical:!0},":fist:":{unicode:["270a"],fname:"270a",uc:"270a",isCanonical:!0},":raised_hand:":{unicode:["270b"],fname:"270b",uc:"270b",isCanonical:!0},":sparkles:":{unicode:["2728"],fname:"2728",uc:"2728",isCanonical:!0},":x:":{unicode:["274c"],fname:"274c",uc:"274c",isCanonical:!0},":negative_squared_cross_mark:":{unicode:["274e"],fname:"274e",uc:"274e",isCanonical:!0},":question:":{unicode:["2753"],fname:"2753",uc:"2753",isCanonical:!0},":grey_question:":{unicode:["2754"],fname:"2754",uc:"2754",isCanonical:!0},":grey_exclamation:":{unicode:["2755"],fname:"2755",uc:"2755",isCanonical:!0},":heavy_plus_sign:":{unicode:["2795"],fname:"2795",uc:"2795",isCanonical:!0},":heavy_minus_sign:":{unicode:["2796"],fname:"2796",uc:"2796",isCanonical:!0},":heavy_division_sign:":{unicode:["2797"],fname:"2797",uc:"2797",isCanonical:!0},":curly_loop:":{unicode:["27b0"],fname:"27b0",uc:"27b0",isCanonical:!0},":loop:":{unicode:["27bf"],fname:"27bf",uc:"27bf",isCanonical:!0}};var emoji,tmpShortNames=[];for(emoji in ns.emojioneList)ns.emojioneList.hasOwnProperty(emoji)&&tmpShortNames.push(emoji.replace(/[+]/g,"\\$&"));ns.shortnames=tmpShortNames.join("|"),ns.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f642",":-)":"1f642","=]":"1f642","=)":"1f642",":]":"1f642","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},ns.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",ns.unicodeRegexp="(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)",
ns.jsEscapeMap={"👩‍❤️‍💋‍👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","👩❤💋👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤💋👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-200d-1f468-200d-1f466-200d-1f466","👨👨👦👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-200d-1f468-200d-1f467-200d-1f466","👨👨👧👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-200d-1f468-200d-1f467-200d-1f467","👨👨👧👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-200d-1f469-200d-1f466-200d-1f466","👨👩👦👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-200d-1f469-200d-1f467-200d-1f466","👨👩👧👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-200d-1f469-200d-1f467-200d-1f467","👨👩👧👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-200d-1f469-200d-1f466-200d-1f466","👩👩👦👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-200d-1f469-200d-1f467-200d-1f466","👩👩👧👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-200d-1f469-200d-1f467-200d-1f467","👩👩👧👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-200d-2764-fe0f-200d-1f469","👩❤👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-200d-2764-fe0f-200d-1f468","👨❤👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-200d-1f468-200d-1f466","👨👨👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-200d-1f468-200d-1f467","👨👨👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-200d-1f469-200d-1f467","👨👩👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-200d-1f469-200d-1f466","👩👩👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-200d-1f469-200d-1f467","👩👩👧":"1f469-1f469-1f467","🏳️‍🌈":"1f3f3-fe0f-200d-1f308","🏳🌈":"1f3f3-1f308","👁‍🗨":"1f441-200d-1f5e8","👁🗨":"1f441-1f5e8","#️⃣":"0023-fe0f-20e3","#⃣":"0023-20e3","0️⃣":"0030-fe0f-20e3","0⃣":"0030-20e3","1️⃣":"0031-fe0f-20e3","1⃣":"0031-20e3","2️⃣":"0032-fe0f-20e3","2⃣":"0032-20e3","3️⃣":"0033-fe0f-20e3","3⃣":"0033-20e3","4️⃣":"0034-fe0f-20e3","4⃣":"0034-20e3","5️⃣":"0035-fe0f-20e3","5⃣":"0035-20e3","6️⃣":"0036-fe0f-20e3","6⃣":"0036-20e3","7️⃣":"0037-fe0f-20e3","7⃣":"0037-20e3","8️⃣":"0038-fe0f-20e3","8⃣":"0038-20e3","9️⃣":"0039-fe0f-20e3","9⃣":"0039-20e3","*️⃣":"002a-fe0f-20e3","*⃣":"002a-20e3","🤾🏿":"1f93e-1f3ff","🤾🏾":"1f93e-1f3fe","🤾🏽":"1f93e-1f3fd","🤾🏼":"1f93e-1f3fc","🤾🏻":"1f93e-1f3fb","🤽🏿":"1f93d-1f3ff","🤽🏾":"1f93d-1f3fe","🤽🏽":"1f93d-1f3fd","🤽🏼":"1f93d-1f3fc","🤽🏻":"1f93d-1f3fb","🤼🏿":"1f93c-1f3ff","🤼🏾":"1f93c-1f3fe","🤼🏽":"1f93c-1f3fd","🤼🏼":"1f93c-1f3fc","🤼🏻":"1f93c-1f3fb","🤹🏿":"1f939-1f3ff","🤹🏾":"1f939-1f3fe","🤹🏽":"1f939-1f3fd","🤹🏼":"1f939-1f3fc","🤹🏻":"1f939-1f3fb","🤸🏿":"1f938-1f3ff","🤸🏾":"1f938-1f3fe","🤸🏽":"1f938-1f3fd","🤸🏼":"1f938-1f3fc","🤸🏻":"1f938-1f3fb","🤷🏿":"1f937-1f3ff","🤷🏾":"1f937-1f3fe","🤷🏽":"1f937-1f3fd","🤷🏼":"1f937-1f3fc","🤷🏻":"1f937-1f3fb","🤶🏿":"1f936-1f3ff","🤶🏾":"1f936-1f3fe","🤶🏽":"1f936-1f3fd","🤶🏼":"1f936-1f3fc","🤶🏻":"1f936-1f3fb","🤵🏿":"1f935-1f3ff","🤵🏾":"1f935-1f3fe","🤵🏽":"1f935-1f3fd","🤵🏼":"1f935-1f3fc","🤵🏻":"1f935-1f3fb","🤴🏿":"1f934-1f3ff","🤴🏾":"1f934-1f3fe","🤴🏽":"1f934-1f3fd","🤴🏼":"1f934-1f3fc","🤴🏻":"1f934-1f3fb","🤳🏿":"1f933-1f3ff","🤳🏾":"1f933-1f3fe","🤳🏽":"1f933-1f3fd","🤳🏼":"1f933-1f3fc","🤳🏻":"1f933-1f3fb","🤰🏿":"1f930-1f3ff","🤰🏾":"1f930-1f3fe","🤰🏽":"1f930-1f3fd","🤰🏼":"1f930-1f3fc","🤰🏻":"1f930-1f3fb","🤦🏿":"1f926-1f3ff","🤦🏾":"1f926-1f3fe","🤦🏽":"1f926-1f3fd","🤦🏼":"1f926-1f3fc","🤦🏻":"1f926-1f3fb","🤞🏿":"1f91e-1f3ff","🤞🏾":"1f91e-1f3fe","🤞🏽":"1f91e-1f3fd","🤞🏼":"1f91e-1f3fc","🤞🏻":"1f91e-1f3fb","🤝🏿":"1f91d-1f3ff","🤝🏾":"1f91d-1f3fe","🤝🏽":"1f91d-1f3fd","🤝🏼":"1f91d-1f3fc","🤝🏻":"1f91d-1f3fb","🤜🏿":"1f91c-1f3ff","🤜🏾":"1f91c-1f3fe","🤜🏽":"1f91c-1f3fd","🤜🏼":"1f91c-1f3fc","🤜🏻":"1f91c-1f3fb","🤛🏿":"1f91b-1f3ff","🤛🏾":"1f91b-1f3fe","🤛🏽":"1f91b-1f3fd","🤛🏼":"1f91b-1f3fc","🤛🏻":"1f91b-1f3fb","🤚🏿":"1f91a-1f3ff","🤚🏾":"1f91a-1f3fe","🤚🏽":"1f91a-1f3fd","🤚🏼":"1f91a-1f3fc","🤚🏻":"1f91a-1f3fb","🤙🏿":"1f919-1f3ff","🤙🏾":"1f919-1f3fe","🤙🏽":"1f919-1f3fd","🤙🏼":"1f919-1f3fc","🤙🏻":"1f919-1f3fb","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕺🏿":"1f57a-1f3ff","🕺🏾":"1f57a-1f3fe","🕺🏽":"1f57a-1f3fd","🕺🏼":"1f57a-1f3fc","🕺🏻":"1f57a-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004-fe0f","🀄":"1f004","🅿️":"1f17f-fe0f","🅿":"1f17f","🈂️":"1f202-fe0f","🈂":"1f202","🈚️":"1f21a-fe0f","🈚":"1f21a","🈯️":"1f22f-fe0f","🈯":"1f22f","🈷️":"1f237-fe0f","🈷":"1f237","🎞️":"1f39e-fe0f","🎞":"1f39e","🎟️":"1f39f-fe0f","🎟":"1f39f","🏋️":"1f3cb-fe0f","🏋":"1f3cb","🏌️":"1f3cc-fe0f","🏌":"1f3cc","🏍️":"1f3cd-fe0f","🏍":"1f3cd","🏎️":"1f3ce-fe0f","🏎":"1f3ce","🎖️":"1f396-fe0f","🎖":"1f396","🎗️":"1f397-fe0f","🎗":"1f397","🌶️":"1f336-fe0f","🌶":"1f336","🌧️":"1f327-fe0f","🌧":"1f327","🌨️":"1f328-fe0f","🌨":"1f328","🌩️":"1f329-fe0f","🌩":"1f329","🌪️":"1f32a-fe0f","🌪":"1f32a","🌫️":"1f32b-fe0f","🌫":"1f32b","🌬️":"1f32c-fe0f","🌬":"1f32c","🐿️":"1f43f-fe0f","🐿":"1f43f","🕷️":"1f577-fe0f","🕷":"1f577","🕸️":"1f578-fe0f","🕸":"1f578","🌡️":"1f321-fe0f","🌡":"1f321","🎙️":"1f399-fe0f","🎙":"1f399","🎚️":"1f39a-fe0f","🎚":"1f39a","🎛️":"1f39b-fe0f","🎛":"1f39b","🏳️":"1f3f3-fe0f","🏳":"1f3f3","🏵️":"1f3f5-fe0f","🏵":"1f3f5","🏷️":"1f3f7-fe0f","🏷":"1f3f7","📽️":"1f4fd-fe0f","📽":"1f4fd","🕉️":"1f549-fe0f","🕉":"1f549","🕊️":"1f54a-fe0f","🕊":"1f54a","🕯️":"1f56f-fe0f","🕯":"1f56f","🕰️":"1f570-fe0f","🕰":"1f570","🕳️":"1f573-fe0f","🕳":"1f573","🕶️":"1f576-fe0f","🕶":"1f576","🕹️":"1f579-fe0f","🕹":"1f579","🖇️":"1f587-fe0f","🖇":"1f587","🖊️":"1f58a-fe0f","🖊":"1f58a","🖋️":"1f58b-fe0f","🖋":"1f58b","🖌️":"1f58c-fe0f","🖌":"1f58c","🖍️":"1f58d-fe0f","🖍":"1f58d","🖥️":"1f5a5-fe0f","🖥":"1f5a5","🖨️":"1f5a8-fe0f","🖨":"1f5a8","🖲️":"1f5b2-fe0f","🖲":"1f5b2","🖼️":"1f5bc-fe0f","🖼":"1f5bc","🗂️":"1f5c2-fe0f","🗂":"1f5c2","🗃️":"1f5c3-fe0f","🗃":"1f5c3","🗄️":"1f5c4-fe0f","🗄":"1f5c4","🗑️":"1f5d1-fe0f","🗑":"1f5d1","🗒️":"1f5d2-fe0f","🗒":"1f5d2","🗓️":"1f5d3-fe0f","🗓":"1f5d3","🗜️":"1f5dc-fe0f","🗜":"1f5dc","🗝️":"1f5dd-fe0f","🗝":"1f5dd","🗞️":"1f5de-fe0f","🗞":"1f5de","🗡️":"1f5e1-fe0f","🗡":"1f5e1","🗣️":"1f5e3-fe0f","🗣":"1f5e3","🗨️":"1f5e8-fe0f","🗨":"1f5e8","🗯️":"1f5ef-fe0f","🗯":"1f5ef","🗳️":"1f5f3-fe0f","🗳":"1f5f3","🗺️":"1f5fa-fe0f","🗺":"1f5fa","🛠️":"1f6e0-fe0f","🛠":"1f6e0","🛡️":"1f6e1-fe0f","🛡":"1f6e1","🛢️":"1f6e2-fe0f","🛢":"1f6e2","🛰️":"1f6f0-fe0f","🛰":"1f6f0","🍽️":"1f37d-fe0f","🍽":"1f37d","👁️":"1f441-fe0f","👁":"1f441","🕴️":"1f574-fe0f","🕴":"1f574","🕵️":"1f575-fe0f","🕵":"1f575","🖐️":"1f590-fe0f","🖐":"1f590","🏔️":"1f3d4-fe0f","🏔":"1f3d4","🏕️":"1f3d5-fe0f","🏕":"1f3d5","🏖️":"1f3d6-fe0f","🏖":"1f3d6","🏗️":"1f3d7-fe0f","🏗":"1f3d7","🏘️":"1f3d8-fe0f","🏘":"1f3d8","🏙️":"1f3d9-fe0f","🏙":"1f3d9","🏚️":"1f3da-fe0f","🏚":"1f3da","🏛️":"1f3db-fe0f","🏛":"1f3db","🏜️":"1f3dc-fe0f","🏜":"1f3dc","🏝️":"1f3dd-fe0f","🏝":"1f3dd","🏞️":"1f3de-fe0f","🏞":"1f3de","🏟️":"1f3df-fe0f","🏟":"1f3df","🛋️":"1f6cb-fe0f","🛋":"1f6cb","🛍️":"1f6cd-fe0f","🛍":"1f6cd","🛎️":"1f6ce-fe0f","🛎":"1f6ce","🛏️":"1f6cf-fe0f","🛏":"1f6cf","🛣️":"1f6e3-fe0f","🛣":"1f6e3","🛤️":"1f6e4-fe0f","🛤":"1f6e4","🛥️":"1f6e5-fe0f","🛥":"1f6e5","🛩️":"1f6e9-fe0f","🛩":"1f6e9","🛳️":"1f6f3-fe0f","🛳":"1f6f3","🌤️":"1f324-fe0f","🌤":"1f324","🌥️":"1f325-fe0f","🌥":"1f325","🌦️":"1f326-fe0f","🌦":"1f326","🖱️":"1f5b1-fe0f","🖱":"1f5b1","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9-fe0f","©":"00a9","®️":"00ae-fe0f","®":"00ae","‼️":"203c-fe0f","‼":"203c","⁉️":"2049-fe0f","⁉":"2049","™️":"2122-fe0f","™":"2122","ℹ️":"2139-fe0f","ℹ":"2139","↔️":"2194-fe0f","↔":"2194","↕️":"2195-fe0f","↕":"2195","↖️":"2196-fe0f","↖":"2196","↗️":"2197-fe0f","↗":"2197","↘️":"2198-fe0f","↘":"2198","↙️":"2199-fe0f","↙":"2199","↩️":"21a9-fe0f","↩":"21a9","↪️":"21aa-fe0f","↪":"21aa","⌚️":"231a-fe0f","⌚":"231a","⌛️":"231b-fe0f","⌛":"231b","Ⓜ️":"24c2-fe0f","Ⓜ":"24c2","▪️":"25aa-fe0f","▪":"25aa","▫️":"25ab-fe0f","▫":"25ab","▶️":"25b6-fe0f","▶":"25b6","◀️":"25c0-fe0f","◀":"25c0","◻️":"25fb-fe0f","◻":"25fb","◼️":"25fc-fe0f","◼":"25fc","◽️":"25fd-fe0f","◽":"25fd","◾️":"25fe-fe0f","◾":"25fe","☀️":"2600-fe0f","☀":"2600","☁️":"2601-fe0f","☁":"2601","☎️":"260e-fe0f","☎":"260e","☑️":"2611-fe0f","☑":"2611","☔️":"2614-fe0f","☔":"2614","☕️":"2615-fe0f","☕":"2615","☝️":"261d-fe0f","☝":"261d","☺️":"263a-fe0f","☺":"263a","♈️":"2648-fe0f","♈":"2648","♉️":"2649-fe0f","♉":"2649","♊️":"264a-fe0f","♊":"264a","♋️":"264b-fe0f","♋":"264b","♌️":"264c-fe0f","♌":"264c","♍️":"264d-fe0f","♍":"264d","♎️":"264e-fe0f","♎":"264e","♏️":"264f-fe0f","♏":"264f","♐️":"2650-fe0f","♐":"2650","♑️":"2651-fe0f","♑":"2651","♒️":"2652-fe0f","♒":"2652","♓️":"2653-fe0f","♓":"2653","♠️":"2660-fe0f","♠":"2660","♣️":"2663-fe0f","♣":"2663","♥️":"2665-fe0f","♥":"2665","♦️":"2666-fe0f","♦":"2666","♨️":"2668-fe0f","♨":"2668","♻️":"267b-fe0f","♻":"267b","♿️":"267f-fe0f","♿":"267f","⚓️":"2693-fe0f","⚓":"2693","⚠️":"26a0-fe0f","⚠":"26a0","⚡️":"26a1-fe0f","⚡":"26a1","⚪️":"26aa-fe0f","⚪":"26aa","⚫️":"26ab-fe0f","⚫":"26ab","⚽️":"26bd-fe0f","⚽":"26bd","⚾️":"26be-fe0f","⚾":"26be","⛄️":"26c4-fe0f","⛄":"26c4","⛅️":"26c5-fe0f","⛅":"26c5","⛔️":"26d4-fe0f","⛔":"26d4","⛪️":"26ea-fe0f","⛪":"26ea","⛲️":"26f2-fe0f","⛲":"26f2","⛳️":"26f3-fe0f","⛳":"26f3","⛵️":"26f5-fe0f","⛵":"26f5","⛺️":"26fa-fe0f","⛺":"26fa","⛽️":"26fd-fe0f","⛽":"26fd","✂️":"2702-fe0f","✂":"2702","✈️":"2708-fe0f","✈":"2708","✉️":"2709-fe0f","✉":"2709","✌️":"270c-fe0f","✌":"270c","✏️":"270f-fe0f","✏":"270f","✒️":"2712-fe0f","✒":"2712","✔️":"2714-fe0f","✔":"2714","✖️":"2716-fe0f","✖":"2716","✳️":"2733-fe0f","✳":"2733","✴️":"2734-fe0f","✴":"2734","❄️":"2744-fe0f","❄":"2744","❇️":"2747-fe0f","❇":"2747","❗️":"2757-fe0f","❗":"2757","❤️":"2764-fe0f","❤":"2764","➡️":"27a1-fe0f","➡":"27a1","⤴️":"2934-fe0f","⤴":"2934","⤵️":"2935-fe0f","⤵":"2935","⬅️":"2b05-fe0f","⬅":"2b05","⬆️":"2b06-fe0f","⬆":"2b06","⬇️":"2b07-fe0f","⬇":"2b07","⬛️":"2b1b-fe0f","⬛":"2b1b","⬜️":"2b1c-fe0f","⬜":"2b1c","⭐️":"2b50-fe0f","⭐":"2b50","⭕️":"2b55-fe0f","⭕":"2b55","〰️":"3030-fe0f","〰":"3030","〽️":"303d-fe0f","〽":"303d","㊗️":"3297-fe0f","㊗":"3297","㊙️":"3299-fe0f","㊙":"3299","✝️":"271d-fe0f","✝":"271d","⌨️":"2328-fe0f","⌨":"2328","✍️":"270d-fe0f","✍":"270d","⏏️":"23cf-fe0f","⏏":"23cf","⏭️":"23ed-fe0f","⏭":"23ed","⏮️":"23ee-fe0f","⏮":"23ee","⏯️":"23ef-fe0f","⏯":"23ef","⏱️":"23f1-fe0f","⏱":"23f1","⏲️":"23f2-fe0f","⏲":"23f2","⏸️":"23f8-fe0f","⏸":"23f8","⏹️":"23f9-fe0f","⏹":"23f9","⏺️":"23fa-fe0f","⏺":"23fa","☂️":"2602-fe0f","☂":"2602","☃️":"2603-fe0f","☃":"2603","☄️":"2604-fe0f","☄":"2604","☘️":"2618-fe0f","☘":"2618","☠️":"2620-fe0f","☠":"2620","☢️":"2622-fe0f","☢":"2622","☣️":"2623-fe0f","☣":"2623","☦️":"2626-fe0f","☦":"2626","☪️":"262a-fe0f","☪":"262a","☮️":"262e-fe0f","☮":"262e","☯️":"262f-fe0f","☯":"262f","☸️":"2638-fe0f","☸":"2638","☹️":"2639-fe0f","☹":"2639","⚒️":"2692-fe0f","⚒":"2692","⚔️":"2694-fe0f","⚔":"2694","⚖️":"2696-fe0f","⚖":"2696","⚗️":"2697-fe0f","⚗":"2697","⚙️":"2699-fe0f","⚙":"2699","⚛️":"269b-fe0f","⚛":"269b","⚜️":"269c-fe0f","⚜":"269c","⚰️":"26b0-fe0f","⚰":"26b0","⚱️":"26b1-fe0f","⚱":"26b1","⛈️":"26c8-fe0f","⛈":"26c8","⛏️":"26cf-fe0f","⛏":"26cf","⛑️":"26d1-fe0f","⛑":"26d1","⛓️":"26d3-fe0f","⛓":"26d3","⛩️":"26e9-fe0f","⛩":"26e9","⛰️":"26f0-fe0f","⛰":"26f0","⛱️":"26f1-fe0f","⛱":"26f1","⛴️":"26f4-fe0f","⛴":"26f4","⛷️":"26f7-fe0f","⛷":"26f7","⛸️":"26f8-fe0f","⛸":"26f8","⛹️":"26f9-fe0f","⛹":"26f9","✡️":"2721-fe0f","✡":"2721","❣️":"2763-fe0f","❣":"2763","🥉":"1f949","🥈":"1f948","🥇":"1f947","🤺":"1f93a","🥅":"1f945","🤾":"1f93e","🇿":"1f1ff","🤽":"1f93d","🥋":"1f94b","🥊":"1f94a","🤼":"1f93c","🤹":"1f939","🤸":"1f938","🛶":"1f6f6","🛵":"1f6f5","🛴":"1f6f4","🛒":"1f6d2","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🛑":"1f6d1","🆎":"1f18e","🆑":"1f191","🇾":"1f1fe","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🥄":"1f944","🆙":"1f199","🆚":"1f19a","🥂":"1f942","🥃":"1f943","🈁":"1f201","🥙":"1f959","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🥘":"1f958","🈸":"1f238","🈹":"1f239","🥗":"1f957","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🥖":"1f956","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🥕":"1f955","🌇":"1f307","🌈":"1f308","🥔":"1f954","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🥓":"1f953","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🥒":"1f952","🌠":"1f320","🌰":"1f330","🥑":"1f951","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🥐":"1f950","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🥀":"1f940","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🦏":"1f98f","🍔":"1f354","🍕":"1f355","🍖":"1f356","🦎":"1f98e","🍗":"1f357","🍘":"1f358","🍙":"1f359","🦍":"1f98d","🍚":"1f35a","🍛":"1f35b","🦌":"1f98c","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🦋":"1f98b","🍠":"1f360","🍡":"1f361","🦊":"1f98a","🍢":"1f362","🍣":"1f363","🦉":"1f989","🍤":"1f364","🍥":"1f365","🦈":"1f988","🍦":"1f366","🦇":"1f987","🍧":"1f367","🇽":"1f1fd","🍨":"1f368","🦆":"1f986","🍩":"1f369","🦅":"1f985","🍪":"1f36a","🖤":"1f5a4","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🤞":"1f91e","🍰":"1f370","🍱":"1f371","🍲":"1f372","🤝":"1f91d","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🤛":"1f91b","🤜":"1f91c","🎄":"1f384","🎅":"1f385","🎆":"1f386","🤚":"1f91a","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🤙":"1f919","🎍":"1f38d","🕺":"1f57a","🎎":"1f38e","🤳":"1f933","🎏":"1f38f","🤰":"1f930","🎐":"1f390","🤦":"1f926","🤷":"1f937","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🤶":"1f936","🎨":"1f3a8","🤵":"1f935","🎩":"1f3a9","🎪":"1f3aa","🤴":"1f934","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🤧":"1f927","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🤥":"1f925","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🤤":"1f924","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🤣":"1f923","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🤢":"1f922","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🤡":"1f921","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🤠":"1f920","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682",
-"🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🏅":"1f3c5","🏴":"1f3f4","📸":"1f4f8","🛌":"1f6cc","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🛫":"1f6eb","🛬":"1f6ec","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥁":"1f941","🦐":"1f990","🦑":"1f991","🥚":"1f95a","🥛":"1f95b","🥜":"1f95c","🥝":"1f95d","🥞":"1f95e","🇼":"1f1fc","🇻":"1f1fb","🇺":"1f1fa","🇹":"1f1f9","🇸":"1f1f8","🇷":"1f1f7","🇶":"1f1f6","🇵":"1f1f5","🇴":"1f1f4","🇳":"1f1f3","🇲":"1f1f2","🇱":"1f1f1","🇰":"1f1f0","🇯":"1f1ef","🇮":"1f1ee","🇭":"1f1ed","🇬":"1f1ec","🇫":"1f1eb","🇪":"1f1ea","🇩":"1f1e9","🇨":"1f1e8","🇧":"1f1e7","🇦":"1f1e6","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✅":"2705","✊":"270a","✋":"270b","✨":"2728","❌":"274c","❎":"274e","❓":"2753","❔":"2754","❕":"2755","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","©":"00a9","®":"00ae","‼":"203c","⁉":"2049","™":"2122","ℹ":"2139","↔":"2194","↕":"2195","↖":"2196","↗":"2197","↘":"2198","↙":"2199","↩":"21a9","↪":"21aa","⌚":"231a","⌛":"231b","Ⓜ":"24c2","▪":"25aa","▫":"25ab","▶":"25b6","◀":"25c0","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","☀":"2600","☁":"2601","☎":"260e","☑":"2611","☔":"2614","☕":"2615","☝":"261d","☺":"263a","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","♠":"2660","♣":"2663","♥":"2665","♦":"2666","♨":"2668","♻":"267b","♿":"267f","⚓":"2693","⚠":"26a0","⚡":"26a1","⚪":"26aa","⚫":"26ab","⚽":"26bd","⚾":"26be","⛄":"26c4","⛅":"26c5","⛔":"26d4","⛪":"26ea","⛲":"26f2","⛳":"26f3","⛵":"26f5","⛺":"26fa","⛽":"26fd","✂":"2702","✈":"2708","✉":"2709","✌":"270c","✏":"270f","✒":"2712","✔":"2714","✖":"2716","✳":"2733","✴":"2734","❄":"2744","❇":"2747","❗":"2757","❤":"2764","➡":"27a1","⤴":"2934","⤵":"2935","⬅":"2b05","⬆":"2b06","⬇":"2b07","⬛":"2b1b","⬜":"2b1c","⭐":"2b50","⭕":"2b55","〰":"3030","〽":"303d","㊗":"3297","㊙":"3299","🀄":"1f004","🅿":"1f17f","🈂":"1f202","🈚":"1f21a","🈯":"1f22f","🈷":"1f237","🎞":"1f39e","🎟":"1f39f","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏵":"1f3f5","🏷":"1f3f7","📽":"1f4fd","✝":"271d","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗨":"1f5e8","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","✍":"270d","🖐":"1f590","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛳":"1f6f3","⏏":"23cf","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☂":"2602","☃":"2603","☄":"2604","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☪":"262a","☮":"262e","☯":"262f","☸":"2638","☹":"2639","⚒":"2692","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9","✡":"2721","❣":"2763","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1"},ns.imagePathPNG="https://cdn.jsdelivr.net/emojione/assets/png/",ns.imagePathSVG="https://cdn.jsdelivr.net/emojione/assets/svg/",ns.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",ns.imageType="png",ns.imageTitleTag=!0,ns.sprites=!1,ns.unicodeAlt=!0,ns.ascii=!1,ns.cacheBustParam="?v=2.2.7",ns.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")","gi"),ns.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),ns.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")","gi"),ns.toImage=function(str){return str=ns.unicodeToImage(str),str=ns.shortnameToImage(str)},ns.unifyUnicode=function(str){return str=ns.toShort(str),str=ns.shortnameToUnicode(str)},ns.shortnameToAscii=function(str){var unicode,unicodeToAscii=ns.objectFlip(ns.asciiList);return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],"undefined"!=typeof unicodeToAscii[unicode]?unicodeToAscii[unicode]:shortname):shortname})},ns.shortnameToUnicode=function(str){var unicode,fname,uc;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[0].toUpperCase(),fname=ns.emojioneList[shortname].fname,uc=ns.emojioneList[shortname].uc,ns.convert(uc)):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3].toUpperCase(),m2+ns.convert(unicode)):entire})),str},ns.shortnameToImage=function(str){var replaceWith,unicode,alt,title;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],title=ns.imageTitleTag?'title="'+shortname+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):shortname,replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3],title=ns.imageTitleTag?'title="'+ns.escapeHTML(m3)+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):ns.escapeHTML(m3),replaceWith="png"===ns.imageType?ns.sprites?m2+'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":m2+'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):entire})),str},ns.unicodeToImage=function(str){var replaceWith,unicode,short,fname,alt,title,mappedUnicode=ns.mapUnicodeToShort();return str=str.replace(ns.regUnicode,function(unicodeChar){return"undefined"!=typeof unicodeChar&&""!==unicodeChar&&unicodeChar in ns.jsEscapeMap?(unicode=ns.jsEscapeMap[unicodeChar],short=mappedUnicode[unicode],fname=ns.emojioneList[short].fname,alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):short,title=ns.imageTitleTag?'title="'+short+'"':"",replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+fname+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathSVG+fname+".svg"+ns.cacheBustParam+'"/>'):unicodeChar})},ns.toShort=function(str){var find=ns.getUnicodeReplacementRegEx(),replacementList=ns.mapUnicodeCharactersToShort();return ns.replaceAll(str,find,replacementList)},ns.convert=function(unicode){if(unicode.indexOf("-")>-1){for(var parts=[],s=unicode.split("-"),i=0;i<s.length;i++){var part=parseInt(s[i],16);if(part>=65536&&part<=1114111){var hi=Math.floor((part-65536)/1024)+55296,lo=(part-65536)%1024+56320;part=String.fromCharCode(hi)+String.fromCharCode(lo)}else part=String.fromCharCode(part);parts.push(part)}return parts.join("")}var s=parseInt(unicode,16);if(s>=65536&&s<=1114111){var hi=Math.floor((s-65536)/1024)+55296,lo=(s-65536)%1024+56320;return String.fromCharCode(hi)+String.fromCharCode(lo)}return String.fromCharCode(s)},ns.escapeHTML=function(string){var escaped={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return string.replace(/[&<>"']/g,function(match){return escaped[match]})},ns.unescapeHTML=function(string){var unescaped={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(match){return unescaped[match]})},ns.mapEmojioneList=function(addToMapStorage){for(var shortname in ns.emojioneList)if(ns.emojioneList.hasOwnProperty(shortname))for(var i=0,len=ns.emojioneList[shortname].unicode.length;i<len;i++){var unicode=ns.emojioneList[shortname].unicode[i];addToMapStorage(unicode,shortname)}},ns.mapUnicodeToShort=function(){return ns.memMapShortToUnicode||(ns.memMapShortToUnicode={},ns.mapEmojioneList(function(unicode,shortname){ns.memMapShortToUnicode[unicode]=shortname})),ns.memMapShortToUnicode},ns.memoizeReplacement=function(){if(!ns.unicodeReplacementRegEx||!ns.memMapShortToUnicodeCharacters){var unicodeList=[];ns.memMapShortToUnicodeCharacters={},ns.mapEmojioneList(function(unicode,shortname){var emojiCharacter=ns.convert(unicode);ns.emojioneList[shortname].isCanonical&&(ns.memMapShortToUnicodeCharacters[emojiCharacter]=shortname),unicodeList.push(emojiCharacter)}),ns.unicodeReplacementRegEx=unicodeList.join("|")}},ns.mapUnicodeCharactersToShort=function(){return ns.memoizeReplacement(),ns.memMapShortToUnicodeCharacters},ns.getUnicodeReplacementRegEx=function(){return ns.memoizeReplacement(),ns.unicodeReplacementRegEx},ns.objectFlip=function(obj){var key,tmp_obj={};for(key in obj)obj.hasOwnProperty(key)&&(tmp_obj[obj[key]]=key);return tmp_obj},ns.escapeRegExp=function(string){return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g,"\\$&")},ns.replaceAll=function(string,find,replacementList){var escapedFind=ns.escapeRegExp(find),search=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")","gi"),replace=function(entire,m1){return"undefined"==typeof m1||""===m1?entire:replacementList[m1]};return string.replace(search,replace)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);
+"🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🏅":"1f3c5","🏴":"1f3f4","📸":"1f4f8","🛌":"1f6cc","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🛫":"1f6eb","🛬":"1f6ec","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥁":"1f941","🦐":"1f990","🦑":"1f991","🥚":"1f95a","🥛":"1f95b","🥜":"1f95c","🥝":"1f95d","🥞":"1f95e","🇼":"1f1fc","🇻":"1f1fb","🇺":"1f1fa","🇹":"1f1f9","🇸":"1f1f8","🇷":"1f1f7","🇶":"1f1f6","🇵":"1f1f5","🇴":"1f1f4","🇳":"1f1f3","🇲":"1f1f2","🇱":"1f1f1","🇰":"1f1f0","🇯":"1f1ef","🇮":"1f1ee","🇭":"1f1ed","🇬":"1f1ec","🇫":"1f1eb","🇪":"1f1ea","🇩":"1f1e9","🇨":"1f1e8","🇧":"1f1e7","🇦":"1f1e6","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✅":"2705","✊":"270a","✋":"270b","✨":"2728","❌":"274c","❎":"274e","❓":"2753","❔":"2754","❕":"2755","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","©":"00a9","®":"00ae","‼":"203c","⁉":"2049","™":"2122","ℹ":"2139","↔":"2194","↕":"2195","↖":"2196","↗":"2197","↘":"2198","↙":"2199","↩":"21a9","↪":"21aa","⌚":"231a","⌛":"231b","Ⓜ":"24c2","▪":"25aa","▫":"25ab","▶":"25b6","◀":"25c0","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","☀":"2600","☁":"2601","☎":"260e","☑":"2611","☔":"2614","☕":"2615","☝":"261d","☺":"263a","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","♠":"2660","♣":"2663","♥":"2665","♦":"2666","♨":"2668","♻":"267b","♿":"267f","⚓":"2693","⚠":"26a0","⚡":"26a1","⚪":"26aa","⚫":"26ab","⚽":"26bd","⚾":"26be","⛄":"26c4","⛅":"26c5","⛔":"26d4","⛪":"26ea","⛲":"26f2","⛳":"26f3","⛵":"26f5","⛺":"26fa","⛽":"26fd","✂":"2702","✈":"2708","✉":"2709","✌":"270c","✏":"270f","✒":"2712","✔":"2714","✖":"2716","✳":"2733","✴":"2734","❄":"2744","❇":"2747","❗":"2757","❤":"2764","➡":"27a1","⤴":"2934","⤵":"2935","⬅":"2b05","⬆":"2b06","⬇":"2b07","⬛":"2b1b","⬜":"2b1c","⭐":"2b50","⭕":"2b55","〰":"3030","〽":"303d","㊗":"3297","㊙":"3299","🀄":"1f004","🅿":"1f17f","🈂":"1f202","🈚":"1f21a","🈯":"1f22f","🈷":"1f237","🎞":"1f39e","🎟":"1f39f","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏵":"1f3f5","🏷":"1f3f7","📽":"1f4fd","✝":"271d","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗨":"1f5e8","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","✍":"270d","🖐":"1f590","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛳":"1f6f3","⏏":"23cf","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☂":"2602","☃":"2603","☄":"2604","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☪":"262a","☮":"262e","☯":"262f","☸":"2638","☹":"2639","⚒":"2692","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9","✡":"2721","❣":"2763","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1"},ns.imagePathPNG="https://cdn.jsdelivr.net/emojione/assets/png/",ns.imagePathSVG="https://cdn.jsdelivr.net/emojione/assets/svg/",ns.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",ns.imageType="png",ns.imageTitleTag=!0,ns.sprites=!1,ns.unicodeAlt=!0,ns.ascii=!1,ns.cacheBustParam="?v=2.2.7",ns.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")","gi"),ns.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),ns.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")","gi"),ns.toImage=function(str){return str=ns.unicodeToImage(str),str=ns.shortnameToImage(str)},ns.unifyUnicode=function(str){return str=ns.toShort(str),str=ns.shortnameToUnicode(str)},ns.shortnameToAscii=function(str){var unicode,unicodeToAscii=ns.objectFlip(ns.asciiList);return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],"undefined"!=typeof unicodeToAscii[unicode]?unicodeToAscii[unicode]:shortname):shortname})},ns.shortnameToUnicode=function(str){var unicode,fname,uc;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[0].toUpperCase(),fname=ns.emojioneList[shortname].fname,uc=ns.emojioneList[shortname].uc,ns.convert(uc)):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3].toUpperCase(),m2+ns.convert(unicode)):entire})),str},ns.shortnameToImage=function(str){var replaceWith,unicode,alt,title;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],title=ns.imageTitleTag?'title="'+shortname+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):shortname,replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3],title=ns.imageTitleTag?'title="'+ns.escapeHTML(m3)+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):ns.escapeHTML(m3),replaceWith="png"===ns.imageType?ns.sprites?m2+'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":m2+'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):entire})),str},ns.unicodeToImage=function(str){var replaceWith,unicode,short,fname,alt,title,mappedUnicode=ns.mapUnicodeToShort();return str=str.replace(ns.regUnicode,function(unicodeChar){return"undefined"!=typeof unicodeChar&&""!==unicodeChar&&unicodeChar in ns.jsEscapeMap?(unicode=ns.jsEscapeMap[unicodeChar],short=mappedUnicode[unicode],fname=ns.emojioneList[short].fname,alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):short,title=ns.imageTitleTag?'title="'+short+'"':"",replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+fname+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathSVG+fname+".svg"+ns.cacheBustParam+'"/>'):unicodeChar})},ns.toShort=function(str){var find=ns.getUnicodeReplacementRegEx(),replacementList=ns.mapUnicodeCharactersToShort();return ns.replaceAll(str,find,replacementList)},ns.convert=function(unicode){if(unicode.indexOf("-")>-1){for(var parts=[],s=unicode.split("-"),i=0;i<s.length;i++){var part=parseInt(s[i],16);if(part>=65536&&part<=1114111){var hi=Math.floor((part-65536)/1024)+55296,lo=(part-65536)%1024+56320;part=String.fromCharCode(hi)+String.fromCharCode(lo)}else part=String.fromCharCode(part);parts.push(part)}return parts.join("")}var s=parseInt(unicode,16);if(s>=65536&&s<=1114111){var hi=Math.floor((s-65536)/1024)+55296,lo=(s-65536)%1024+56320;return String.fromCharCode(hi)+String.fromCharCode(lo)}return String.fromCharCode(s)},ns.escapeHTML=function(string){var escaped={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return string.replace(/[&<>"']/g,function(match){return escaped[match]})},ns.unescapeHTML=function(string){var unescaped={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(match){return unescaped[match]})},ns.mapEmojioneList=function(addToMapStorage){for(var shortname in ns.emojioneList)if(ns.emojioneList.hasOwnProperty(shortname))for(var i=0,len=ns.emojioneList[shortname].unicode.length;i<len;i++){var unicode=ns.emojioneList[shortname].unicode[i];addToMapStorage(unicode,shortname)}},ns.mapUnicodeToShort=function(){return ns.memMapShortToUnicode||(ns.memMapShortToUnicode={},ns.mapEmojioneList(function(unicode,shortname){ns.memMapShortToUnicode[unicode]=shortname})),ns.memMapShortToUnicode},ns.memoizeReplacement=function(){if(!ns.unicodeReplacementRegEx||!ns.memMapShortToUnicodeCharacters){var unicodeList=[];ns.memMapShortToUnicodeCharacters={},ns.mapEmojioneList(function(unicode,shortname){var emojiCharacter=ns.convert(unicode);ns.emojioneList[shortname].isCanonical&&(ns.memMapShortToUnicodeCharacters[emojiCharacter]=shortname),unicodeList.push(emojiCharacter)}),ns.unicodeReplacementRegEx=unicodeList.join("|")}},ns.mapUnicodeCharactersToShort=function(){return ns.memoizeReplacement(),ns.memMapShortToUnicodeCharacters},ns.getUnicodeReplacementRegEx=function(){return ns.memoizeReplacement(),ns.unicodeReplacementRegEx},ns.objectFlip=function(obj){var key,tmp_obj={};for(key in obj)obj.hasOwnProperty(key)&&(tmp_obj[obj[key]]=key);return tmp_obj},ns.escapeRegExp=function(string){return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g,"\\$&")},ns.replaceAll=function(string,find,replacementList){var escapedFind=ns.escapeRegExp(find),search=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")","gi"),replace=function(entire,m1){return"undefined"==typeof m1||""===m1?entire:replacementList[m1]};return string.replace(search,replace)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);var I18next={bg:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"bn-BD":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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:"Kopie",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:"Verifizierte private Konversation gestartet.",Unverified_private_conversation_started:"Unverifizierte private Konversation gestartet.",Bookmark:"Lesezeichen","Auto-join":"Automatisch beitreten",Edit_bookmark:"Lesezeichen bearbeiten",Room_logging_is_disabled:"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym",Do_you_want_to_change_the_default_room_configuration:"Möchtest du die Gruppenkonfiguration ändern?",Default:"Standard",Change:"Ändern",Send_file:"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.",_is_composing:" tippt gerade...",_are_composing:" tippen gerade...",Chat_state_notifications:"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?",Share_screen:"Teile Bildschirm",Incoming_stream:"Eingehender Stream",Stream_started:"Stream gestarted",HTTPS_REQUIRED:"Diese Aktion erfordert eine verschlüsselte Verbindung.",EXTENSION_UNAVAILABLE:"Sie benötigen eine Browser Erweiterung.",UNKNOWN_ERROR:"Ein unbekannter Fehler ist aufgetreten.",Install_extension:"Bitte installieren Sie die Erweiterung um ihren Bildschirm zu teilen: ",Connection_accepted:"Verbindung angenommen",Stream_terminated:"Stream beendet",Close_all:"Schließe alle"}},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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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 media 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",Send_file:"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.",_is_composing:" is composing...",_are_composing:" are composing...",Chat_state_notifications:"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?",Share_screen:"Share screen",Incoming_stream:"Incoming stream",Stream_started:"Stream started",HTTPS_REQUIRED:"This action requires an encrypted connection.",EXTENSION_UNAVAILABLE:"You need a browser extension/addon.",UNKNOWN_ERROR:"An unknown error occured.",Install_extension:"Please install the extension in order to use screen sharing: ",Connection_accepted:"Connection accepted",Stream_terminated:"Stream terminated",Close_all:"Close all",Notification:"Notification",Unreadable_OTR_message:"Unreadable OTR message omitted"}},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:"Solo 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:"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido solo 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:"más ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No una de nuestras última claves.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Más 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:"Apodo",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Dirección extendida",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Correo electrónico",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:"Unirse al chat",Join:"Unirse",Room:"Sala",Nickname:"Alias",left_the_building:"__nickname__ dejó el edificio",entered_the_room:"__nickname__ entró en la sala",is_now_known_as:"__oldNickname__ ahora es conocido como __newNickname__",This_room_is:"Esta sala es",muc_hidden:{keyword:"oculta",description:"no se encontró mediante la búsqueda"},muc_membersonly:{keyword:"miembros solo",description:"necesitas estar en la lista de miembros"},muc_moderated:{keyword:"moderada",description:'solo personas con "voice" están permitidas para mandar mensajes'},muc_nonanonymous:{keyword:"no anónima",description:"tu id de jabber es expuesta al resto de ocupantes"},muc_open:{keyword:"abierta",description:"todo el mundo puede unirse"},muc_passwordprotected:{keyword:"protegida por contraseña",description:"necesitas dar la contraseña correcta"},muc_persistent:{keyword:"persistente",description:"no será destruida si el último ocupante sale"
+},muc_public:{keyword:"pública",description:"puede ser encontrada mediante la búsqueda"},muc_semianonymous:{keyword:"semi-anónima",description:"tu id de jabber es expuesta a los administradores de la sala"},muc_temporary:{keyword:"temporal",description:"será destruida si el último ocupante sale"},muc_unmoderated:{keyword:"no moderada",description:"todo el mundo puede enviar mensajes"},muc_unsecured:{keyword:"sin asegurar",description:"no necesitas contraseña para entrar"},Continue:"Continuar",Server:"Servidor",Rooms_are_loaded:"Las salas han sido cargadas",Could_load_only:"Se cargaron solo __count__ salas para el autocompletado",muc_explanation:"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat",You_already_joined_this_room:"Ya te has unido a esta sala",This_room_will_be_closed:"Esta sale será cerrada",Room_not_found_:"Sala no encontrada",Loading_room_information:"Cargando información de la sala",Destroy:"Destruir",Leave:"Abandonar",changed_subject_to:'__nickname__ cambió el asunto de la sala a "__subject__"',muc_removed_kicked:"Has sido echado de la sala",muc_removed_info_kicked:"__nickname__ ha sido echado de la sala",muc_removed_banned:"Has sido expulsado de la sala",muc_removed_info_banned:"__nickname__ ha sido expulsado",muc_removed_affiliation:"Has sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_info_affiliation:"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_membersonly:"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_info_membersonly:"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_shutdown:"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado",Reason:"Razón",message_not_send:"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe",message_not_send_forbidden:"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ",This_room_has_been_closed:"Esta sala ha sido cerrada",Room_logging_is_enabled:"Log de sala está habilitado",A_password_is_required:"Se requiere una contraseña",You_are_not_on_the_member_list:"No estás en la lista de miembros",You_are_banned_from_this_room:"Estás expulsado de esta sala",Your_desired_nickname_:"Tu alias ya está en uso. Por favor elige otro",The_maximum_number_:"El máximo número de usuarios ha sido alcanzado en esta sala",This_room_is_locked_:"Esta sala está bloqueada",You_are_not_allowed_to_create_:"No tienes permiso para crear una sala",Alert:"Alerta",Call_started:"Llamada empezada",Call_terminated:"Llamada terminada",Carbon_copy:"Calco",Enable:"Activar",jingle_reason_busy:"ocupado",jingle_reason_decline:"rechazar",jingle_reason_success:"colgar",Media_failure:"Fallo multimedia",No_local_audio_device:"No hay dispositivo de audio local",No_local_video_device:"No hay dispositivo de vídeo local",Ok:"Ok",PermissionDeniedError:"Tú o tu navegador denegaron el permiso de audio/vídeo",Use_local_audio_device:"Usar dispositivo de audio local",Use_local_video_device:"Usar dispositivo de vídeo",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 vacía, añadir un <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.",Bookmark:"Favorito","Auto-join":"Auto-unir",Edit_bookmark:"Editar favorito",Room_logging_is_disabled:"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima",Do_you_want_to_change_the_default_room_configuration:"¿Quieres cambiar la configuración por defecto de la sala?",Default:"Por defecto",Change:"Cambiar",Send_file:"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},fi:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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 contact a fermé la connexion privée.",start_private:"Démarrer une conversation privée",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:"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte du contact",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 contact.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter un contact",rename_buddy:"Renommer le contact",delete_buddy:"Supprimer le contact",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 le contact",You_are_about_to_remove_:"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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:"Statut",online:"En ligne",chat:"tchat",away:"Absent",xa:"Longue absence",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:"Libre pour discuter",Away:"Absent",Extended_away:"Longue absence",Offline:"Hors ligne",Friendship_request:"Demande de contact",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Pseudo",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 un 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 contact n'a pas fourni d'informations",Info_about:"À 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:"raccrocher",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 contact ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discussion",Join:"Joindre",Room:"Salon",Nickname:"Pseudo",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:"__oldNickname__ est maintenant connu comme __newNickname__",This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:"ne peut être trouvé avec une recherche"},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:"ne sera pas détruit si le dernier occupant part"},muc_public:{keyword:"public",description:"peut être touvé avec une recherche"},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:"Ne peut charger que __count__ salons pour l'autocomplétion",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à rejoint 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:"Vous avez été retiré du salon en raison d'un changement d'affiliation",muc_removed_info_affiliation:"__nickname__ a été retiré du salon en raison d'un changement d'affiliation",muc_removed_membersonly:"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie",muc_removed_info_membersonly:"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres",muc_removed_shutdown:"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre",Reason:"Raison",message_not_send:"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas",message_not_send_forbidden:"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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:"L'historique du salon est conservé",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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateurs est atteint dans ce salon",This_room_is_locked_:"Ce salon est verrouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:"Alerte",Call_started:"Appel démarré",Call_terminated:"Appel terminé",Carbon_copy:"Copie carbone",Enable:"Activé",jingle_reason_busy:"occupé",jingle_reason_decline:"refusé",jingle_reason_success:"raccroché",Media_failure:"échec du média",No_local_audio_device:"Pas de périphérique audio local",No_local_video_device:"Pas de périphérique vidéo local",Ok:"Ok",PermissionDeniedError:"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo",Use_local_audio_device:"Utiliser un périphérique audio local.",Use_local_video_device:"Utiliser un périphérique vidéo local.",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>Nouveau contact</a>",onsmp_explanation_question:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",onsmp_explanation_secret:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"La conversation privée vérifiée a démarré.",Unverified_private_conversation_started:"La conversation privée non vérifiée a démarré.",Bookmark:"Marque-page","Auto-join":"Joindre automatiquement",Edit_bookmark:"Éditer le marque-page",Room_logging_is_disabled:"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme",Do_you_want_to_change_the_default_room_configuration:"Voulez-vous changer la configuration par défaut du salon ?",Default:"Par défaut",Change:"Changer",Send_file:"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.",_is_composing:" est en train d'écrire...",_are_composing:" sont en train d'écrire...",Chat_state_notifications:"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?",Share_screen:"Ecran partagé",Incoming_stream:"Flux entrant",Stream_started:"flux démarré",HTTPS_REQUIRED:"Cette action nécessite une connexion cryptée.",EXTENSION_UNAVAILABLE:"Vous avez besoin d'une extension / d'un addon pour votre navigateur.",UNKNOWN_ERROR:"Une erreur inconnue s'est produite.",Install_extension:"Veuillez installer l'extension afin d'utiliser le partage d'écran: ",Connection_accepted:"Connexion acceptée",Stream_terminated:"Flux terminé",Close_all:"Tout fermer"}},"hu-HU":{translation:{Logging_in:null,your_connection_is_unencrypted:"Az Ön kapcsolata titkosítatlan.",your_connection_is_encrypted:"Az Ön kapcsolata titkosított.",your_buddy_closed_the_private_connection:"Partnere megszakította a privát kapcsolatot.",start_private:"Privát beszélgetés indítása",close_private:"Privát beszélgetés bezárása",your_buddy_is_verificated:"Az Ön partnere megerősítve.",you_have_only_a_subscription_in_one_way:null,authentication_query_sent:"Azonosítási kérelem elküldve.",your_message_wasnt_send_please_end_your_private_conversation:"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.",unencrypted_message_received:"Titkosítatlan üzenet fogadva",not_available:"Nem elérhető",no_connection:"Nincs kapcsolat!",relogin:"relogin",trying_to_start_private_conversation:"Privát beszélgetés indítása!",Verified:"Megerősítve",Unverified:"Nem megerősített",private_conversation_aborted:"Privát beszélgetés megszakítva!",your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:"Azonosítás sikertelen.",Creating_your_private_key_:"Privát kulcs generálása. Egy kis időbe telhet...",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:"Kérdés",Secret:"Kulcs",To_verify_the_fingerprint_:null,Your_fingerprint:"Az Ön lenyomata",Buddy_fingerprint:"Partnere lenyomata",Close:"Bezárás",Compared:"Összehasonlítva",To_authenticate_using_a_question_:"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.",Ask:"Kérdez",To_authenticate_pick_a_secret_:"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.",Compare:"Összehasonlítás",Fingerprints:"Lenyomatok",Authentication:"Azonosítás",Message:"Üzenet",Add_buddy:"Partner hozzáadása",rename_buddy:"Partner átnevezése",delete_buddy:"Partner törlése",Login:"Belépés",Username:"Felhasználónév",Password:"Jelszó",Cancel:"Mégsem",Connect:"Csatlakozás",Type_in_the_full_username_:"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.",Alias:"Becenév",Add:"Hozzáadás",Subscription_request:"Feliratkozási kérelem",You_have_a_request_from:"Ön felkérést kapott a következőtől",Deny:"Elutasít",Approve:"Jóváhagy",Remove_buddy:"Partner eltávolítása",You_are_about_to_remove_:null,Continue_without_chat:"Folytatás chat nélkül",Please_wait:"Kérem várjon",Login_failed:"Chat bejelentkezés sikertelen",Sorry_we_cant_authentikate_:null,Retry:"Vissza",clear_history:"Előzmények törlése",New_message_from:"Új üzenet __name__ partnerétől",Should_we_notify_you_:"Kívánja hogy értesítsük a jövőben új üzeneteiről?",Please_accept_:'Kérem kattintson a fent megjelenő "Engedélyez" gombra.',Hide_offline:"Offline partnerek elrejtése",Show_offline:"Offline partnerek mutatása",About:null,dnd:"Ne zavarj",Mute:"Némítás",Unmute:"Hangok engedélyezése",Subscription:null,both:"mindkettő",Status:"Állapot",online:"elérhető",chat:null,away:"távol",xa:"huzamosabban távol",offline:"offline",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:"Teljes név",N:null,FAMILY:"Családi név",GIVEN:"Keresztnév",NICKNAME:"Becenév",URL:"URL",ADR:"Cím",STREET:"Utcanév",EXTADD:"Cím",LOCALITY:"Helység",REGION:"Régió",PCODE:"Irányítószám",CTRY:"Ország",TEL:"Telefonszám",NUMBER:"Házszám",EMAIL:"E-mail cím",USERID:null,ORG:"Vállalat",ORGNAME:"Név",ORGUNIT:"Osztály",TITLE:"Beosztás",ROLE:"Részleg",BDAY:"Születésnap",DESC:"Leírás",PHOTO:null,send_message:"Üzenet küldése",get_info:"Info mutatása",Settings:"Beállítások",Priority:"Prioritás",Save:"Mentés",User_settings:"Felhasználó beállítások",A_fingerprint_:null,is:null,Login_options:"Bejelentkezési lehetőségek",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Erőforrás",On_login:"Bejelentkezéskor",Received_an_unencrypted_message:"Titkosítatlan üzenetet fogadott",Sorry_your_buddy_doesnt_provide_any_information:"Sajnos az Ön partnere nem adott meg semmilyen információt.",Info_about:null,Authentication_aborted:"Azonosítás megszakítva.",Authentication_request_received:"Azonosítási kérelem fogadva.",Log_in_without_chat:"Bejelentkezés chat nélkül",has_come_online:"bejelentkezett",Unknown_sender:"Ismeretlen küldő",Please_allow_access_to_microphone_and_camera:'Kérem kattintson a fent megjelenő "Engedélyez/Allow" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.',Incoming_call:"Bejövő hívás",from:"tőle",Do_you_want_to_accept_the_call_from:"Szeretné fogadni következő partnere hívását:",Reject:"Elutasít",Accept:"Fogadás",hang_up:"tartás",snapshot:"képernyőfotó",mute_my_audio:"hangom némítása",pause_my_video:"videóképem megállítása",fullscreen:"teljes képernyő",Info:"Info",Local_IP:"Helyi IP",Remote_IP:"Távoli IP",Local_Fingerprint:"Helyi lenyomat",Remote_Fingerprint:"Távoli lenyomat",Video_call_not_possible:"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.",Start_video_call:"Videóhívás indítása",Join_chat:"Belépés a chatbe",Join:"Belépés",Room:"Szoba",Nickname:"Becenév",left_the_building:"__nickname__ elhagyta az épületet.",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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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.",Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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:"Posiadasz tylko 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:"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.",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ą za pomocą zaufanego sposobu, np telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod kontaktu",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę kontaktu",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ń kontakt",You_are_about_to_remove_:"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.",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:"Prośba o kontakt",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:"Wybacz, 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:"Rozmowa rozpoczęta",Call_terminated:"Rozmowa zakończona",Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:"zajęte",jingle_reason_decline:"odmów",jingle_reason_success:"zakończono",Media_failure:"Błąd mediów",No_local_audio_device:"Brak lokalnego urządzenia audio.",No_local_video_device:"Brak lokalnego urządzenia wideo.",Ok:"Ok",PermissionDeniedError:"Ty lub twoja przeglądarka odmówiła dostępu do audio/video",Use_local_audio_device:"Użyj lokalnego urządzenia audio.",Use_local_video_device:"Użyj lokalnego urządzenia wideo.",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.",Bookmark:"Zakładka","Auto-join":"Auto-połączenie",Edit_bookmark:"Edytuj zakładkę",Room_logging_is_disabled:"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy",Do_you_want_to_change_the_default_room_configuration:"Chcesz zmienić domyślną konfigurację pokoju?",Default:"Domyślny",Change:"Zmień",Send_file:"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"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:"Sua impressão digital",Buddy_fingerprint:"Impressão digital 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:"Impressões digitais",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:" IDUsuário",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Função",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:"Foto",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:"Entrar no chat",Join:"Entrar",Room:"Sala",Nickname:"Apelido",left_the_building:"__nickname__ deixou o prédio",entered_the_room:"__nickname__ entrou na sala",is_now_known_as:"__oldNickname__ agora é conhecido como __newNickname__",This_room_is:"Esta sala é",muc_hidden:{keyword:"oculto",description:"Não pode ser encontrado através de pesquisa"},muc_membersonly:{keyword:"apenas para membros",description:"você precisa estar na lista de membros"},muc_moderated:{keyword:"moderado",description:'Somente pessoas com "voice" podem enviar mensagens'},muc_nonanonymous:{keyword:"não-anônimo",description:"Seu id jabber esta esposto para todos os outros ocupantes"},muc_open:{keyword:"abrir",description:"Todos podem entrar"},muc_passwordprotected:{keyword:"protegido por senha",description:"você precisa fornecer a senha correta"},muc_persistent:{keyword:"persistente",description:"Não será destruída se o último ocupante tiver saído"},muc_public:{keyword:"público",description:"pode ser localizado pela busca"},muc_semianonymous:{keyword:"semi-anônimos",description:"Sua identificação jabber só é exposta para administradores da sala"},muc_temporary:{keyword:"temporário",description:"Será destruída se o último ocupante tiver saído"},muc_unmoderated:{keyword:"sem moderação",description:"Todos tem permissão de enviar mensagens"},muc_unsecured:{keyword:"inseguro",description:"Você não precisa de senha para entrar"},Continue:"Avançar",Server:"Servidor",Rooms_are_loaded:"Sala carregada",Could_load_only:"Pode carregar somente __count__ salas para autocompletar",muc_explanation:"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat",You_already_joined_this_room:"Você já entrou nesta sala",This_room_will_be_closed:"Esta sala será fechada",Room_not_found_:"Uma nova sala será criada",Loading_room_information:"Carregar informação da sala",Destroy:"Destruir",Leave:"Sair",changed_subject_to:'__nickname__ alterar o assunto da sala para "__subject__"',muc_removed_kicked:"Você foi removido da sala",muc_removed_info_kicked:"__nickname__ foi removido da sala",muc_removed_banned:"Você foi banido da sala",muc_removed_info_banned:"__nickname__ foi banido da sala",muc_removed_affiliation:"Você foi removido da sala pois a sala, por que a afiliação mudou",muc_removed_info_affiliation:"__nickname__ foi removido da sala, por que a afiliação mudou",muc_removed_membersonly:"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro",muc_removed_info_membersonly:"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro",muc_removed_shutdown:"Você foi removido da sala, por que o serviço MUC esta sendo desligado",Reason:"Motivo",message_not_send:"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais",message_not_send_forbidden:"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala",This_room_has_been_closed:"Essa sala foi fechada",Room_logging_is_enabled:"O Logging esta habilitado",A_password_is_required:"Senha é obrigatória",You_are_not_on_the_member_list:"Você não esta na lista de usuarios",You_are_banned_from_this_room:"Você foi banido desta sala",Your_desired_nickname_:"O nickname escolhido já esta em uso. Por favor escolha outro",The_maximum_number_:"O número máximo de usuarios já foi antigido para essa sala",This_room_is_locked_:"A sala esta trancada",You_are_not_allowed_to_create_:"Você não esta autorizado para criar uma sala",Alert:"Alerta",Call_started:"Chamada iniciada",Call_terminated:"Chamada finalizada",Carbon_copy:"Copia carbono",Enable:"Habilitado",jingle_reason_busy:"ocupado",jingle_reason_decline:"recusado",jingle_reason_success:"sucesso",Media_failure:"Media falhou",No_local_audio_device:"sem dispositivo local de audio",No_local_video_device:"sem dispositivo local de video",Ok:"Ok",PermissionDeniedError:"Você ou seu navegador negou permissão para acessar audio/video",Use_local_audio_device:"Usar dispositivo local de audio",Use_local_video_device:"Usar dispositivo local de video",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.",Bookmark:"Favoritos","Auto-join":"Entrar Automaticamente",Edit_bookmark:"Editar favoritos",Room_logging_is_disabled:"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora",Do_you_want_to_change_the_default_room_configuration:"Você quer alterar as configurações da sala?",Default:"Padrão",Change:"Alterar",Send_file:"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},ro:{translation:{Logging_in:"Autentificare...",your_connection_is_unencrypted:"Conexiunea nu este criptată.",your_connection_is_encrypted:"Conexiunea este criptată.",your_buddy_closed_the_private_connection:"Interlocutorul a închis conexiunea privată.",start_private:"Pornește în privat",close_private:"Închide privat",your_buddy_is_verificated:"Interlocutorul este verificat.",you_have_only_a_subscription_in_one_way:"Subscrierea este într-o singură direcție.",authentication_query_sent:"Cererea de autentificare a fost trimisă.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajul nu a fost trimis. Te rog închide conversația în privat.",unencrypted_message_received:"A fost primit un mesaj necriptat",not_available:"Indisponibil",no_connection:"Fără conexiune!",relogin:"Re-autentificare",trying_to_start_private_conversation:"Se încearcă deschiderea conversației în privat!",Verified:"Verificat",Unverified:"Neverificat",private_conversation_aborted:"Conversație în privat eșuată!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.",conversation_is_now_verified:"Conversația este acum verificată.",authentication_failed:"Autentificarea a eşuat.",Creating_your_private_key_:"Se crează cheia privată; ar putea să dureze ceva timp.",Authenticating_a_buddy_helps_:"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.",How_do_you_want_to_authenticate_your_buddy:"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)",Select_method:"Alege metoda...",Manual:"Manual",Question:"Întrebare",Secret:"Secret",To_verify_the_fingerprint_:"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.",Your_fingerprint:"Amprenta ta",Buddy_fingerprint:"Amprenta interlocutorului",Close:"Închide",Compared:"Prin comparație",To_authenticate_using_a_question_:"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",Ask:"Întreabă",To_authenticate_pick_a_secret_:"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.",Compare:"Compară",Fingerprints:"Amprente",Authentication:"Autentificare",Message:"Mesaj",Add_buddy:"Adaugă contact",rename_buddy:"redenumește contact",delete_buddy:"șterge contact",Login:"Logare",Username:"Utilizator",Password:"Parolă",Cancel:"Renunță",Connect:"Conectare",Type_in_the_full_username_:"Scrie numele complet al utilizatorului și un alias opțional.",Alias:"Alias",Add:"Adaugă",Subscription_request:"Cerere de subscriere",You_have_a_request_from:"Ai o cerere de la",Deny:"Refuză",Approve:"Aprobă",Remove_buddy:"Șterge contact",You_are_about_to_remove_:"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",Continue_without_chat:"Continuă fără chat",Please_wait:"Te rog așteaptă",Login_failed:"Logarea pe chat a eșuat",Sorry_we_cant_authentikate_:"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?",Retry:"Înapoi",clear_history:"Curăță istoria",New_message_from:"Un nou mesaj de la __name__",Should_we_notify_you_:"Vrei să fi notificat despre mesajele noi în viitor ?",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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all: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_:"Создается приватный ключ. Это может занять некоторое время",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_:"Введите полное имя пользователя и дополнительный псевдоним",Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.",Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:"Неудачная попытка входа",Retry:"Назад",clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:'Нажмите кнопку "Разрешить" вверху страницы, пожалуйста',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:"Ни один из наших последних ключей",Received_an_unreadable_encrypted_message:"Получено нечитаемое зашифрованное сообщение",Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:"Запрос на добавление в контакты",Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:"Имя",NICKNAME:"Ник",URL:"URL",ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:"Город",REGION:"Область",PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:" Фото ",send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:" ",Login_options:"Параметры входа",BOSH_url:"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:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:"Вы хотите принять вызов от",Reject:"Отклонить",Accept:"Принять",hang_up:"Завершить",snapshot:"Снимок",mute_my_audio:"Без звука",pause_my_video:"Остановить моё видео",fullscreen:"На весь экран",Info:"Инфо",Local_IP:"Мой IP",Remote_IP:"Удаленный IP",Local_Fingerprint:"Мой отпечаток",Remote_Fingerprint:"Удаленный отпечаток",Video_call_not_possible:"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.",Start_video_call:"Видео-вызов",Join_chat:"Присоединиться к комнате",Join:"Присоедениться",Room:"Комната",Nickname:"Ник",left_the_building:"__nickname__ выходит из комнаты",entered_the_room:"__nickname__ заходит в комнату",is_now_known_as:"__oldNickname__ теперь известен как __newNickname__",This_room_is:"Эта комната",muc_hidden:{keyword:"скрыта",description:"не может быть найдена через поиск"},muc_membersonly:{keyword:"только для участников",description:"Вы должны быть в списке участников"},muc_moderated:{keyword:"модерируется",description:"Только пользователи с правом голоса могут отправлять сообщения"},muc_nonanonymous:{keyword:"неанонимная",description:"Ваш JID будет показан всем посетителям"},muc_open:{keyword:"открытая",description:"Любой пользователь может присоедениться"},muc_passwordprotected:{keyword:"защищена паролем",description:"Необходимо ввести правильный пароль"},muc_persistent:{keyword:"постоянная",description:"Не будет уничтожена, когда ее покинут все участники"},muc_public:{keyword:"публичная",description:"Может быть найдена через поиск"},muc_semianonymous:{keyword:"полу-анонимная",description:"Ваш JID могут увидеть только администраторы"},muc_temporary:{keyword:"временная",description:"Будет уничтожена как только не останется ни одного участника"},muc_unmoderated:{keyword:"не модерируется",description:"Любой посетитель может отправлять сообщения"},muc_unsecured:{keyword:"без пароля",description:"Не нужно вводить пароль для входа"},Continue:"Далее",Server:"Сервер",Rooms_are_loaded:"Комнаты загружены",Could_load_only:"Подгрузка только __count__ комнат в автодополнении",muc_explanation:"Введите название комнаты, свой ник и пароль для входа в комнату",You_already_joined_this_room:"Вы уже в этой комнате",This_room_will_be_closed:"Эта комната была закрыта",Room_not_found_:"Новая комната будет создана",Loading_room_information:"Загрузка информации о комнате",Destroy:"Уничтожить",Leave:"Покинуть",changed_subject_to:'__nickname__ изменил тему комнаты на "__subject__"',muc_removed_kicked:"Вас выкинули из комнаты",muc_removed_info_kicked:"__nickname__ был удален из комнаты",muc_removed_banned:"Вас забанили в комнате",muc_removed_info_banned:"__nickname__ был забанен в комнате",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь",muc_removed_info_membersonly:"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является",muc_removed_shutdown:"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен",Reason:"Причина",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_:"__status__",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:"Не подтверждено Зашифрованный чат начат.",Bookmark:"Закладка","Auto-join":"Автоматически входить",Edit_bookmark:"Редактировать закладку",Room_logging_is_disabled:"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:"Вы хотите изменить стандартную конфигурацию комнаты?",Default:"Станд.",Change:"Изменить",Send_file:"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"sv-SE":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"tr-TR":{translation:{Logging_in:"Giriş yapılıyor…",your_connection_is_unencrypted:"Bağlantınız şifrelenmemiş.",your_connection_is_encrypted:"Bağlantınız şifrelenmiş.",your_buddy_closed_the_private_connection:"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.",start_private:"Özel bağlantı başlat.",close_private:"Özel bağlantıyı kapat.",your_buddy_is_verificated:"Kişi doğrulandı.",you_have_only_a_subscription_in_one_way:"Sadece tek yönlü bir aboneliğiniz var.",authentication_query_sent:"Kimlik doğrulama sorgusu gönderildi.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.",unencrypted_message_received:"Şifrelenmemiş mesaj alındı",not_available:"Müsait değil",no_connection:"Bağlantı yok!",relogin:"Yeniden gir",trying_to_start_private_conversation:"Özel sohbet başlatılmaya çalışılıyor!",Verified:"Doğrulandı",Unverified:"Doğrulanamadı",private_conversation_aborted:"Özel sohbet iptal edildi!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.",conversation_is_now_verified:"Sohbet doğrulandı.",authentication_failed:"Kimlik doğrulama başarısız.",Creating_your_private_key_:"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.",Authenticating_a_buddy_helps_:"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.",How_do_you_want_to_authenticate_your_buddy:"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Yöntemi seçin...",Manual:"Elle",Question:"Soru",Secret:"Gizli anahtar",To_verify_the_fingerprint_:"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.",Your_fingerprint:"Parmakiziniz",Buddy_fingerprint:"Kişinin parmakizi",Close:"Kapat",Compared:"Kıyaslandı",To_authenticate_using_a_question_:"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.",Ask:"Sor",To_authenticate_pick_a_secret_:"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.",Compare:"Karşılaştır",Fingerprints:"Parmakizleri",Authentication:"Kimlik doğrulama",Message:"İleti",Add_buddy:"Kişi ekle",rename_buddy:"Kişiyi yeniden adlandır",delete_buddy:"Kişiyi sil",Login:"Giriş",Username:"Kullanıcı adı",Password:"Şifre",Cancel:"iptal",Connect:"Bağlan",Type_in_the_full_username_:"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.",Alias:"Takma ad",Add:"Ekle",Subscription_request:"Abonelik isteği",You_have_a_request_from:"Size gelen bir istek var",Deny:"Reddet",Approve:"Onayla",Remove_buddy:"Kişiyi çıkar",You_are_about_to_remove_:"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.",Continue_without_chat:"Sohbet etmeden devam et",Please_wait:"Lütfen bekleyin",Login_failed:"Sohbet girişi başarısız oldu",Sorry_we_cant_authentikate_:"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.",Retry:"Geri",clear_history:"Geçmişi sil",New_message_from:"__name__ adlı kişiden yeni bir mesaj aldınız",Should_we_notify_you_:"İleride aldığınız yeni mesajları size bildirelim mi?",Please_accept_:'Lütfen üstteki "İzin ver" düğmesini tıklayın.',Hide_offline:"Çevrimdışı kişileri gizle",Show_offline:"Çevrimdışı kişileri göster",About:"hakkında",dnd:"Rahatsız etmeyin",Mute:"Sessiz",Unmute:"Sesli",Subscription:"Üyelik",both:"her ikisi de",Status:"Durum",online:"çevrimiçi",chat:"sohbet",away:"uzakta",xa:"çok uzakta",offline:"çevrimdışı",none:"hiç biri",Unknown_instance_tag:"Bilinmeyen örnek etiketi.",Not_one_of_our_latest_keys:"En son anahtarlarımızdan biri değil.",Received_an_unreadable_encrypted_message:"Okunamayan şifrelenmiş bir mesaj alındı.",Online:"Çevrimiçi",Chatty:"Konuşkan",Away:"Uzakta",Extended_away:"Çok uzakta",Offline:"Çevrimdışı",Friendship_request:"İrtibat isteği",Confirm:"Onayla",Dismiss:"Reddet",Remove:"Çıkar",Online_help:"Çevrimiçi yardım",FN:"Tam adı",N:" ",FAMILY:"Soyadı",GIVEN:"Adı",NICKNAME:"Takma ad",URL:"URL",ADR:"Adres",STREET:"Sokak",EXTADD:"Genişletilmiş Adres",LOCALITY:"Yer",REGION:"Bölge",PCODE:"Posta Kodu",CTRY:"Ülke",TEL:"Telefon",NUMBER:"Numara",EMAIL:"Eposta",USERID:" ",ORG:"Organizasyon",ORGNAME:"İsim",ORGUNIT:"Birim",TITLE:"İş tenımı",ROLE:"Görevi",BDAY:"Doğum günü",DESC:"Tanım",PHOTO:" ",send_message:"İletiyi gönder",get_info:"Bilgileri göster",Settings:"Ayarlar",Priority:"Öncelik",Save:"Kaydet",User_settings:"Kullanıcı tercihleri",A_fingerprint_:"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.",is:"Eşit",Login_options:"Giriş seçenekleri",BOSH_url:"BOSH URL",Domain:"Alan adı",Resource:"Kaynak",On_login:"Girişte",Received_an_unencrypted_message:"Şifrelenmemiş bir mesaj alındı",Sorry_your_buddy_doesnt_provide_any_information:"Maalesef kişi her hangi bir bilgi sunmamış.",Info_about:"Bilinen özellikleri",Authentication_aborted:"Kimlik doğrulama iptal edildi.",Authentication_request_received:"Kimlik doğrulama isteği alındı.",Log_in_without_chat:"Sohbetsiz giriş yap",has_come_online:"Çevrimiçi oldu",Unknown_sender:"Bilinmeyen gönderen",Please_allow_access_to_microphone_and_camera:'Mikrofona ve kameraya erişime izin vermek için lütfen üstteki "İzin Ver" düğmesini tıklayın.',Incoming_call:"Gelen çağrı",from:"gönderen",Do_you_want_to_accept_the_call_from:"Gelen aramayı kabul etmek istiyor musunuz",Reject:"Reddet",Accept:"Kabul et",hang_up:"aramayı sonlandır",snapshot:"anlık fotoğraf",mute_my_audio:"Sesi kapat",pause_my_video:"videoyu duraklat",fullscreen:"tam ekran",Info:"bilgi",Local_IP:"Yerel IP",Remote_IP:"Uzak IP",Local_Fingerprint:"Yerel parmakizi",Remote_Fingerprint:"Uzak parmakizi",Video_call_not_possible:"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.",Start_video_call:"Video görüşmesini başlat",Join_chat:"Sohbete katıl",Join:"Katıl",Room:"Oda",Nickname:"Takma ad",left_the_building:"__nickname__ binadan ayrıldı",entered_the_room:"__nickname__ odaya girdi",is_now_known_as:"__oldNickname__ şimdi __newNickname__ olarak biliniyor",This_room_is:"Bu oda",muc_hidden:{keyword:"gizli",description:"Arama yoluyla bulunamıyor"},muc_membersonly:{keyword:"sadece-üye-olanlar",description:"üye listenizde olmanız gerekiyor"},muc_moderated:{keyword:"yöneticili",description:'Yalnızca "sesli" kişilerin mesaj göndermesine izin verilir'},muc_nonanonymous:{keyword:"Anonim-değil",description:"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},muc_open:{keyword:"açık",description:"herkes katılabilir"},muc_passwordprotected:{keyword:"şifre-korumalı",description:"Doğru şifreyi girmeniz gerekiyor"},muc_persistent:{keyword:"kalıcı",description:"Son oturan ayrıldığında kapanmaz"},muc_public:{keyword:"herkese açık",description:"Arama yoluyla bulunabilir"},muc_semianonymous:{keyword:"yarı-anonim",description:"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},muc_temporary:{keyword:"geçici",description:"Son oturan ayrıldığında kapanır"},muc_unmoderated:{keyword:"yöneticisiz",description:"herkes ileti gönderebilir"},muc_unsecured:{keyword:"güvensiz",description:"şifre girmenize gerek yok"},Continue:"Devam",Server:"Sunucu",Rooms_are_loaded:"Oda yüklendi",Could_load_only:"Sadece __count__ oda otomatik tamamlamayla yüklenebilir",muc_explanation:"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin",You_already_joined_this_room:"Zaten bu odaya katılmış durumdasınız",This_room_will_be_closed:"Bu oda kapanacak",Room_not_found_:"Yeni oda oluşturulacak",Loading_room_information:"Oda bilgileri yükleniyor",Destroy:"Sil",Leave:"Ayrıl",changed_subject_to:'__nickname__ bu odanın konusunu "__subject__" olarak değiştirdi',muc_removed_kicked:"Bu odadan atıldınız",muc_removed_info_kicked:"__nickname__ bu odadan atıldı",muc_removed_banned:"Odadan yasaklandınız",muc_removed_info_banned:"__nickname__ odadan yasaklandınız",muc_removed_affiliation:"Üyelik değişikliği nedeniyle odadan çıkarıldınız",muc_removed_info_affiliation:"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı",muc_removed_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız",muc_removed_info_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı",muc_removed_shutdown:"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı",Reason:"Sebep",message_not_send:"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil",message_not_send_forbidden:"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz",This_room_has_been_closed:"Bu oda kapatıldı",Room_logging_is_enabled:"Oda günlüğü etkinleştirildi",A_password_is_required:"Şifre gerekli",You_are_not_on_the_member_list:"Üye listesinde değilsiniz",You_are_banned_from_this_room:"Bu odadan yasaklandınız",Your_desired_nickname_:"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad",The_maximum_number_:"Bu odada maksimum kullanıcı sayısına ulaşıldı",This_room_is_locked_:"Bu oda kilitli",You_are_not_allowed_to_create_:"Oda açma izniniz yok",Alert:"Uyarı",Call_started:"Arama başlatıldı",Call_terminated:"Arama bitirildi",Carbon_copy:"Karbon kopya",Enable:"Etkinleştir",jingle_reason_busy:"meşgul",jingle_reason_decline:"kabul etme",jingle_reason_success:"kapatıldı",Media_failure:"Medya istek hatası",No_local_audio_device:"Yerel ses cihazı bulunamadı.",No_local_video_device:"Yerel video cihazı bulunamadı.",Ok:"Tamam",PermissionDeniedError:"Siz veya tarayıcınız sesli/görüntülü izni reddetti",Use_local_audio_device:"Yerel video cihazını kullan.",Use_local_video_device:"Yerel video cihazını kullanın.",is_:"__status__",You_received_a_message_from_an_unknown_sender_:"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?",Your_roster_is_empty_add_:"Listeniz boş, yeni bir <a>kişi ekleyin</a>",onsmp_explanation_question:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.",onsmp_explanation_secret:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.",from_sender:"__sender__'den",Verified_private_conversation_started:"Doğrulanmış Özel görüşme başladı.",Unverified_private_conversation_started:"Doğrulanmamış Özel görüşme başladı.",Bookmark:"Yer imi","Auto-join":"Otomatik katıl",Edit_bookmark:"yer imini düzenle",Room_logging_is_disabled:"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim",Do_you_want_to_change_the_default_room_configuration:"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?",Default:"Öntanımlı",Change:"Değiştir",Send_file:"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.",_is_composing:" yazıyor...",_are_composing:" yazıyorlar...",Chat_state_notifications:"Sohbet durumu bildirimleri","setting-explanation-chat-state":"Birisi mesaj başlattığında veya mesaj yazmayı bıraktığında, sohbet durumu bildirimleri göndermek ve almak istiyor musunuz?",Share_screen:"Ekran paylaşımı",Incoming_stream:"Gelen akış",Stream_started:"Akış başladı",HTTPS_REQUIRED:"Bu eylem, şifreli bir bağlantı gerektirir.",EXTENSION_UNAVAILABLE:"Tarayıcı eklentisine ihtiyacınız var.",UNKNOWN_ERROR:"Bilinmeyen bir hata oluştu.",Install_extension:"Ekran paylaşımını kullanabilmek için lütfen eklentiyi yükleyin: ",Connection_accepted:"Bağlantı kabul edildi",Stream_terminated:"Akış sonlandırıldı",Close_all:"Hepsini kapat"}},"vi-VN":{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"zh-TW":{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:"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?",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_:"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。",Continue_without_chat:"繼續不聊天",Please_wait:"請等一下",Login_failed:"登入聊天失敗",Sorry_we_cant_authentikate_:"跟聊天伺服器驗證失敗,會不會是密碼打錯了?",Retry:"上一步",clear_history:"清除歷史紀錄",New_message_from:"有新訊息:__name__",Should_we_notify_you_:"以後若有新訊息要通知你嗎?",Please_accept_:"請點上方的「允許」按鈕。",Hide_offline:"隱藏離線聯絡人",Show_offline:"顯示離線聯絡人",About:"關於我",dnd:"別打擾",Mute:"開靜音",Unmute:"關靜音",Subscription:"訂閱狀態",both:"雙向",Status:"狀態",online:"上線",chat:"聊天",away:"離開",xa:"離開很久",offline:"離線",none:"沒有",Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:"收到了一則加密但無法辨認的訊息。",Online:"上線",Chatty:"想聊天",Away:"離開",Extended_away:"離開很久",Offline:"離線",Friendship_request:"聯絡請求",Confirm:"確定",Dismiss:"取消",Remove:"刪掉",Online_help:"線上說明",FN:"全名",N:" ",FAMILY:"姓氏",GIVEN:"名字",NICKNAME:"綽號",URL:"網址",ADR:"位址",STREET:"地址",EXTADD:"更多位址",LOCALITY:"所在地",REGION:"區域",PCODE:"郵遞區號",CTRY:"國家",TEL:"電話",NUMBER:"編號",EMAIL:"電子郵件",USERID:" ",ORG:"團體",ORGNAME:"名稱",ORGUNIT:"單位",TITLE:"職稱",ROLE:"職位",BDAY:"生日",DESC:"簡介",PHOTO:" ",send_message:"發送訊息",get_info:"顯示帳號資訊",Settings:"設定",Priority:"優先度",Save:"儲存",User_settings:"使用者設定",A_fingerprint_:"電子指紋是用來確認跟你說話的是真的那個人。",is:"狀態:",Login_options:"登入選項",BOSH_url:"BOSH 網址",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:"來電",from:"只出",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:"__nickname__離開了大樓",entered_the_room:"__nickname__進入了聊天室",is_now_known_as:"__oldNickname__改名叫做__newNickname__",This_room_is:"聊天室屬性:",muc_hidden:{keyword:"隱藏",description:"搜尋也找不到"},muc_membersonly:{keyword:"限會員",description:"會員才會加入"},muc_moderated:{keyword:"有管制",description:"沒被消音的人才能送訊息"},muc_nonanonymous:{keyword:"禁匿名",description:"每個參與人都能看到你的 jabber 代碼"},muc_open:{keyword:"開放",description:"任何人都能參加"},muc_passwordprotected:{keyword:"密碼鎖",description:"要輸入正確的密碼才能加入"},muc_persistent:{keyword:"永久性",description:"最後一個參與人都離開了也不會結束"},muc_public:{keyword:"公開",description:"搜尋得到"},muc_semianonymous:{keyword:"半匿名",description:"只有聊天室管理員才看得到你的 jabber 代碼"},muc_temporary:{keyword:"暫時性",description:"最後一個參與人離開了就會結束"},muc_unmoderated:{keyword:"沒管制",description:"每個人都可以送訊息"},muc_unsecured:{keyword:"沒保護",description:"不需要密碼就能加入"},Continue:"繼續",Server:"伺服器",Rooms_are_loaded:"聊天室載入完成",Could_load_only:"只能載入__count__間聊天室供輸入自動完成使用",muc_explanation:"請輸入要參加的聊天室名稱,綽號和密碼非必要",You_already_joined_this_room:"你已經參加這間聊天室了",This_room_will_be_closed:"聊天室即將關閉",Room_not_found_:"新聊天室即將開啟",Loading_room_information:"正在載入聊天室資訊",Destroy:"關閉",Leave:"離開",changed_subject_to:'__nickname__把聊天室的標題改成了"__subject__"',muc_removed_kicked:"你被踢出聊天室了",muc_removed_info_kicked:"__nickname__被踢出聊天室了",muc_removed_banned:"你被禁止進入聊天室了",muc_removed_info_banned:"__nickname__被禁止進入聊天室了",muc_removed_affiliation:"你因為身份改變而離開聊天室了",muc_removed_info_affiliation:"__nickname__因為身份改變而離開聊天室了",muc_removed_membersonly:"你離開聊天室了,因為聊天室改為只限會員,但你不是會員",muc_removed_info_membersonly:"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員",muc_removed_shutdown:"你離開聊天室了,因為多人聊天服務正在關閉中。",Reason:"原因",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_:"狀態: __status__",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:"加密但未校驗的對話開始了。",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:"修改",Send_file:"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。",_is_composing:"正在打字中...",_are_composing:"正在打字中...",Chat_state_notifications:"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?",Share_screen:"分享螢幕",Incoming_stream:"有串流來",Stream_started:"串流開始了",HTTPS_REQUIRED:"這個動作需要連線有加密。",EXTENSION_UNAVAILABLE:"瀏覽器必須要安裝擴充套件或是附加元件。",UNKNOWN_ERROR:"發生了不明錯誤。",Install_extension:"要使用螢幕分享功能請安裝這個擴充套件: ",Connection_accepted:"連線接受了",Stream_terminated:"串流結束了",Close_all:"全部關掉"}},zh:{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,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}}};
//# 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 23e7ae5..d8ecfee 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,"sources":["jsxc.dep.js"],"names":["callback","root","factory","define","amd","Base64","this","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","i","charCodeAt","isNaN","charAt","length","decode","replace","indexOf","String","fromCharCode","SHA1","core_sha1","x","len","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","core_hmac_sha1","key","data","bkey","str2binb","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","binb2str","binb2b64","binarray","triplet","tab","b64_hmac_sha1","b64_sha1","s","str_hmac_sha1","str_sha1","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","stropheUtils","utils","utf16to8","out","addCookies","cookies","cookieName","cookieObj","isObj","cookieValue","expires","domain","path","escape","unescape","value","document","cookie","Function","prototype","bind","func","_slice","slice","_concat","_args","call","arguments","apply","isArray","arg","Object","toString","elt","from","Number","Math","ceil","floor","forEach","thisArg","T","k","TypeError","O","kValue","o","window","Strophe","$build","$iq","$msg","$pres","name","attrs","Builder","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","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","REDIRECT","CONNTIMEOUT","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","_xmlGenerator","_makeGenerator","doc","undefined","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","node","xmlTextNode","attr","setAttribute","hasOwnProperty","xmlescape","text","xmlunescape","createTextNode","xmlHtmlNode","html","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","cssName","cssValue","toLowerCase","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","_handleError","stack","fatal","sourceURL","handler","line","message","fileName","lineNumber","log","level","msg","debug","info","warn","error","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","up","parentNode","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","ns","type","id","options","matchBareFromJid","ignoreNamespaceFragment","matchBare","user","getNamespace","elNamespace","namespaceMatch","nsMatch","that","isMatch","elem_type","run","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","protocolErrorHandlers","HTTP","websocket","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","registerSASLMechanisms","mechanisms","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","r","random","v","addProtocolErrorHandler","status_code","connect","pass","wait","hold","route","authcid","authzid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","SASLAnonymous","SASLExternal","SASLMD5","SASLOAuthBearer","SASLPlain","SASLSHA1","registerSASLMechanism","mechanism","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","_abortAllRequests","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","newList","_connect_cb","_callback","bodyWrap","conncheck","hasFeatures","getElementsByTagNameNS","_no_auth_received","mech","matched","authenticate","sortMechanismsByPriority","higher","swap","priority","_attemptSASLAuth","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","isClientFirst","response","onChallenge","_attemptLegacyAuth","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","streamfeature_handlers","wrapper","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","auth_str","test_cnonce","cnonce","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","_quote","realm","host","qop","digest_uri","cred","A1","A2","core","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","errors","inactivity","_buildBody","keepalive","_cacheSession","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","session","parse","getItem","stringify","typ","parseInt","_sendTerminate","_callProtocolErrorHandlers","err_callback","reqStatus","_getRequestStatus","_hitError","xmpp:restart","time_elapsed","def","readyState","_removeRequest","reqIs0","reqIs1","_restartRequest","_processRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","contentType","open","sync","setRequestHeader","withCredentials","e2","sendFunc","customHeaders","headers","header","backoff","min","pow","abs","new_service","location","pathname","_buildStream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","streamStart","see_uri","string","_streamWrap","_onMessage","CLOSED","close","closeString","rawStanza","search","firstChild","start","startString","n_callback","requirejs","require","build","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","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","localStorage","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","makeArray","knownCapabilities","querySelector","trigger","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","jQuery","buildIq","vCardEl","VCARD","get","set","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","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","opts","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","_notificationReceived","CHATSTATES","addActive","composing","active","sendActive","_sendNotification","sendComposing","sendPaused","notification","n","u","exports","1","module","default","__esModule","core-js/library/fn/object/assign","2","3","placeHoldersCount","b64","byteLength","toByteArray","tmp","placeHolders","arr","Arr","L","revLookup","tripletToBase64","lookup","encodeChunk","uint8","end","fromByteArray","extraBytes","maxChunkLength","len2","Uint8Array","4","5","global","buffer","Buffer","SlowBuffer","MAX_LEN","kMaxLength","alloc","size","encoding","RangeError","enc","_fill","buf","fillBuf","flen","allocUnsafe","encodingOrOffset","ArrayBuffer","offset","isBuffer","copy","allocUnsafeSlow","6","typedArraySupport","__proto__","foo","subarray","TYPED_ARRAY_SUPPORT","createBuffer","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","actual","write","fromArrayLike","array","byteOffset","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","read","indexSize","readUInt16BE","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","leadSurrogate","byteArray","hi","lo","dst","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","defineProperty","configurable","_isBuffer","compare","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","base64-js","isarray","7","CipherBase","hashMode","Transform","_finalOrDigest","final","_decoder","_encoding","inherits","StringDecoder","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_","next","_flush","done","_final","fin","stream","string_decoder","8","assign","../../modules/$.core","../../modules/es6.object.assign","9","it","10","11","__e","12","aFunction","./$.a-function","13","14","ctx","PROTOTYPE","$export","source","own","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","C","param","./$.core","./$.ctx","./$.global","15","exec","16","__g","17","cof","propertyIsEnumerable","./$.cof","18","$Object","create","getProto","getPrototypeOf","isEnum","getDesc","getOwnPropertyDescriptor","setDesc","setDescs","defineProperties","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","19","toObject","IObject","A","K","$$","$$len","index","./$","./$.fails","./$.iobject","./$.to-object","20","defined","./$.defined","21","./$.export","./$.object-assign","22","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","isError","isFunction","isPrimitive","../../is-buffer/index.js","23","HashNoConstructor","Base","_hash","buffers","Hash","md5","rmd160","sha","digest","alg","./md5","cipher-base","ripemd160","sha.js","24","toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz","25","helpers","./helpers","26","Hmac","blocksize","_alg","_key","createHash","ZEROS","_ipad","_opad","create-hash/browser","27","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","context","addListener","listener","newListener","warned","console","trace","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","evlistener","emitter","28","prop","29","Sender","WildEmitter","chunksize","pacing","file","channel","Receiver","receiveBuffer","received","metadata","util","sliceFile","reader","FileReader","onload","readAsArrayBuffer","receive","binaryType","event","Blob","support","File","wildemitter","30","base","hashes","algo","actualhash","./filetransfer","iana-hashes","31","getUserMedia","cache","constraints","cb","hasConstraints","navigator","userAgent","chromever","maxver","isCef","chrome","webstore","getScreenMediaJSExtensionId","runtime","sendMessage","sourceId","audio","video","mandatory","chromeMediaSource","maxWidth","screen","width","maxHeight","height","maxFrameRate","chromeMediaSourceId","cefGetScreenMedia","optional","googLeakyBucket","googTemporalLayeredScreencast","pending","postMessage","ffver","mozMediaSource","mediaSource","lastTime","currentTime","polly","setInterval","clearInterval","onended","addEventListener","origin","getusermedia","32","haveOpts","defaultOpts","denied","altDenied","notSatisfied","mediaDevices","then","catch","webrtc-adapter","33","logging","browserDetails","extractVersion","disableLog","chromeShim","edgeShim","firefoxShim","safariShim","browser","shimPeerConnection","browserShim","shimGetUserMedia","shimMediaStream","shimSourceObject","shimOnTrack","./chrome/chrome_shim","./edge/edge_shim","./firefox/firefox_shim","./safari/safari_shim","./utils","34","MediaStream","webkitMediaStream","RTCPeerConnection","_ontrack","removeEventListener","_ontrackpoly","te","Event","track","streams","dispatchEvent","getTracks","HTMLMediaElement","_srcObject","URL","revokeObjectURL","createObjectURL","pcConfig","pcConstraints","iceTransportPolicy","iceTransports","pc","webkitRTCPeerConnection","origGetStats","getStats","selector","successCallback","errorCallback","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","names","stat","makeMapStats","stats","legacyStats","map","Map","successCallbackWrapper_","Promise","resolve","reject","generateCertificate","method","nativeMethod","promise","nativeAddIceCandidate","addIceCandidate","RTCIceCandidate","RTCSessionDescription","attachMediaStream","srcObject","reattachMediaStream","../utils.js","./getusermedia","35","constraintsToChrome_","cc","ideal","exact","oldname_","prefix","toUpperCase","oc","mix","advanced","shimConstraints_","face","facingMode","getSupportedConstraints","enumerateDevices","devices","filter","kind","back","deviceId","shimError_","PermissionDeniedError","ConstraintNotSatisfiedError","constraint","constraintName","getUserMedia_","onError","webkitGetUserMedia","getUserMediaPromise_","kinds","MediaStreamTrack","getSources","device","groupId","origGetUserMedia","cs","36","SDPUtils","RTCIceGatherer","_eventTarget","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","localStreams","remoteStreams","getLocalStreams","getRemoteStreams","localDescription","sdp","remoteDescription","signalingState","iceConnectionState","iceGatheringState","iceOptions","gatherPolicy","iceServers","usingBundle","bundlePolicy","urls","url","transceivers","_localIceCandidatesBuffer","_emitBufferedCandidates","sections","splitSections","candidate","sdpMLineIndex","complete","every","transceiver","iceGatherer","state","addStream","clone","_maybeFireNegotiationNeeded","removeStream","idx","getSenders","rtpSender","getReceivers","rtpReceiver","_getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","codecs","headerExtensions","fecMechanisms","lCodec","rCodec","clockRate","numChannels","lHeaderExtension","rHeaderExtension","uri","_createIceAndDtlsTransports","mid","iceTransport","RTCIceTransport","onlocalcandidate","evt","sdpMid","cand","component","writeCandidate","onicestatechange","_updateConnectionState","dtlsTransport","RTCDtlsTransport","ondtlsstatechange","_transceive","recv","params","encodings","sendEncodingParameters","rtcp","cname","localCName","recvEncodingParameters","ssrc","setLocalDescription","description","sessionpart","_pendingOffer","shift","mediaSection","caps","parseRtpParameters","isIceLite","matchPrefix","rejected","remoteIceParameters","getIceParameters","cands","parseCandidate","setRemoteCandidates","remoteDtlsParameters","getDtlsParameters","_updateSignalingState","hasCallback","setRemoteDescription","receiverList","lines","splitLines","mline","direction","getDirection","parseRtpEncodingParameters","generateIdentifier","remoteSsrc","parseSsrcMedia","isComplete","addTrack","transports","RTCRtpReceiver","getCapabilities","localtrack","RTCRtpSender","trackEvent","stop","newState","new","closed","connecting","checking","completed","failed","disconnected","createOffer","offerOptions","tracks","numAudioTracks","numVideoTracks","getAudioTracks","getVideoTracks","offerToReceiveAudio","offerToReceiveVideo","wantReceive","writeSessionBoilerplate","writeMediaSection","createAnswer","addRemoteCandidate","mLineIndex","port","promises","results","all","../utils","37","38","mozSrcObject","mozRTCPeerConnection","newIceServers","newServer","username","credential","mozRTCSessionDescription","mozRTCIceCandidate","nativeGetStats","onSucc","onErr","39","SecurityError","The operation is insecure.","constraintsToFF37_","mozGetUserMedia","infos","orgEnumerateDevices","40","41","logDisabled_","bool","uastring","expr","detectBrowser","minVersion","42","createHmac","getHashes","mapping","md2","sha-1","sha-224","sha-256","sha-384","sha-512","available","algorithm","./lib/get-hashes","create-hash","create-hmac","43","44","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","45","ctor","superCtor","super_","constructor","enumerable","writable","TempCtor","46","intersect","big","temp","47","isSlowBuffer","48","49","FileTransferSession","BaseSession","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","sender","extend","FileTransfer","isInitiator","sent","_log","meta","contents","transport","application","applicationType","offer","sendChannel","createDataChannel","OfferToReceiveAudio","OfferToReceiveVideo","jingle","lastModifiedDate","accept","answer","silent","maybeReceivedFile","receivedFile","connectionState","onSessionInitiate","changes","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","jingle-session","rtcpeerconnection","50","filterContentSources","payloads","mux","sources","parameters","sourceGroups","group","filterUnusedLabels","parameter","MediaSession","onIceEndOfCandidates","onAddStream","onRemoveStream","onAddChannel","_ringing","ringing","mediaType","media","senders","ring","creator","unmute","renegotiate","groups","addStream2","removeStream2","switchStream","oldStream","newStream","signalEndOfCandidates","lastCandidate","endOfCandidates","transportType","gatheringComplete","onSessionInfo","onSourceAdd","newDesc","ssrcs","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","semantics","same","51","JingleSession","v4","peer","peerID","full","initiator","pendingApplicationTypes","applicationTypes","pendingAction","processingQueue","queue","task","ended","action","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","prev","_connectionState","starting","interrupted","requirePending","session-inititate","process","cancel","decline","kill","okKeys","responder","unknownPayload","jingleCondition","onContentAdd","onTransportReplace","52","noop","toBool","notId","only_once","_once","_isArrayLike","_isArray","_arrayEach","iterator","_map","_range","count","_reduce","memo","_forEachOf","object","_keys","_indexOf","_keyIterator","coll","_restParam","startIndex","rest","_withoutIndex","_eachOfLimit","nextKey","running","errored","replenish","doParallel","eachOf","doParallelLimit","doSeries","eachOfSeries","_asyncMap","eachfn","_filter","_reject","_createTester","check","getResult","iteratee","_findGetResult","_parallel","tasks","_queue","worker","concurrency","payload","_insert","started","idle","setImmediate","drain","unshift","saturated","_next","workers","removed","workersList","empty","resumeCount","_console_fn","_times","mapper","_applyEach","fns","go","ensureAsync","innerArgs","previous_async","noConflict","_isObject","_setImmediate","_delay","nextTick","forEachSeries","eachSeries","forEachLimit","eachLimit","forEachOf","forEachOfSeries","iterate","forEachOfLimit","eachOfLimit","mapSeries","mapLimit","inject","foldl","reduce","foldr","reduceRight","reversed","reverse","transform","select","selectLimit","filterLimit","selectSeries","filterSeries","rejectLimit","rejectSeries","any","some","someLimit","everyLimit","detect","detectSeries","detectLimit","sortBy","comparator","left","right","criteria","auto","taskComplete","remainingTasks","runningTasks","hasError","ready","requires","taskCallback","dep","safeResults","rkey","retry","times","parseTimes","acc","DEFAULT_TIMES","interval","DEFAULT_INTERVAL","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","retryInterval","attempts","series","waterfall","wrapIterator","parallel","parallelLimit","makeCallback","callArgs","concatSeries","whilst","doWhilst","calls","until","doUntil","during","truth","doDuring","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","memoize","hasher","queues","has","memoized","unmemoized","unmemoize","timesSeries","timesLimit","seq","newargs","nextargs","compose","applyEach","applyEachSeries","forever","constant","wrapSync","asyncify","_process","53","SessionManager","selfID","sessions","peers","prepareSession","FileSession","performTieBreak","sess","matching","screenSharingSupport","webrtc","screenSharing","capabilities","peerConnectionConfig","peerConnectionConstraints","DtlsSrtpKeyAgreement","RtpDataChannels","addICEServer","addSession","extraData","extraData2","createMediaSession","createFileTransferSession","endPeerSessions","endAllSessions","_createIncomingSession","_sendError","isTieBreak","transportTypes","jingle-filetransfer-session","jingle-media-session","webrtcsupport","54","_interopRequireDefault","_shortcuts","_shortcuts2","_types2","JXT","use","./shortcuts","./types","55","_xmppConstants","Namespace","SERVER","COMPONENT","extendMessage","JXTClass","multiName","withMessage","Message","extendPresence","_this2","withPresence","Presence","extendIQ","_this3","withIQ","IQ","extendStreamFeatures","_this4","withStreamFeatures","StreamFeatures","extendPubsubItem","_this5","withPubsubItem","PubsubItem","withDefinition","withStanzaError","withDataForm","DATAFORM","PUBSUB_EVENT","getMessage","getDefinition","getPresence","getIQ","getStreamError","getIq","withIq","xmpp-constants","56","_xmppJid","Utils","jidAttribute","prepped","JID","jidSub","getSubText","setSubText","tzoSub","defaultVal","hrs","sign","formatted","xmpp-jid","57","Address","namespace","ADDRESS","delivered","boolAttribute","Addresses","subMultiExtension","58","_lodashForeach","_lodashForeach2","Avatar","AVATAR_METADATA","avatars","_avatars","findOrCreate","avatar","textSub","AVATAR_DATA","babel-runtime/helpers/interop-require-default","lodash.foreach","59","Bind","60","jidList","BLOCKING","Block","jids","Unblock","BlockList","61","BOB","cid","maxAge","numberAttribute","62","Conference","autoJoin","Bookmarks","PRIVATE","PrivateStorage","63","prefixes","xmpp","BOSH_XMPP","ack","authid","charsets","maxpause","newKey","polling","resport","requests","time","langAttribute","restart","restartLogic","types","64","Sent","eventName","CARBONS_2","Received","Private","Enable","Disable","FORWARD_0","Forwarded","65","CONDITIONS","Command","ADHOC_COMMANDS","sessionid","execute","subAttribute","actions","actionSet","existing","Note","StanzaError","enumSub","DataForm","66","CSIFeature","CSI","topLevel","67","SINGLE_FIELDS","_type","boolSub","getMultiSubText","truthy","setMultiSubText","Media","DATAFORM_MEDIA","MediaURI","Validation","DATAFORM_VALIDATION","dataType","basic","regex","Range","ListRange","layoutContents","namespaceURI","DATAFORM_LAYOUT","localName","section","Section","sectionXML","Page","reportedFields","fieldTypes","multiTextSub","68","DelayedDelivery","DELAY","stamp","dateAttribute","69","DiscoCaps","DiscoInfo","multiSubAttribute","DiscoIdentity","DiscoItems","DiscoItem","RSM","70","STANZA_ERROR","gone","redirect","by","$text","getSubLangText","setSubLangText","71","Services","DISCO_EXTERNAL_1","Credentials","Service","72","FT_NS","FILE_TRANSFER_4","numberSub","dateSub","infoType","Checksum","HASHES_1","JINGLE_1","Content","Jingle","73","FILE_TRANSFER_3","Thumbnail","THUMBS_0","mimeType","subExtension","request","74","Delayed","75","seeOtherURI","76","GeoLoc","GEOLOC","accuracy","altitude","area","heading","bearing","building","country","countrycode","datum","latitude","locality","longitude","postalcode","region","speed","street","tzo","77","78","Hat","HATS_0","displayName","79","NS_IBB","NS_JIBB","IBB","blockSize","setText","_open","_close","JingleIBB","80","ICE","JINGLE_ICE_UDP_1","pwd","ufrag","RemoteCandidate","ip","Candidate","foundation","generation","network","relAddr","relPort","tcpType","Fingerprint","JINGLE_DTLS_0","setup","SctpMap","DTLS_SCTP_1","number","81","_addresses","_addresses2","_avatar","_avatar2","_bind","_bind2","_blocking","_blocking2","_bob","_bob2","_bookmarks","_bookmarks2","_bosh","_bosh2","_carbons","_carbons2","_command","_command2","_csi","_csi2","_dataforms","_dataforms2","_delayed","_delayed2","_disco","_disco2","_error","_error2","_extdisco","_extdisco2","_file","_file2","_file3","_file32","_forwarded","_forwarded2","_framing","_framing2","_geoloc","_geoloc2","_hash2","_hats","_hats2","_iceUdp","_iceUdp2","_ibb","_ibb2","_iq","_iq2","_jidprep","_jidprep2","_jingle","_jingle2","_json","_json2","_logging","_logging2","_mam","_mam2","_message","_message2","_mood","_mood2","_muc","_muc2","_nick","_nick2","_oob","_oob2","_ping","_ping2","_presence","_presence2","_private","_private2","_psa","_psa2","_pubsub","_pubsub2","_pubsubError","_pubsubError2","_pubsubEvents","_pubsubEvents2","_pubsubOwner","_pubsubOwner2","_push","_push2","_reach","_reach2","_register","_register2","_roster","_roster2","_rsm","_rsm2","_rtp","_rtp2","_rtt","_rtt2","_sasl","_sasl2","_session","_session2","_shim","_shim2","_sm","_sm2","_stream","_stream2","_streamError","_streamError2","_streamFeatures","_streamFeatures2","_time","_time2","_tune","_tune2","_vcard","_vcard2","_version","_version2","_visibility","_visibility2","./addresses","./avatar","./bind","./blocking","./bob","./bookmarks","./bosh","./carbons","./command","./csi","./dataforms","./delayed","./disco","./error","./extdisco","./file","./file3","./forwarded","./framing","./geoloc","./hash","./hats","./ibb","./iceUdp","./iq","./jidprep","./jingle","./json","./logging","./mam","./message","./mood","./muc","./nick","./oob","./ping","./presence","./private","./psa","./pubsub","./pubsubError","./pubsubEvents","./pubsubOwner","./push","./reach","./register","./roster","./rsm","./rtp","./rtt","./sasl","./session","./shim","./sm","./stream","./streamError","./streamFeatures","./time","./tune","./vcard","./version","./visibility","82","_Object$assign","internals","defineIQ","_toJSON","resultReply","errorReply","babel-runtime/core-js/object/assign","83","JID_PREP_0","84","REASONS","tagged","Info","_name","_extensions","disposition","Description","Transport","security","Security","securityType","Reason","alternativeSession","JINGLE_ERRORS_1","85","JSONExtension","JSON_0","86","Log","EVENTLOG","subject","facility","stackTrace","Tag","87","MAMQuery","MAM_0","queryid","Result","Fin","stable","Prefs","defaultCondition","always","container","never","88","defineMessage","thread","parentThread","$body","bodies","attention","ATTENTION_0","chatState","CHAT_STATES","CORRECTION_0","requestReceipt","RECEIPTS","receipt","89","MOODS","Mood","MOOD","90","proxy","UserItem","UserActor","Destroyed","Invite","continue","Decline","AdminItem","AdminActor","Destroy","actor","codes","MUCAdmin","MUCOwner","MUCJoin","history","hist","maxchars","maxstanzas","seconds","toISOString","DirectInvite","MUC_DIRECT_INVITE","MUC_UNIQUE","91","NICK","92","OOB","93","Ping","PING","94","definePresence","$status","statuses","idleSince","dateSubAttribute","IDLE_1","decloak","DECLOAK_0","avatarId","VCARD_TEMP_UPDATE","setBoolSub","95","96","PSA","97","Pubsub","getSubAttribute","getBoolSub","setSubAttribute","publishOptions","Configure","Subscribe","Subscription","subid","configurationRequired","Subscriptions","Affiliation","Affiliations","SubscriptionOptions","Unsubscribe","Publish","Retract","Retrieve","98","PUBSUB_ERRORS","pubsubCondition","99","EventPurge","EventDelete","EventSubscription","expiry","EventConfiguration","EventItems","retracted","EventItem","publisher","100","PubsubOwner","PUBSUB_OWNER","purge","del","101","PUSH_0","Notification","102","ReachURI","REACH_0","$desc","descs","reachability","reach","addrs","addr","103","Register","REGISTER","registered","remove","first","last","email","address","city","zip","phone","misc","104","Roster","force","RosterItem","subscription","subscriptionRequested","ask","preApproved","105","after","before","firstIndex","106","Feedback","JINGLE_RTP_RTCP_FB_0","subtype","fb","JINGLE_RTP_1","Bandwidth","bandwidth","RTP","encryption","Crypto","setBoolSubAttribute","feedback","JINGLE_RTP_HDREXT_0","hdr","PayloadType","channels","clockrate","maxptime","ptime","cipherSuite","keyParams","sessionParams","ContentGroup","JINGLE_GROUPING_0","SourceGroup","JINGLE_RTP_SSMA_0","Source","Mute","JINGLE_RTP_INFO_1","Unmute","107","TYPE_MAP","insert","erase","ACTION_MAP","RTT","RTT_0","108","Mechanisms","_lang","109","Session","110","SHIM","headerSet","111","SMFeature","SMACKS_3","previd","112","113","STREAM_ERROR","seeOtherHost","114","RosterVerFeature","ROSTER_VERSIONING","SubscriptionPreApprovalFeature","SUBSCRIPTION_PREAPPROVAL","115","EntityTime","TIME","utc","116","Tune","TUNE","artist","rating","117","VCardTemp","VCARD_TEMP","website","fullName","birthday","nicknames","Email","home","work","preferred","PhoneNumber","mobile","street2","postalCode","pobox","Organization","unit","Name","family","given","middle","Photo","118","Version","os","119","INVISIBLE_0","120","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","stanzaConstructor","getExtensions","withTag","ParentJXT","ChildJXT","hideSingle","parentName","_NS","_EL","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign","121","ltx","DOMElement","XML_NS","Element","parentNS","created","getAttributeNS","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","subs","getBoolSubAttribute","getTextSub","setTextSub","extractor","builder","getMultiSubAttribute","setMultiSubAttribute","defaultLang","langs","ltx/lib/DOMElement","122","EXCLUDE","_PREFIXES","_isJXT","_eventname","allowedName","isExtensionName","nval","123","getter","setter","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","subText","multiSubText","langTextSub","subLangText","b64Text","isFloat","parseFloat","attributeNS","enumValues","enumVal","exists","alreadyExists","elements","124","arrayEach","125","baseAssign","baseCopy","lodash._basecopy","lodash.keys","126","props","127","baseForOwn","baseFor","baseProperty","createBaseEach","eachFunc","fromRight","collection","getLength","isLength","iterable","createBaseFor","keysFunc","MAX_SAFE_INTEGER","baseEach","128","bindCallback","argCount","accumulator","other","129","createAssigner","assigner","restParam","customizer","guard","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam","130","isObjectLike","getNative","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","RegExp","131","isArrayLike","isIndex","reIsUint","132","assignWith","lodash._baseassign","lodash._createassigner","133","addMapEntry","pair","addSetEntry","arrayPush","arrayReduce","initAccum","baseTimes","getValue","isHostObject","mapToArray","overArg","setToArray","entries","clear","entry","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","arrayLikeKeys","inherited","isArguments","skipIndexes","assignValue","objValue","eq","copyObject","baseClone","isDeep","isFull","isArr","initCloneArray","copyArray","getTag","isFunc","genTag","cloneBuffer","objectTag","argsTag","initCloneObject","copySymbols","cloneableTags","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","objectCreate","baseGetAllKeys","symbolsFunc","baseGetTag","baseIsNative","isMasked","pattern","toSource","baseKeys","isPrototype","nativeKeys","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","regexp","reFlags","cloneSet","cloneSymbol","symbol","symbolValueOf","cloneTypedArray","typedArray","newValue","isKeyable","getPrototype","Ctor","arrayBufferTag","boolTag","dateTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","numberTag","stringTag","regexpTag","setTag","symbolTag","maskSrcKey","funcToString","cloneDeep","isArrayLikeObject","stubArray","stubFalse","arrayTag","errorTag","promiseTag","weakMapTag","reRegExpChar","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","arrayProto","funcProto","coreJsData","uid","IE_PROTO","nativeGetSymbols","nativeIsBuffer","DataView","Set","WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","valueOf","ctorString","134","createForEach","arrayFunc","lodash._arrayeach","lodash._baseeach","lodash.isarray","135","136","nativeIsArray","137","shimKeys","keysIn","propsLength","allowIndexes","isProto","lodash._getnative","lodash.isarguments","138","FUNC_ERROR_TEXT","nativeMax","otherArgs","139","Parser","equal","tagString","is","nameEqual","attrsEqual","childrenEqual","isNode","isElement","isText","escapeXML","unescapeXML","escapeXMLText","unescapeXMLText","./lib/Element","./lib/Parser","./lib/createElement","./lib/equal","./lib/escape","./lib/is","./lib/parse","./lib/tag","./lib/tagString","140","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","./Element","141","setAttrs","equality","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","_addChildren","writer","nameEquals","attrsEquals","childrenEquals","./clone","./equal","./escape","142","LtxParser","ParserInterface","DefaultParser","ElementInterface","DefaultElement","./parsers/ltx","events","143","144","145","146","escapeXMLReplace","escapeXMLTable","unescapeXMLReplace","unescapeXMLTable","&","<",">","\"","'","&amp;","&#38;","&lt;","&#60;","&gt;","&#62;","&quot;","&#34;","&apos;","&#39;","147","148","./Parser","149","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","../escape","150","./parse","./tagString","151","literals","152","arg1","arg2","arg3","153","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","env","argv","versions","off","binding","cwd","chdir","umask","154","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","oldi","baseMinusT","inputLength","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","punycode","overflow","not-basic","invalid-input","ucs2","155","./lib/_stream_duplex.js","156","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","processNextTick","onEndNT","objectKeys","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","157","PassThrough","chunk","./_stream_transform","158","prependListener","ReadableState","objectMode","readableObjectMode","hwm","highWaterMark","defaultHwm","BufferList","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","_read","Stream","readableAddChunk","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","computeNewHighWaterMark","MAX_HWM","howMuchToRead","head","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EElistenerCount","nReadingNextTick","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","bufferShim","endReadable","endReadableNT","xs","debugUtil","debuglog","isPaused","setEncoding","nOrig","doRead","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","cleanedUp","needDrain","increasedAwaitDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","_fromList","./_stream_duplex","./internal/streams/BufferList","buffer-shims","string_decoder/","159","TransformState","afterTransform","needTransform","transforming","writecb","writechunk","writeencoding","ts","_transformState","rs","ws","_write","160","nop","WriteReq","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writev","_writev","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","doWrite","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","asyncWrite","afterWrite","onwriteDrain","finishMaybe","holder","finish","prefinish","need","endWritable","internalUtil","deprecate","getBuffer","current","cork","uncork","setDefaultEncoding","util-deprecate","161","162","./lib/_stream_passthrough.js","163","READABLE_STREAM","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","164","165","166","bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","ar","cr","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes","167","PeerConnection","detectedBrowser","adapter","enableChromeNativeSimulcast","appVersion","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","Peerconn","_onIce","_onDataChannel","sdpSessionID","iceCredentials","local","remote","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","toCandidateJSON","_checkRemoteCandidate","contentNames","candidates","remoteContent","processCandidates","iceCandidate","toCandidateSDP","toSessionSDP","mediaConstraints","expandedOffer","toSessionJSON","googConferenceFlag","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","ice","expandedCandidate","already","rtcpMuxPolicy","newCand","lodash.clonedeep","sdp-jingle-json","traceablepeerconnection","168","toSDP","toIncomingSDPOffer","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toIncomingJSONOffer","creators","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","./lib/tojson","./lib/tosdp","169","findLine","mediaLines","sessionLines","prefixLength","findLines","formats","rtpmap","sctpmap","fmtp","kv","crypto","fingerprint","extmap","idpart","sp","rtcpfb","substring","msid","mslabel","170","incoming","both","none","recvonly","sendonly","sendrecv","inactive","outgoing","171","SENDERS","parsers","idCounter","_setIdCounter","groupLines","fingerprints","sctp","trans","rtpmapLines","fmtpLines","fbLines","cryptoLines","extLines","ssrcGroupLines","ssrcLines","msidLine","fingerprintLines","fp","ufragLine","pwdLine","candidateLines","sctpmapLines","./parsers","./senders","172","hasSources","pushedSetup","hdrExts","ssrcGroups","ssrcGroup","173","blob","part","relatedAddress","relatedPort","parseRtpMap","payloadType","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","writeFmtp","parseRtcpFb","writeRtcpFb","rtcpFeedback","colon","fpLine","dtlsParameters","writeDtlsParameters","setupType","iceParameters","usernameFragment","writeIceParameters","rtpmapline","fmtps","writeRtpDescription","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","maxBitrate","getLocalParameters","174","finalSize","_block","_finalSize","_blockSize","_s","ch","175","Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512","176","Sha","_w","rotl5","rotl30","ft","_a","_b","_c","_d","177","Sha1","rotl1","178","Sha224","Sha256","_f","_g","_h","179","maj","sigma0","sigma1","gamma0","gamma1","T1","T2","180","Sha384","SHA512","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","181","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0l","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","182","EE","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js","183","assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","charCode","184","dumpSDP","dumpStream","TraceablePeerConnection","peerconnection","what","failureCallback","185","dup","186","187","188","189","190","191","192","193","194","deprecated","195","196","197","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","numLinesEst","cur","pad","getHours","getMinutes","getSeconds","getDate","months","getMonth","formatRegExp","format","objects","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","./support/isBuffer","198","rng","msCrypto","getRandomValues","_rnds8","_rnds","199","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng","200","requestUserMedia","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","constraintsToFF37","fixChromeStats","successCallbackWrapper","constraintsToChrome","oldname","writeFtmp","sendSsrc","recvSsrc","answerOptions","webrtcTesting","201","202","203","DOMException","204","_config","getConfiguration","isDatachannel","localTrack","205","206","207","208","209","210","PC","IceCandidate","SessionDescription","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream","211","mixin","isWildEmitter","groupName","callbacks","hasGroup","_groupName","releaseGroup","specialCallbacks","getWildcardCallbacks","212","PubSub","./lib/jingle","./lib/muc","./lib/namespaces","./lib/presence","./lib/pubsub","213","Action","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","ALTERNATIVE_SESSION","BUSY","CANCEL","CONNECTIVITY_ERROR","DECLINE","EXPIRED","FAILED_APPLICATION","FAILED_TRANSPORT","GENERAL_ERROR","GONE","INCOMPATIBLE_PARAMETERS","MEDIA_ERROR","SECURITY_ERROR","SUCCESS","UNSUPPORTED_APPLICATIONS","UNSUPPORTED_TRANSPORTS","Condition","OUT_OF_ORDER","TIE_BREAK","UNKNOWN_SESSION","UNSUPPORTED_INFO","214","REALJID_PUBLIC","AFFILIATION_CHANGED","UNAVAILABLE_SHOWN","UNAVAILABLE_NOT_SHOWN","CONFIGURATION_CHANGED","SELF_PRESENCE","LOGGING_ENABLED","LOGGING_DISABLED","NON_ANONYMOUS","SEMI_ANONYMOUS","FULLY_ANONYMOUS","ROOM_CREATED","NICK_ASSIGNED","BANNED","NEW_NICK","KICKED","REMOVED_AFFILIATION","REMOVED_MEMBERSHIP","REMOVED_SHUTDOWN","ADMIN","MEMBER","NONE","OUTCAST","OWNER","Role","MODERATOR","PARTICIPANT","VISITOR","215","RPC","LAST_ACTIVITY","PRIVACY","SEARCH","SOCKS5","HTTP_AUTH","AMP","ROSTER_DELIMITER","ACTIVITY","COMPRESSION","ROSTER_EXCHANGE","ROSTER_NOTES","CAPTCHA","JINGLE_RTP_ERRORS_1","LANG_TRANS","LANG_TRANS_ITEMS","JINGLE_RAW_UDP_1","SEC_LABEL_0","SEC_LABEL_CATALOG_2","SEC_LABEL_ESS_0","JINGLE_SOCKS5_1","JINGLE_IBB_1","JINGLE_RTP_ZRTP_1","THUMBS_1","DECLOAKING_0","MAM_TMP","HINTS","COLIBRI","JINGLE_MSG_INITIATE_0","JINGLE_PUB_1","216","Type","SUBSCRIBE","SUBSCRIBED","UNSUBSCRIBE","UNSUBSCRIBED","PROBE","UNAVAILABLE","Show","CHAT","AWAY","DO_NOT_DISTURB","EXTENDED_AWAY","217","PUBLISHER","PUBLISH_ONLY","PENDING","UNCONFIGURED","AccessModel","OPEN","PRESENCE","AUTHORIZE","WHITELIST","CONFLICT","218","bareJID","fullJID","StringPrep","ASCII","prep","unescapedLocal","nodeprep","resourceprep","nameprep","unescapedBare","unescapedFull","trusted","resourceStart","localEnd","preppedJID","jid1","jid2","requirePrep","equalBare","isBare","hasResource","localOrJID","_isJID","./lib/stringprep","219","220","JSM","RTC","GUM","GSM","jxt","IqStanza","peer_constraints","AUTOACCEPT","manager","getScreenMedia","MozDontOfferDataChannel","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","getscreenmedia","jxt-xmpp","jxt-xmpp-types","webrtc-adapter-test","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","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod","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","t2","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C_lib","lib","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","decodeURIComponent","utf8Str","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","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","t1","t3","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","getListeners","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","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","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","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","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","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","severity","sendFile","filename","l1name","endOtr","i18next","R","interpolation","unescapeSuffix","interpolationPrefix","interpolationSuffix","escapeValue","escapeInterpolation","nestingPrefix","reusePrefix","nestingSuffix","reuseSuffix","resStore","resources","defaultNs","defaultNS","fallbackToDefaultNS","fallbackNS","saveMissing","sendMissing","saveMissingTo","sendMissingTo","returnNull","fallbackOnNull","returnEmptyString","fallbackOnEmpty","returnObjects","returnObjectTrees","joinArrays","returnedObjectHandler","objectTreeKeyHandler","parseMissingKeyHandler","parseMissingKey","appendNamespaceToMissingKey","nsSeparator","nsseparator","keySeparator","keyseparator","shortcutFunction","overloadTranslationOptionHandler","postProcess","sprintf","whitelist","lngWhitelist","preload","load","backend","loadPath","resGetPath","addPath","resPostPath","allowMultiLoading","dynamicLoad","expirationTime","enabled","useLocalStorage","defaultVariables","lng","services","languageUtils","toResolveHierarchy","language","loadLanguages","setLng","fixLng","getFixedT","changeLanguage","addPostProcessor","lngs","numbers","nr","plurals","fc","initImmediate","fallbackLng","nonExplicitWhitelist","pluralSeparator","contextSeparator","missingKeyHandler","defaultValue","formatSeparator","unescapePrefix","_invoke","return","asyncIterator","throw","await","setPrototypeOf","ReferenceError","_output","setDebug","forward","observers","/","E","addNamespaces","removeNamespaces","getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","processors","handle","extractFromKey","translate","extendTranslation","isValidLookup","getFallbackCodes","backendConnector","interpolator","interpolate","nest","applyPostProcessor","pluralResolver","getSuffix","resourceStore","getLanguagePartFromCode","formatLanguageCode","getScriptPartFromCode","lowerCaseLng","cleanCode","isWhitelisted","rules","addRule","getRule","needsPlural","noAbs","prepend","compatibilityJSON","V","prefixEscaped","suffixEscaped","nestingPrefixEscaped","nestingSuffixEscaped","resetRegExp","regexpUnescape","nestingRegexp","store","queueLoad","loaded","toLoad","toLoadLanguages","toLoadNamespaces","readMulti","reload","I","save","modules","isInitialized","isClone","cacheConnector","languageDetector","detection","translator","loadResources","reloadResources","languages","cacheUserLanguage","setDefaultNamespace","loadNamespaces","createInstance","cloneInstance","D","jqueryI18next","parseDefaultValueFromContent","selectorAttr","targetAttr","useOptionsAttr","optionsAttr","tName","i18nName","handleName","Zepto","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isLowIE","isIE8","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isOpen","updateItemHTML","mainEl","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","closeBtnInside","close_replaceWith","alignTop","overflowY","overflowX","top","scrollTop","fixedBgPos","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","detach","_removeClassFromMFP","removeAttr","currItem","autoFocusLast","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","J","settings","cursor","tError","initAjax","ajax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","naturalWidth","getImage","alt","img_replaceWith","loading","MozTransform","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","I18next","bg","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","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","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","NUMBER","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","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","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","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","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","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","Send_file","setting-explanation-carbon","setting-explanation-login","setting-explanation-priority","setting-explanation-xmpp","_is_composing","_are_composing","Chat_state_notifications","setting-explanation-chat-state","Share_screen","Incoming_stream","Stream_started","HTTPS_REQUIRED","EXTENSION_UNAVAILABLE","UNKNOWN_ERROR","Install_extension","Connection_accepted","Stream_terminated","Close_all","bn-BD","de","en","fi","fr","hu-HU","nds","pl","pt-BR","ro","ru","sv-SE","tr-TR","vi-VN","zh-TW","zh","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","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","opera","ie","safari","HTMLElement","supported","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","emojioneList",":kiss_ww:","unicode","fname","uc","isCanonical",":couplekiss_ww:",":kiss_mm:",":couplekiss_mm:",":family_mmbb:",":family_mmgb:",":family_mmgg:",":family_mwbb:",":family_mwgb:",":family_mwgg:",":family_wwbb:",":family_wwgb:",":family_wwgg:",":couple_ww:",":couple_with_heart_ww:",":couple_mm:",":couple_with_heart_mm:",":family_mmb:",":family_mmg:",":family_mwg:",":family_wwb:",":family_wwg:",":rainbow_flag:",":gay_pride_flag:",":eye_in_speech_bubble:",":hash:",":zero:",":one:",":two:",":three:",":four:",":five:",":six:",":seven:",":eight:",":nine:",":asterisk:",":keycap_asterisk:",":handball_tone5:",":handball_tone4:",":handball_tone3:",":handball_tone2:",":handball_tone1:",":water_polo_tone5:",":water_polo_tone4:",":water_polo_tone3:",":water_polo_tone2:",":water_polo_tone1:",":wrestlers_tone5:",":wrestling_tone5:",":wrestlers_tone4:",":wrestling_tone4:",":wrestlers_tone3:",":wrestling_tone3:",":wrestlers_tone2:",":wrestling_tone2:",":wrestlers_tone1:",":wrestling_tone1:",":juggling_tone5:",":juggler_tone5:",":juggling_tone4:",":juggler_tone4:",":juggling_tone3:",":juggler_tone3:",":juggling_tone2:",":juggler_tone2:",":juggling_tone1:",":juggler_tone1:",":cartwheel_tone5:",":person_doing_cartwheel_tone5:",":cartwheel_tone4:",":person_doing_cartwheel_tone4:",":cartwheel_tone3:",":person_doing_cartwheel_tone3:",":cartwheel_tone2:",":person_doing_cartwheel_tone2:",":cartwheel_tone1:",":person_doing_cartwheel_tone1:",":shrug_tone5:",":shrug_tone4:",":shrug_tone3:",":shrug_tone2:",":shrug_tone1:",":mrs_claus_tone5:",":mother_christmas_tone5:",":mrs_claus_tone4:",":mother_christmas_tone4:",":mrs_claus_tone3:",":mother_christmas_tone3:",":mrs_claus_tone2:",":mother_christmas_tone2:",":mrs_claus_tone1:",":mother_christmas_tone1:",":man_in_tuxedo_tone5:",":tuxedo_tone5:",":man_in_tuxedo_tone4:",":tuxedo_tone4:",":man_in_tuxedo_tone3:",":tuxedo_tone3:",":man_in_tuxedo_tone2:",":tuxedo_tone2:",":man_in_tuxedo_tone1:",":tuxedo_tone1:",":prince_tone5:",":prince_tone4:",":prince_tone3:",":prince_tone2:",":prince_tone1:",":selfie_tone5:",":selfie_tone4:",":selfie_tone3:",":selfie_tone2:",":selfie_tone1:",":pregnant_woman_tone5:",":expecting_woman_tone5:",":pregnant_woman_tone4:",":expecting_woman_tone4:",":pregnant_woman_tone3:",":expecting_woman_tone3:",":pregnant_woman_tone2:",":expecting_woman_tone2:",":pregnant_woman_tone1:",":expecting_woman_tone1:",":face_palm_tone5:",":facepalm_tone5:",":face_palm_tone4:",":facepalm_tone4:",":face_palm_tone3:",":facepalm_tone3:",":face_palm_tone2:",":facepalm_tone2:",":face_palm_tone1:",":facepalm_tone1:",":fingers_crossed_tone5:",":hand_with_index_and_middle_fingers_crossed_tone5:",":fingers_crossed_tone4:",":hand_with_index_and_middle_fingers_crossed_tone4:",":fingers_crossed_tone3:",":hand_with_index_and_middle_fingers_crossed_tone3:",":fingers_crossed_tone2:",":hand_with_index_and_middle_fingers_crossed_tone2:",":fingers_crossed_tone1:",":hand_with_index_and_middle_fingers_crossed_tone1:",":handshake_tone5:",":shaking_hands_tone5:",":handshake_tone4:",":shaking_hands_tone4:",":handshake_tone3:",":shaking_hands_tone3:",":handshake_tone2:",":shaking_hands_tone2:",":handshake_tone1:",":shaking_hands_tone1:",":right_facing_fist_tone5:",":right_fist_tone5:",":right_facing_fist_tone4:",":right_fist_tone4:",":right_facing_fist_tone3:",":right_fist_tone3:",":right_facing_fist_tone2:",":right_fist_tone2:",":right_facing_fist_tone1:",":right_fist_tone1:",":left_facing_fist_tone5:",":left_fist_tone5:",":left_facing_fist_tone4:",":left_fist_tone4:",":left_facing_fist_tone3:",":left_fist_tone3:",":left_facing_fist_tone2:",":left_fist_tone2:",":left_facing_fist_tone1:",":left_fist_tone1:",":raised_back_of_hand_tone5:",":back_of_hand_tone5:",":raised_back_of_hand_tone4:",":back_of_hand_tone4:",":raised_back_of_hand_tone3:",":back_of_hand_tone3:",":raised_back_of_hand_tone2:",":back_of_hand_tone2:",":raised_back_of_hand_tone1:",":back_of_hand_tone1:",":call_me_tone5:",":call_me_hand_tone5:",":call_me_tone4:",":call_me_hand_tone4:",":call_me_tone3:",":call_me_hand_tone3:",":call_me_tone2:",":call_me_hand_tone2:",":call_me_tone1:",":call_me_hand_tone1:",":metal_tone5:",":sign_of_the_horns_tone5:",":metal_tone4:",":sign_of_the_horns_tone4:",":metal_tone3:",":sign_of_the_horns_tone3:",":metal_tone2:",":sign_of_the_horns_tone2:",":metal_tone1:",":sign_of_the_horns_tone1:",":bath_tone5:",":bath_tone4:",":bath_tone3:",":bath_tone2:",":bath_tone1:",":walking_tone5:",":walking_tone4:",":walking_tone3:",":walking_tone2:",":walking_tone1:",":mountain_bicyclist_tone5:",":mountain_bicyclist_tone4:",":mountain_bicyclist_tone3:",":mountain_bicyclist_tone2:",":mountain_bicyclist_tone1:",":bicyclist_tone5:",":bicyclist_tone4:",":bicyclist_tone3:",":bicyclist_tone2:",":bicyclist_tone1:",":rowboat_tone5:",":rowboat_tone4:",":rowboat_tone3:",":rowboat_tone2:",":rowboat_tone1:",":pray_tone5:",":pray_tone4:",":pray_tone3:",":pray_tone2:",":pray_tone1:",":person_with_pouting_face_tone5:",":person_with_pouting_face_tone4:",":person_with_pouting_face_tone3:",":person_with_pouting_face_tone2:",":person_with_pouting_face_tone1:",":person_frowning_tone5:",":person_frowning_tone4:",":person_frowning_tone3:",":person_frowning_tone2:",":person_frowning_tone1:",":raised_hands_tone5:",":raised_hands_tone4:",":raised_hands_tone3:",":raised_hands_tone2:",":raised_hands_tone1:",":raising_hand_tone5:",":raising_hand_tone4:",":raising_hand_tone3:",":raising_hand_tone2:",":raising_hand_tone1:",":bow_tone5:",":bow_tone4:",":bow_tone3:",":bow_tone2:",":bow_tone1:",":ok_woman_tone5:",":ok_woman_tone4:",":ok_woman_tone3:",":ok_woman_tone2:",":ok_woman_tone1:",":no_good_tone5:",":no_good_tone4:",":no_good_tone3:",":no_good_tone2:",":no_good_tone1:",":vulcan_tone5:",":raised_hand_with_part_between_middle_and_ring_fingers_tone5:",":vulcan_tone4:",":raised_hand_with_part_between_middle_and_ring_fingers_tone4:",":vulcan_tone3:",":raised_hand_with_part_between_middle_and_ring_fingers_tone3:",":vulcan_tone2:",":raised_hand_with_part_between_middle_and_ring_fingers_tone2:",":vulcan_tone1:",":raised_hand_with_part_between_middle_and_ring_fingers_tone1:",":middle_finger_tone5:",":reversed_hand_with_middle_finger_extended_tone5:",":middle_finger_tone4:",":reversed_hand_with_middle_finger_extended_tone4:",":middle_finger_tone3:",":reversed_hand_with_middle_finger_extended_tone3:",":middle_finger_tone2:",":reversed_hand_with_middle_finger_extended_tone2:",":middle_finger_tone1:",":reversed_hand_with_middle_finger_extended_tone1:",":hand_splayed_tone5:",":raised_hand_with_fingers_splayed_tone5:",":hand_splayed_tone4:",":raised_hand_with_fingers_splayed_tone4:",":hand_splayed_tone3:",":raised_hand_with_fingers_splayed_tone3:",":hand_splayed_tone2:",":raised_hand_with_fingers_splayed_tone2:",":hand_splayed_tone1:",":raised_hand_with_fingers_splayed_tone1:",":man_dancing_tone5:",":male_dancer_tone5:",":man_dancing_tone4:",":male_dancer_tone4:",":man_dancing_tone3:",":male_dancer_tone3:",":man_dancing_tone2:",":male_dancer_tone2:",":man_dancing_tone1:",":male_dancer_tone1:",":spy_tone5:",":sleuth_or_spy_tone5:",":spy_tone4:",":sleuth_or_spy_tone4:",":spy_tone3:",":sleuth_or_spy_tone3:",":spy_tone2:",":sleuth_or_spy_tone2:",":spy_tone1:",":sleuth_or_spy_tone1:",":muscle_tone5:",":muscle_tone4:",":muscle_tone3:",":muscle_tone2:",":muscle_tone1:",":haircut_tone5:",":haircut_tone4:",":haircut_tone3:",":haircut_tone2:",":haircut_tone1:",":massage_tone5:",":massage_tone4:",":massage_tone3:",":massage_tone2:",":massage_tone1:",":nail_care_tone5:",":nail_care_tone4:",":nail_care_tone3:",":nail_care_tone2:",":nail_care_tone1:",":dancer_tone5:",":dancer_tone4:",":dancer_tone3:",":dancer_tone2:",":dancer_tone1:",":guardsman_tone5:",":guardsman_tone4:",":guardsman_tone3:",":guardsman_tone2:",":guardsman_tone1:",":information_desk_person_tone5:",":information_desk_person_tone4:",":information_desk_person_tone3:",":information_desk_person_tone2:",":information_desk_person_tone1:",":angel_tone5:",":angel_tone4:",":angel_tone3:",":angel_tone2:",":angel_tone1:",":princess_tone5:",":princess_tone4:",":princess_tone3:",":princess_tone2:",":princess_tone1:",":construction_worker_tone5:",":construction_worker_tone4:",":construction_worker_tone3:",":construction_worker_tone2:",":construction_worker_tone1:",":baby_tone5:",":baby_tone4:",":baby_tone3:",":baby_tone2:",":baby_tone1:",":older_woman_tone5:",":grandma_tone5:",":older_woman_tone4:",":grandma_tone4:",":older_woman_tone3:",":grandma_tone3:",":older_woman_tone2:",":grandma_tone2:",":older_woman_tone1:",":grandma_tone1:",":older_man_tone5:",":older_man_tone4:",":older_man_tone3:",":older_man_tone2:",":older_man_tone1:",":man_with_turban_tone5:",":man_with_turban_tone4:",":man_with_turban_tone3:",":man_with_turban_tone2:",":man_with_turban_tone1:",":man_with_gua_pi_mao_tone5:",":man_with_gua_pi_mao_tone4:",":man_with_gua_pi_mao_tone3:",":man_with_gua_pi_mao_tone2:",":man_with_gua_pi_mao_tone1:",":person_with_blond_hair_tone5:",":person_with_blond_hair_tone4:",":person_with_blond_hair_tone3:",":person_with_blond_hair_tone2:",":person_with_blond_hair_tone1:",":bride_with_veil_tone5:",":bride_with_veil_tone4:",":bride_with_veil_tone3:",":bride_with_veil_tone2:",":bride_with_veil_tone1:",":cop_tone5:",":cop_tone4:",":cop_tone3:",":cop_tone2:",":cop_tone1:",":woman_tone5:",":woman_tone4:",":woman_tone3:",":woman_tone2:",":woman_tone1:",":man_tone5:",":man_tone4:",":man_tone3:",":man_tone2:",":man_tone1:",":girl_tone5:",":girl_tone4:",":girl_tone3:",":girl_tone2:",":girl_tone1:",":boy_tone5:",":boy_tone4:",":boy_tone3:",":boy_tone2:",":boy_tone1:",":open_hands_tone5:",":open_hands_tone4:",":open_hands_tone3:",":open_hands_tone2:",":open_hands_tone1:",":clap_tone5:",":clap_tone4:",":clap_tone3:",":clap_tone2:",":clap_tone1:",":thumbsdown_tone5:",":-1_tone5:",":thumbdown_tone5:",":thumbsdown_tone4:",":-1_tone4:",":thumbdown_tone4:",":thumbsdown_tone3:",":-1_tone3:",":thumbdown_tone3:",":thumbsdown_tone2:",":-1_tone2:",":thumbdown_tone2:",":thumbsdown_tone1:",":-1_tone1:",":thumbdown_tone1:",":thumbsup_tone5:",":+1_tone5:",":thumbup_tone5:",":thumbsup_tone4:",":+1_tone4:",":thumbup_tone4:",":thumbsup_tone3:",":+1_tone3:",":thumbup_tone3:",":thumbsup_tone2:",":+1_tone2:",":thumbup_tone2:",":thumbsup_tone1:",":+1_tone1:",":thumbup_tone1:",":ok_hand_tone5:",":ok_hand_tone4:",":ok_hand_tone3:",":ok_hand_tone2:",":ok_hand_tone1:",":wave_tone5:",":wave_tone4:",":wave_tone3:",":wave_tone2:",":wave_tone1:",":punch_tone5:",":punch_tone4:",":punch_tone3:",":punch_tone2:",":punch_tone1:",":point_right_tone5:",":point_right_tone4:",":point_right_tone3:",":point_right_tone2:",":point_right_tone1:",":point_left_tone5:",":point_left_tone4:",":point_left_tone3:",":point_left_tone2:",":point_left_tone1:",":point_down_tone5:",":point_down_tone4:",":point_down_tone3:",":point_down_tone2:",":point_down_tone1:",":point_up_2_tone5:",":point_up_2_tone4:",":point_up_2_tone3:",":point_up_2_tone2:",":point_up_2_tone1:",":nose_tone5:",":nose_tone4:",":nose_tone3:",":nose_tone2:",":nose_tone1:",":ear_tone5:",":ear_tone4:",":ear_tone3:",":ear_tone2:",":ear_tone1:",":lifter_tone5:",":weight_lifter_tone5:",":lifter_tone4:",":weight_lifter_tone4:",":lifter_tone3:",":weight_lifter_tone3:",":lifter_tone2:",":weight_lifter_tone2:",":lifter_tone1:",":weight_lifter_tone1:",":swimmer_tone5:",":swimmer_tone4:",":swimmer_tone3:",":swimmer_tone2:",":swimmer_tone1:",":horse_racing_tone5:",":horse_racing_tone4:",":horse_racing_tone3:",":horse_racing_tone2:",":horse_racing_tone1:",":surfer_tone5:",":surfer_tone4:",":surfer_tone3:",":surfer_tone2:",":surfer_tone1:",":runner_tone5:",":runner_tone4:",":runner_tone3:",":runner_tone2:",":runner_tone1:",":santa_tone5:",":santa_tone4:",":santa_tone3:",":santa_tone2:",":santa_tone1:",":flag_zw:",":zw:",":flag_zm:",":zm:",":flag_za:",":za:",":flag_yt:",":yt:",":flag_ye:",":ye:",":flag_xk:",":xk:",":flag_ws:",":ws:",":flag_wf:",":wf:",":flag_vu:",":vu:",":flag_vn:",":vn:",":flag_vi:",":vi:",":flag_vg:",":vg:",":flag_ve:",":ve:",":flag_vc:",":vc:",":flag_va:",":va:",":flag_uz:",":uz:",":flag_uy:",":uy:",":flag_us:",":us:",":flag_um:",":um:",":flag_ug:",":ug:",":flag_ua:",":ua:",":flag_tz:",":tz:",":flag_tw:",":tw:",":flag_tv:",":tuvalu:",":flag_tt:",":tt:",":flag_tr:",":tr:",":flag_to:",":to:",":flag_tn:",":tn:",":flag_tm:",":turkmenistan:",":flag_tl:",":tl:",":flag_tk:",":tk:",":flag_tj:",":tj:",":flag_th:",":th:",":flag_tg:",":tg:",":flag_tf:",":tf:",":flag_td:",":td:",":flag_tc:",":tc:",":flag_ta:",":ta:",":flag_sz:",":sz:",":flag_sy:",":sy:",":flag_sx:",":sx:",":flag_sv:",":sv:",":flag_st:",":st:",":flag_ss:",":ss:",":flag_sr:",":sr:",":flag_so:",":so:",":flag_sn:",":sn:",":flag_sm:",":sm:",":flag_sl:",":sl:",":flag_sk:",":sk:",":flag_sj:",":sj:",":flag_si:",":si:",":flag_sh:",":sh:",":flag_sg:",":sg:",":flag_se:",":se:",":flag_sd:",":sd:",":flag_sc:",":sc:",":flag_sb:",":sb:",":flag_sa:",":saudiarabia:",":saudi:",":flag_rw:",":rw:",":flag_ru:",":ru:",":flag_rs:",":rs:",":flag_ro:",":ro:",":flag_re:",":re:",":flag_qa:",":qa:",":flag_py:",":py:",":flag_pw:",":pw:",":flag_pt:",":pt:",":flag_ps:",":ps:",":flag_pr:",":pr:",":flag_pn:",":pn:",":flag_pm:",":pm:",":flag_pl:",":pl:",":flag_pk:",":pk:",":flag_ph:",":ph:",":flag_pg:",":pg:",":flag_pf:",":pf:",":flag_pe:",":pe:",":flag_pa:",":pa:",":flag_om:",":om:",":flag_nz:",":nz:",":flag_nu:",":nu:",":flag_nr:",":nr:",":flag_np:",":np:",":flag_no:",":no:",":flag_nl:",":nl:",":flag_ni:",":ni:",":flag_ng:",":nigeria:",":flag_nf:",":nf:",":flag_ne:",":ne:",":flag_nc:",":nc:",":flag_na:",":na:",":flag_mz:",":mz:",":flag_my:",":my:",":flag_mx:",":mx:",":flag_mw:",":mw:",":flag_mv:",":mv:",":flag_mu:",":mu:",":flag_mt:",":mt:",":flag_ms:",":ms:",":flag_mr:",":mr:",":flag_mq:",":mq:",":flag_mp:",":mp:",":flag_mo:",":mo:",":flag_mn:",":mn:",":flag_mm:",":mm:",":flag_ml:",":ml:",":flag_mk:",":mk:",":flag_mh:",":mh:",":flag_mg:",":mg:",":flag_mf:",":mf:",":flag_me:",":me:",":flag_md:",":md:",":flag_mc:",":mc:",":flag_ma:",":ma:",":flag_ly:",":ly:",":flag_lv:",":lv:",":flag_lu:",":lu:",":flag_lt:",":lt:",":flag_ls:",":ls:",":flag_lr:",":lr:",":flag_lk:",":lk:",":flag_li:",":li:",":flag_lc:",":lc:",":flag_lb:",":lb:",":flag_la:",":la:",":flag_kz:",":kz:",":flag_ky:",":ky:",":flag_kw:",":kw:",":flag_kr:",":kr:",":flag_kp:",":kp:",":flag_kn:",":kn:",":flag_km:",":km:",":flag_ki:",":ki:",":flag_kh:",":kh:",":flag_kg:",":kg:",":flag_ke:",":ke:",":flag_jp:",":jp:",":flag_jo:",":jo:",":flag_jm:",":jm:",":flag_je:",":je:",":flag_it:",":it:",":flag_is:",":is:",":flag_ir:",":ir:",":flag_iq:",":iq:",":flag_io:",":io:",":flag_in:",":in:",":flag_im:",":im:",":flag_il:",":il:",":flag_ie:",":ie:",":flag_id:",":indonesia:",":flag_ic:",":ic:",":flag_hu:",":hu:",":flag_ht:",":ht:",":flag_hr:",":hr:",":flag_hn:",":hn:",":flag_hm:",":hm:",":flag_hk:",":hk:",":flag_gy:",":gy:",":flag_gw:",":gw:",":flag_gu:",":gu:",":flag_gt:",":gt:",":flag_gs:",":gs:",":flag_gr:",":gr:",":flag_gq:",":gq:",":flag_gp:",":gp:",":flag_gn:",":gn:",":flag_gm:",":gm:",":flag_gl:",":gl:",":flag_gi:",":gi:",":flag_gh:",":gh:",":flag_gg:",":gg:",":flag_gf:",":gf:",":flag_ge:",":ge:",":flag_gd:",":gd:",":flag_gb:",":gb:",":flag_ga:",":ga:",":flag_fr:",":fr:",":flag_fo:",":fo:",":flag_fm:",":fm:",":flag_fk:",":fk:",":flag_fj:",":fj:",":flag_fi:",":fi:",":flag_eu:",":eu:",":flag_et:",":et:",":flag_es:",":es:",":flag_er:",":er:",":flag_eh:",":eh:",":flag_eg:",":eg:",":flag_ee:",":ee:",":flag_ec:",":ec:",":flag_ea:",":ea:",":flag_dz:",":dz:",":flag_do:",":do:",":flag_dm:",":dm:",":flag_dk:",":dk:",":flag_dj:",":dj:",":flag_dg:",":dg:",":flag_de:",":de:",":flag_cz:",":cz:",":flag_cy:",":cy:",":flag_cx:",":cx:",":flag_cw:",":cw:",":flag_cv:",":cv:",":flag_cu:",":cu:",":flag_cr:",":cr:",":flag_cp:",":cp:",":flag_co:",":co:",":flag_cn:",":cn:",":flag_cm:",":cm:",":flag_cl:",":chile:",":flag_ck:",":ck:",":flag_ci:",":ci:",":flag_ch:",":ch:",":flag_cg:",":cg:",":flag_cf:",":cf:",":flag_cd:",":congo:",":flag_cc:",":cc:",":flag_ca:",":ca:",":flag_bz:",":bz:",":flag_by:",":by:",":flag_bw:",":bw:",":flag_bv:",":bv:",":flag_bt:",":bt:",":flag_bs:",":bs:",":flag_br:",":br:",":flag_bq:",":bq:",":flag_bo:",":bo:",":flag_bn:",":bn:",":flag_bm:",":bm:",":flag_bl:",":bl:",":flag_bj:",":bj:",":flag_bi:",":bi:",":flag_bh:",":bh:",":flag_bg:",":bg:",":flag_bf:",":bf:",":flag_be:",":be:",":flag_bd:",":bd:",":flag_bb:",":bb:",":flag_ba:",":ba:",":flag_az:",":az:",":flag_ax:",":ax:",":flag_aw:",":aw:",":flag_au:",":au:",":flag_at:",":at:",":flag_as:",":as:",":flag_ar:",":ar:",":flag_aq:",":aq:",":flag_ao:",":ao:",":flag_am:",":am:",":flag_al:",":al:",":flag_ai:",":ai:",":flag_ag:",":ag:",":flag_af:",":af:",":flag_ae:",":ae:",":flag_ad:",":ad:",":flag_ac:",":ac:",":mahjong:",":parking:",":sa:",":u7121:",":u6307:",":u6708:",":film_frames:",":tickets:",":admission_tickets:",":lifter:",":weight_lifter:",":golfer:",":motorcycle:",":racing_motorcycle:",":race_car:",":racing_car:",":military_medal:",":reminder_ribbon:",":hot_pepper:",":cloud_rain:",":cloud_with_rain:",":cloud_snow:",":cloud_with_snow:",":cloud_lightning:",":cloud_with_lightning:",":cloud_tornado:",":cloud_with_tornado:",":fog:",":wind_blowing_face:",":chipmunk:",":spider:",":spider_web:",":thermometer:",":microphone2:",":studio_microphone:",":level_slider:",":control_knobs:",":flag_white:",":waving_white_flag:",":rosette:",":label:",":projector:",":film_projector:",":om_symbol:",":dove:",":dove_of_peace:",":candle:",":clock:",":mantlepiece_clock:",":hole:",":dark_sunglasses:",":joystick:",":paperclips:",":linked_paperclips:",":pen_ballpoint:",":lower_left_ballpoint_pen:",":pen_fountain:",":lower_left_fountain_pen:",":paintbrush:",":lower_left_paintbrush:",":crayon:",":lower_left_crayon:",":desktop:",":desktop_computer:",":printer:",":trackball:",":frame_photo:",":frame_with_picture:",":dividers:",":card_index_dividers:",":card_box:",":card_file_box:",":file_cabinet:",":wastebasket:",":notepad_spiral:",":spiral_note_pad:",":calendar_spiral:",":spiral_calendar_pad:",":compression:",":key2:",":old_key:",":newspaper2:",":rolled_up_newspaper:",":dagger:",":dagger_knife:",":speaking_head:",":speaking_head_in_silhouette:",":speech_left:",":left_speech_bubble:",":anger_right:",":right_anger_bubble:",":ballot_box:",":ballot_box_with_ballot:",":map:",":world_map:",":tools:",":hammer_and_wrench:",":shield:",":oil:",":oil_drum:",":satellite_orbital:",":fork_knife_plate:",":fork_and_knife_with_plate:",":eye:",":levitate:",":man_in_business_suit_levitating:",":spy:",":sleuth_or_spy:",":hand_splayed:",":raised_hand_with_fingers_splayed:",":mountain_snow:",":snow_capped_mountain:",":camping:",":beach:",":beach_with_umbrella:",":construction_site:",":building_construction:",":homes:",":house_buildings:",":cityscape:",":house_abandoned:",":derelict_house_building:",":classical_building:",":desert:",":island:",":desert_island:",":park:",":national_park:",":stadium:",":couch:",":couch_and_lamp:",":shopping_bags:",":bellhop:",":bellhop_bell:",":bed:",":motorway:",":railway_track:",":railroad_track:",":motorboat:",":airplane_small:",":small_airplane:",":cruise_ship:",":passenger_ship:",":white_sun_small_cloud:",":white_sun_with_small_cloud:",":white_sun_cloud:",":white_sun_behind_cloud:",":white_sun_rain_cloud:",":white_sun_behind_cloud_with_rain:",":mouse_three_button:",":three_button_mouse:",":point_up_tone1:",":point_up_tone2:",":point_up_tone3:",":point_up_tone4:",":point_up_tone5:",":v_tone1:",":v_tone2:",":v_tone3:",":v_tone4:",":v_tone5:",":fist_tone1:",":fist_tone2:",":fist_tone3:",":fist_tone4:",":fist_tone5:",":raised_hand_tone1:",":raised_hand_tone2:",":raised_hand_tone3:",":raised_hand_tone4:",":raised_hand_tone5:",":writing_hand_tone1:",":writing_hand_tone2:",":writing_hand_tone3:",":writing_hand_tone4:",":writing_hand_tone5:",":basketball_player_tone1:",":person_with_ball_tone1:",":basketball_player_tone2:",":person_with_ball_tone2:",":basketball_player_tone3:",":person_with_ball_tone3:",":basketball_player_tone4:",":person_with_ball_tone4:",":basketball_player_tone5:",":person_with_ball_tone5:",":copyright:",":registered:",":bangbang:",":interrobang:",":tm:",":information_source:",":left_right_arrow:",":arrow_up_down:",":arrow_upper_left:",":arrow_upper_right:",":arrow_lower_right:",":arrow_lower_left:",":leftwards_arrow_with_hook:",":arrow_right_hook:",":watch:",":hourglass:",":m:",":black_small_square:",":white_small_square:",":arrow_forward:",":arrow_backward:",":white_medium_square:",":black_medium_square:",":white_medium_small_square:",":black_medium_small_square:",":sunny:",":cloud:",":telephone:",":ballot_box_with_check:",":umbrella:",":coffee:",":point_up:",":relaxed:",":aries:",":taurus:",":gemini:",":cancer:",":leo:",":virgo:",":libra:",":scorpius:",":sagittarius:",":capricorn:",":aquarius:",":pisces:",":spades:",":clubs:",":hearts:",":diamonds:",":hotsprings:",":recycle:",":wheelchair:",":anchor:",":warning:",":zap:",":white_circle:",":black_circle:",":soccer:",":baseball:",":snowman:",":partly_sunny:",":no_entry:",":church:",":fountain:",":golf:",":sailboat:",":tent:",":fuelpump:",":scissors:",":airplane:",":envelope:",":v:",":pencil2:",":black_nib:",":heavy_check_mark:",":heavy_multiplication_x:",":eight_spoked_asterisk:",":eight_pointed_black_star:",":snowflake:",":sparkle:",":exclamation:",":heart:",":arrow_right:",":arrow_heading_up:",":arrow_heading_down:",":arrow_left:",":arrow_up:",":arrow_down:",":black_large_square:",":white_large_square:",":star:",":o:",":wavy_dash:",":part_alternation_mark:",":congratulations:",":secret:",":cross:",":latin_cross:",":keyboard:",":writing_hand:",":eject:",":eject_symbol:",":track_next:",":next_track:",":track_previous:",":previous_track:",":play_pause:",":stopwatch:",":timer:",":timer_clock:",":pause_button:",":double_vertical_bar:",":stop_button:",":record_button:",":umbrella2:",":snowman2:",":comet:",":shamrock:",":skull_crossbones:",":skull_and_crossbones:",":radioactive:",":radioactive_sign:",":biohazard:",":biohazard_sign:",":orthodox_cross:",":star_and_crescent:",":peace:",":peace_symbol:",":yin_yang:",":wheel_of_dharma:",":frowning2:",":white_frowning_face:",":hammer_pick:",":hammer_and_pick:",":crossed_swords:",":scales:",":alembic:",":gear:",":atom:",":atom_symbol:",":fleur-de-lis:",":coffin:",":urn:",":funeral_urn:",":thunder_cloud_rain:",":thunder_cloud_and_rain:",":pick:",":helmet_with_cross:",":helmet_with_white_cross:",":chains:",":shinto_shrine:",":mountain:",":beach_umbrella:",":umbrella_on_ground:",":ferry:",":skier:",":ice_skate:",":basketball_player:",":person_with_ball:",":star_of_david:",":heart_exclamation:",":heavy_heart_exclamation_mark_ornament:",":third_place:",":third_place_medal:",":second_place:",":second_place_medal:",":first_place:",":first_place_medal:",":fencer:",":fencing:",":goal:",":goal_net:",":handball:",":regional_indicator_z:",":water_polo:",":martial_arts_uniform:",":karate_uniform:",":boxing_glove:",":boxing_gloves:",":wrestlers:",":wrestling:",":juggling:",":juggler:",":cartwheel:",":person_doing_cartwheel:",":canoe:",":kayak:",":motor_scooter:",":motorbike:",":scooter:",":shopping_cart:",":shopping_trolley:",":black_joker:",":a:",":b:",":o2:",":octagonal_sign:",":stop_sign:",":ab:",":cl:",":regional_indicator_y:",":cool:",":free:",":id:",":new:",":ng:",":ok:",":sos:",":spoon:",":up:",":vs:",":champagne_glass:",":clinking_glass:",":tumbler_glass:",":whisky:",":koko:",":stuffed_flatbread:",":stuffed_pita:",":u7981:",":u7a7a:",":u5408:",":u6e80:",":u6709:",":shallow_pan_of_food:",":paella:",":u7533:",":u5272:",":salad:",":green_salad:",":u55b6:",":ideograph_advantage:",":accept:",":cyclone:",":french_bread:",":baguette_bread:",":foggy:",":closed_umbrella:",":night_with_stars:",":sunrise_over_mountains:",":sunrise:",":city_dusk:",":carrot:",":city_sunset:",":city_sunrise:",":rainbow:",":potato:",":bridge_at_night:",":ocean:",":volcano:",":milky_way:",":earth_asia:",":new_moon:",":bacon:",":first_quarter_moon:",":waxing_gibbous_moon:",":full_moon:",":crescent_moon:",":first_quarter_moon_with_face:",":star2:",":cucumber:",":stars:",":chestnut:",":avocado:",":seedling:",":palm_tree:",":cactus:",":tulip:",":cherry_blossom:",":rose:",":hibiscus:",":sunflower:",":blossom:",":corn:",":croissant:",":ear_of_rice:",":herb:",":four_leaf_clover:",":maple_leaf:",":fallen_leaf:",":leaves:",":mushroom:",":tomato:",":eggplant:",":grapes:",":melon:",":watermelon:",":tangerine:",":wilted_rose:",":wilted_flower:",":banana:",":pineapple:",":apple:",":green_apple:",":peach:",":cherries:",":strawberry:",":rhino:",":rhinoceros:",":hamburger:",":pizza:",":meat_on_bone:",":lizard:",":poultry_leg:",":rice_cracker:",":rice_ball:",":gorilla:",":rice:",":curry:",":deer:",":ramen:",":spaghetti:",":bread:",":fries:",":butterfly:",":sweet_potato:",":dango:",":fox:",":fox_face:",":oden:",":sushi:",":owl:",":fried_shrimp:",":fish_cake:",":shark:",":icecream:",":bat:",":shaved_ice:",":regional_indicator_x:",":ice_cream:",":duck:",":doughnut:",":eagle:",":cookie:",":black_heart:",":chocolate_bar:",":candy:",":lollipop:",":custard:",":pudding:",":flan:",":honey_pot:",":fingers_crossed:",":hand_with_index_and_middle_finger_crossed:",":cake:",":bento:",":stew:",":handshake:",":shaking_hands:",":cooking:",":fork_and_knife:",":tea:",":sake:",":wine_glass:",":cocktail:",":tropical_drink:",":beer:",":beers:",":ribbon:",":gift:",":birthday:",":jack_o_lantern:",":left_facing_fist:",":left_fist:",":right_facing_fist:",":right_fist:",":christmas_tree:",":santa:",":fireworks:",":raised_back_of_hand:",":back_of_hand:",":sparkler:",":balloon:",":tada:",":confetti_ball:",":tanabata_tree:",":crossed_flags:",":call_me:",":call_me_hand:",":bamboo:",":man_dancing:",":male_dancer:",":dolls:",":selfie:",":flags:",":pregnant_woman:",":expecting_woman:",":wind_chime:",":face_palm:",":facepalm:",":shrug:",":rice_scene:",":school_satchel:",":mortar_board:",":carousel_horse:",":ferris_wheel:",":roller_coaster:",":fishing_pole_and_fish:",":microphone:",":movie_camera:",":cinema:",":headphones:",":mrs_claus:",":mother_christmas:",":art:",":man_in_tuxedo:",":tophat:",":circus_tent:",":prince:",":ticket:",":clapper:",":performing_arts:",":sneezing_face:",":sneeze:",":video_game:",":dart:",":slot_machine:",":8ball:",":game_die:",":bowling:",":flower_playing_cards:",":lying_face:",":liar:",":musical_note:",":notes:",":saxophone:",":drooling_face:",":drool:",":guitar:",":musical_keyboard:",":trumpet:",":rofl:",":rolling_on_the_floor_laughing:",":violin:",":musical_score:",":running_shirt_with_sash:",":nauseated_face:",":sick:",":tennis:",":ski:",":basketball:",":checkered_flag:",":clown:",":clown_face:",":snowboarder:",":runner:",":surfer:",":trophy:",":football:",":swimmer:",":house:",":house_with_garden:",":office:",":post_office:",":hospital:",":bank:",":atm:",":hotel:",":love_hotel:",":convenience_store:",":school:",":department_store:",":cowboy:",":face_with_cowboy_hat:",":factory:",":izakaya_lantern:",":japanese_castle:",":european_castle:",":snail:",":snake:",":racehorse:",":sheep:",":monkey:",":chicken:",":boar:",":elephant:",":octopus:",":shell:",":bug:",":ant:",":bee:",":beetle:",":fish:",":tropical_fish:",":blowfish:",":turtle:",":hatching_chick:",":baby_chick:",":hatched_chick:",":bird:",":penguin:",":koala:",":poodle:",":camel:",":dolphin:",":mouse:",":cow:",":tiger:",":rabbit:",":cat:",":dragon_face:",":whale:",":horse:",":monkey_face:",":dog:",":pig:",":frog:",":hamster:",":wolf:",":bear:",":panda_face:",":pig_nose:",":feet:",":paw_prints:",":eyes:",":ear:",":nose:",":lips:",":tongue:",":point_up_2:",":point_down:",":point_left:",":point_right:",":punch:",":wave:",":ok_hand:",":thumbsup:",":+1:",":thumbup:",":thumbsdown:",":-1:",":thumbdown:",":clap:",":open_hands:",":crown:",":womans_hat:",":eyeglasses:",":necktie:",":shirt:",":jeans:",":dress:",":kimono:",":bikini:",":womans_clothes:",":purse:",":handbag:",":pouch:",":mans_shoe:",":athletic_shoe:",":high_heel:",":sandal:",":boot:",":footprints:",":bust_in_silhouette:",":boy:",":girl:",":man:",":woman:",":family:",":couple:",":cop:",":dancers:",":bride_with_veil:",":person_with_blond_hair:",":man_with_gua_pi_mao:",":man_with_turban:",":older_man:",":older_woman:",":grandma:",":baby:",":construction_worker:",":princess:",":japanese_ogre:",":japanese_goblin:",":ghost:",":angel:",":alien:",":space_invader:",":imp:",":skull:",":skeleton:",":card_index:",":information_desk_person:",":guardsman:",":dancer:",":lipstick:",":nail_care:",":ledger:",":massage:",":notebook:",":haircut:",":notebook_with_decorative_cover:",":barber:",":closed_book:",":syringe:",":book:",":pill:",":green_book:",":kiss:",":blue_book:",":love_letter:",":orange_book:",":ring:",":books:",":gem:",":name_badge:",":couplekiss:",":scroll:",":bouquet:",":pencil:",":couple_with_heart:",":telephone_receiver:",":wedding:",":pager:",":fax:",":heartbeat:",":satellite:",":loudspeaker:",":broken_heart:",":mega:",":outbox_tray:",":two_hearts:",":inbox_tray:",":package:",":sparkling_heart:",":e-mail:",":email:",":incoming_envelope:",":heartpulse:",":envelope_with_arrow:",":mailbox_closed:",":cupid:",":mailbox:",":postbox:",":blue_heart:",":newspaper:",":iphone:",":green_heart:",":calling:",":vibration_mode:",":yellow_heart:",":mobile_phone_off:",":signal_strength:",":purple_heart:",":camera:",":video_camera:",":gift_heart:",":tv:",":radio:",":revolving_hearts:",":vhs:",":arrows_clockwise:",":heart_decoration:",":loud_sound:",":battery:",":diamond_shape_with_a_dot_inside:",":electric_plug:",":mag:",":bulb:",":mag_right:",":lock_with_ink_pen:",":anger:",":closed_lock_with_key:",":key:",":bomb:",":lock:",":unlock:",":zzz:",":bell:",":bookmark:",":boom:",":link:",":radio_button:",":sweat_drops:",":back:",":end:",":droplet:",":on:",":soon:",":dash:",":top:",":underage:",":poop:",":shit:",":hankey:",":poo:",":keycap_ten:",":muscle:",":capital_abcd:",":abcd:",":dizzy:",":1234:",":symbols:",":speech_balloon:",":abc:",":fire:",":flame:",":white_flower:",":flashlight:",":wrench:",":100:",":hammer:",":nut_and_bolt:",":moneybag:",":knife:",":gun:",":currency_exchange:",":crystal_ball:",":heavy_dollar_sign:",":six_pointed_star:",":credit_card:",":beginner:",":trident:",":yen:",":black_square_button:",":white_square_button:",":dollar:",":red_circle:",":blue_circle:",":money_with_wings:",":large_orange_diamond:",":large_blue_diamond:",":chart:",":small_orange_diamond:",":small_blue_diamond:",":seat:",":small_red_triangle:",":small_red_triangle_down:",":computer:",":arrow_up_small:",":briefcase:",":arrow_down_small:",":clock1:",":minidisc:",":clock2:",":floppy_disk:",":clock3:",":cd:",":clock4:",":dvd:",":clock5:",":clock6:",":file_folder:",":clock7:",":clock8:",":open_file_folder:",":clock9:",":clock10:",":page_with_curl:",":clock11:",":clock12:",":page_facing_up:",":mount_fuji:",":tokyo_tower:",":date:",":statue_of_liberty:",":japan:",":calendar:",":moyai:",":grin:",":joy:",":smiley:",":chart_with_upwards_trend:",":smile:",":sweat_smile:",":chart_with_downwards_trend:",":laughing:",":satisfied:",":wink:",":bar_chart:",":blush:",":yum:",":clipboard:",":relieved:",":heart_eyes:",":pushpin:",":smirk:",":unamused:",":round_pushpin:",":sweat:",":pensive:",":paperclip:",":confounded:",":kissing_heart:",":straight_ruler:",":kissing_closed_eyes:",":stuck_out_tongue_winking_eye:",":triangular_ruler:",":stuck_out_tongue_closed_eyes:",":disappointed:",":bookmark_tabs:",":angry:",":rage:",":cry:",":persevere:",":triumph:",":disappointed_relieved:",":fearful:",":weary:",":sleepy:",":tired_face:",":sob:",":cold_sweat:",":scream:",":astonished:",":flushed:",":dizzy_face:",":mask:",":smile_cat:",":joy_cat:",":smiley_cat:",":heart_eyes_cat:",":smirk_cat:",":kissing_cat:",":pouting_cat:",":crying_cat_face:",":scream_cat:",":no_good:",":ok_woman:",":bow:",":see_no_evil:",":hear_no_evil:",":speak_no_evil:",":raising_hand:",":raised_hands:",":person_frowning:",":person_with_pouting_face:",":pray:",":rocket:",":railway_car:",":bullettrain_side:",":bullettrain_front:",":metro:",":station:",":bus:",":busstop:",":ambulance:",":fire_engine:",":police_car:",":taxi:",":red_car:",":blue_car:",":truck:",":ship:",":speedboat:",":traffic_light:",":construction:",":rotating_light:",":triangular_flag_on_post:",":door:",":no_entry_sign:",":smoking:",":no_smoking:",":bike:",":walking:",":mens:",":womens:",":restroom:",":baby_symbol:",":toilet:",":wc:",":bath:",":metal:",":sign_of_the_horns:",":grinning:",":innocent:",":smiling_imp:",":sunglasses:",":neutral_face:",":expressionless:",":confused:",":kissing:",":kissing_smiling_eyes:",":stuck_out_tongue:",":worried:",":frowning:",":anguished:",":grimacing:",":open_mouth:",":hushed:",":sleeping:",":no_mouth:",":helicopter:",":steam_locomotive:",":train2:",":light_rail:",":tram:",":oncoming_bus:",":trolleybus:",":minibus:",":oncoming_police_car:",":oncoming_taxi:",":oncoming_automobile:",":articulated_lorry:",":tractor:",":monorail:",":mountain_railway:",":suspension_railway:",":mountain_cableway:",":aerial_tramway:",":rowboat:",":vertical_traffic_light:",":put_litter_in_its_place:",":do_not_litter:",":potable_water:",":non-potable_water:",":no_bicycles:",":bicyclist:",":mountain_bicyclist:",":no_pedestrians:",":children_crossing:",":shower:",":bathtub:",":passport_control:",":customs:",":baggage_claim:",":left_luggage:",":earth_africa:",":earth_americas:",":globe_with_meridians:",":waxing_crescent_moon:",":waning_gibbous_moon:",":last_quarter_moon:",":waning_crescent_moon:",":new_moon_with_face:",":last_quarter_moon_with_face:",":full_moon_with_face:",":sun_with_face:",":evergreen_tree:",":deciduous_tree:",":lemon:",":pear:",":baby_bottle:",":horse_racing:",":rugby_football:",":european_post_office:",":rat:",":mouse2:",":ox:",":water_buffalo:",":cow2:",":tiger2:",":leopard:",":rabbit2:",":cat2:",":dragon:",":crocodile:",":whale2:",":ram:",":goat:",":rooster:",":dog2:",":pig2:",":dromedary_camel:",":busts_in_silhouette:",":two_men_holding_hands:",":two_women_holding_hands:",":thought_balloon:",":euro:",":pound:",":mailbox_with_mail:",":mailbox_with_no_mail:",":postal_horn:",":no_mobile_phones:",":twisted_rightwards_arrows:",":repeat:",":repeat_one:",":arrows_counterclockwise:",":low_brightness:",":high_brightness:",":mute:",":sound:",":no_bell:",":microscope:",":telescope:",":clock130:",":clock230:",":clock330:",":clock430:",":clock530:",":clock630:",":clock730:",":clock830:",":clock930:",":clock1030:",":clock1130:",":clock1230:",":speaker:",":train:",":medal:",":sports_medal:",":flag_black:",":waving_black_flag:",":camera_with_flash:",":sleeping_accommodation:",":middle_finger:",":reversed_hand_with_middle_finger_extended:",":vulcan:",":raised_hand_with_part_between_middle_and_ring_fingers:",":slight_frown:",":slightly_frowning_face:",":slight_smile:",":slightly_smiling_face:",":airplane_departure:",":airplane_arriving:",":tone1:",":tone2:",":tone3:",":tone4:",":tone5:",":upside_down:",":upside_down_face:",":money_mouth:",":money_mouth_face:",":nerd:",":nerd_face:",":hugging:",":hugging_face:",":rolling_eyes:",":face_with_rolling_eyes:",":thinking:",":thinking_face:",":zipper_mouth:",":zipper_mouth_face:",":thermometer_face:",":face_with_thermometer:",":head_bandage:",":face_with_head_bandage:",":robot:",":robot_face:",":lion_face:",":lion:",":unicorn:",":unicorn_face:",":scorpion:",":crab:",":turkey:",":cheese:",":cheese_wedge:",":hotdog:",":hot_dog:",":taco:",":burrito:",":popcorn:",":champagne:",":bottle_with_popping_cork:",":bow_and_arrow:",":archery:",":amphora:",":place_of_worship:",":worship_symbol:",":kaaba:",":mosque:",":synagogue:",":menorah:",":prayer_beads:",":cricket:",":cricket_bat_ball:",":volleyball:",":field_hockey:",":hockey:",":ping_pong:",":table_tennis:",":badminton:",":drum:",":drum_with_drumsticks:",":shrimp:",":squid:",":egg:",":milk:",":glass_of_milk:",":peanuts:",":shelled_peanut:",":kiwi:",":kiwifruit:",":pancakes:",":regional_indicator_w:",":regional_indicator_v:",":regional_indicator_u:",":regional_indicator_t:",":regional_indicator_s:",":regional_indicator_r:",":regional_indicator_q:",":regional_indicator_p:",":regional_indicator_o:",":regional_indicator_n:",":regional_indicator_m:",":regional_indicator_l:",":regional_indicator_k:",":regional_indicator_j:",":regional_indicator_i:",":regional_indicator_h:",":regional_indicator_g:",":regional_indicator_f:",":regional_indicator_e:",":regional_indicator_d:",":regional_indicator_c:",":regional_indicator_b:",":regional_indicator_a:",":fast_forward:",":rewind:",":arrow_double_up:",":arrow_double_down:",":alarm_clock:",":hourglass_flowing_sand:",":ophiuchus:",":white_check_mark:",":fist:",":raised_hand:",":sparkles:",":x:",":negative_squared_cross_mark:",":question:",":grey_question:",":grey_exclamation:",":heavy_plus_sign:",":heavy_minus_sign:",":heavy_division_sign:",":curly_loop:",":loop:","emoji","tmpShortNames","shortnames","asciiList","<3","</3",":')",":'-)",":D",":-D","=D",":)",":-)","=]","=)",":]","':)","':-)","'=)","':D","':-D","'=D",">:)",">;)",">:-)",">=)",";)",";-)","*-)","*)",";-]",";]",";D",";^)","':(","':-(","'=(",":*",":-*","=*",":^*",">:P","X-P","x-p",">:[",":-(",":(",":-[",":[","=(",">:(",">:-(",":@",":'(",":'-(",";(",";-(",">.<","D:",":$","=$","#-)","#)","%-)","%)","X)","X-)","*\\0/*","\\0/","*\\O/*","\\O/","O:-)","0:-3","0:3","0:-)","0:)","0;^)","O:)","O;-)","O=)","0;-)","O:-3","O:3","B-)","B)","8)","8-)","B-D","8-D","-_-","-__-","-___-",">:\\",">:/",":-/",":-.",":/",":\\","=/","=\\",":L","=L",":P",":-P","=P",":-p",":p","=p",":-Þ",":Þ",":þ",":-þ",":-b",":b","d:",":-O",":O",":-o",":o","O_O",">:O",":-X",":X",":-#",":#","=X","=x",":x",":-x","=#","asciiRegexp","unicodeRegexp","jsEscapeMap","👩‍❤️‍💋‍👩","👩❤💋👩","👨‍❤️‍💋‍👨","👨❤💋👨","👨‍👨‍👦‍👦","👨👨👦👦","👨‍👨‍👧‍👦","👨👨👧👦","👨‍👨‍👧‍👧","👨👨👧👧","👨‍👩‍👦‍👦","👨👩👦👦","👨‍👩‍👧‍👦","👨👩👧👦","👨‍👩‍👧‍👧","👨👩👧👧","👩‍👩‍👦‍👦","👩👩👦👦","👩‍👩‍👧‍👦","👩👩👧👦","👩‍👩‍👧‍👧","👩👩👧👧","👩‍❤️‍👩","👩❤👩","👨‍❤️‍👨","👨❤👨","👨‍👨‍👦","👨👨👦","👨‍👨‍👧","👨👨👧","👨‍👩‍👧","👨👩👧","👩‍👩‍👦","👩👩👦","👩‍👩‍👧","👩👩👧","🏳️‍🌈","🏳🌈","👁‍🗨","👁🗨","#️⃣","#⃣","0️⃣","0⃣","1️⃣","1⃣","2️⃣","2⃣","3️⃣","3⃣","4️⃣","4⃣","5️⃣","5⃣","6️⃣","6⃣","7️⃣","7⃣","8️⃣","8⃣","9️⃣","9⃣","*️⃣","*⃣","🤾🏿","🤾🏾","🤾🏽","🤾🏼","🤾🏻","🤽🏿","🤽🏾","🤽🏽","🤽🏼","🤽🏻","🤼🏿","🤼🏾","🤼🏽","🤼🏼","🤼🏻","🤹🏿","🤹🏾","🤹🏽","🤹🏼","🤹🏻","🤸🏿","🤸🏾","🤸🏽","🤸🏼","🤸🏻","🤷🏿","🤷🏾","🤷🏽","🤷🏼","🤷🏻","🤶🏿","🤶🏾","🤶🏽","🤶🏼","🤶🏻","🤵🏿","🤵🏾","🤵🏽","🤵🏼","🤵🏻","🤴🏿","🤴🏾","🤴🏽","🤴🏼","🤴🏻","🤳🏿","🤳🏾","🤳🏽","🤳🏼","🤳🏻","🤰🏿","🤰🏾","🤰🏽","🤰🏼","🤰🏻","🤦🏿","🤦🏾","🤦🏽","🤦🏼","🤦🏻","🤞🏿","🤞🏾","🤞🏽","🤞🏼","🤞🏻","🤝🏿","🤝🏾","🤝🏽","🤝🏼","🤝🏻","🤜🏿","🤜🏾","🤜🏽","🤜🏼","🤜🏻","🤛🏿","🤛🏾","🤛🏽","🤛🏼","🤛🏻","🤚🏿","🤚🏾","🤚🏽","🤚🏼","🤚🏻","🤙🏿","🤙🏾","🤙🏽","🤙🏼","🤙🏻","🤘🏿","🤘🏾","🤘🏽","🤘🏼","🤘🏻","🛀🏿","🛀🏾","🛀🏽","🛀🏼","🛀🏻","🚶🏿","🚶🏾","🚶🏽","🚶🏼","🚶🏻","🚵🏿","🚵🏾","🚵🏽","🚵🏼","🚵🏻","🚴🏿","🚴🏾","🚴🏽","🚴🏼","🚴🏻","🚣🏿","🚣🏾","🚣🏽","🚣🏼","🚣🏻","🙏🏿","🙏🏾","🙏🏽","🙏🏼","🙏🏻","🙎🏿","🙎🏾","🙎🏽","🙎🏼","🙎🏻","🙍🏿","🙍🏾","🙍🏽","🙍🏼","🙍🏻","🙌🏿","🙌🏾","🙌🏽","🙌🏼","🙌🏻","🙋🏿","🙋🏾","🙋🏽","🙋🏼","🙋🏻","🙇🏿","🙇🏾","🙇🏽","🙇🏼","🙇🏻","🙆🏿","🙆🏾","🙆🏽","🙆🏼","🙆🏻","🙅🏿","🙅🏾","🙅🏽","🙅🏼","🙅🏻","🖖🏿","🖖🏾","🖖🏽","🖖🏼","🖖🏻","🖕🏿","🖕🏾","🖕🏽","🖕🏼","🖕🏻","🖐🏿","🖐🏾","🖐🏽","🖐🏼","🖐🏻","🕺🏿","🕺🏾","🕺🏽","🕺🏼","🕺🏻","🕵🏿","🕵🏾","🕵🏽","🕵🏼","🕵🏻","💪🏿","💪🏾","💪🏽","💪🏼","💪🏻","💇🏿","💇🏾","💇🏽","💇🏼","💇🏻","💆🏿","💆🏾","💆🏽","💆🏼","💆🏻","💅🏿","💅🏾","💅🏽","💅🏼","💅🏻","💃🏿","💃🏾","💃🏽","💃🏼","💃🏻","💂🏿","💂🏾","💂🏽","💂🏼","💂🏻","💁🏿","💁🏾","💁🏽","💁🏼","💁🏻","👼🏿","👼🏾","👼🏽","👼🏼","👼🏻","👸🏿","👸🏾","👸🏽","👸🏼","👸🏻","👷🏿","👷🏾","👷🏽","👷🏼","👷🏻","👶🏿","👶🏾","👶🏽","👶🏼","👶🏻","👵🏿","👵🏾","👵🏽","👵🏼","👵🏻","👴🏿","👴🏾","👴🏽","👴🏼","👴🏻","👳🏿","👳🏾","👳🏽","👳🏼","👳🏻","👲🏿","👲🏾","👲🏽","👲🏼","👲🏻","👱🏿","👱🏾","👱🏽","👱🏼","👱🏻","👰🏿","👰🏾","👰🏽","👰🏼","👰🏻","👮🏿","👮🏾","👮🏽","👮🏼","👮🏻","👩🏿","👩🏾","👩🏽","👩🏼","👩🏻","👨🏿","👨🏾","👨🏽","👨🏼","👨🏻","👧🏿","👧🏾","👧🏽","👧🏼","👧🏻","👦🏿","👦🏾","👦🏽","👦🏼","👦🏻","👐🏿","👐🏾","👐🏽","👐🏼","👐🏻","👏🏿","👏🏾","👏🏽","👏🏼","👏🏻","👎🏿","👎🏾","👎🏽","👎🏼","👎🏻","👍🏿","👍🏾","👍🏽","👍🏼","👍🏻","👌🏿","👌🏾","👌🏽","👌🏼","👌🏻","👋🏿","👋🏾","👋🏽","👋🏼","👋🏻","👊🏿","👊🏾","👊🏽","👊🏼","👊🏻","👉🏿","👉🏾","👉🏽","👉🏼","👉🏻","👈🏿","👈🏾","👈🏽","👈🏼","👈🏻","👇🏿","👇🏾","👇🏽","👇🏼","👇🏻","👆🏿","👆🏾","👆🏽","👆🏼","👆🏻","👃🏿","👃🏾","👃🏽","👃🏼","👃🏻","👂🏿","👂🏾","👂🏽","👂🏼","👂🏻","🏋🏿","🏋🏾","🏋🏽","🏋🏼","🏋🏻","🏊🏿","🏊🏾","🏊🏽","🏊🏼","🏊🏻","🏇🏿","🏇🏾","🏇🏽","🏇🏼","🏇🏻","🏄🏿","🏄🏾","🏄🏽","🏄🏼","🏄🏻","🏃🏿","🏃🏾","🏃🏽","🏃🏼","🏃🏻","🎅🏿","🎅🏾","🎅🏽","🎅🏼","🎅🏻","🇿🇼","🇿🇲","🇿🇦","🇾🇹","🇾🇪","🇽🇰","🇼🇸","🇼🇫","🇻🇺","🇻🇳","🇻🇮","🇻🇬","🇻🇪","🇻🇨","🇻🇦","🇺🇿","🇺🇾","🇺🇸","🇺🇲","🇺🇬","🇺🇦","🇹🇿","🇹🇼","🇹🇻","🇹🇹","🇹🇷","🇹🇴","🇹🇳","🇹🇲","🇹🇱","🇹🇰","🇹🇯","🇹🇭","🇹🇬","🇹🇫","🇹🇩","🇹🇨","🇹🇦","🇸🇿","🇸🇾","🇸🇽","🇸🇻","🇸🇹","🇸🇸","🇸🇷","🇸🇴","🇸🇳","🇸🇲","🇸🇱","🇸🇰","🇸🇯","🇸🇮","🇸🇭","🇸🇬","🇸🇪","🇸🇩","🇸🇨","🇸🇧","🇸🇦","🇷🇼","🇷🇺","🇷🇸","🇷🇴","🇷🇪","🇶🇦","🇵🇾","🇵🇼","🇵🇹","🇵🇸","🇵🇷","🇵🇳","🇵🇲","🇵🇱","🇵🇰","🇵🇭","🇵🇬","🇵🇫","🇵🇪","🇵🇦","🇴🇲","🇳🇿","🇳🇺","🇳🇷","🇳🇵","🇳🇴","🇳🇱","🇳🇮","🇳🇬","🇳🇫","🇳🇪","🇳🇨","🇳🇦","🇲🇿","🇲🇾","🇲🇽","🇲🇼","🇲🇻","🇲🇺","🇲🇹","🇲🇸","🇲🇷","🇲🇶","🇲🇵","🇲🇴","🇲🇳","🇲🇲","🇲🇱","🇲🇰","🇲🇭","🇲🇬","🇲🇫","🇲🇪","🇲🇩","🇲🇨","🇲🇦","🇱🇾","🇱🇻","🇱🇺","🇱🇹","🇱🇸","🇱🇷","🇱🇰","🇱🇮","🇱🇨","🇱🇧","🇱🇦","🇰🇿","🇰🇾","🇰🇼","🇰🇷","🇰🇵","🇰🇳","🇰🇲","🇰🇮","🇰🇭","🇰🇬","🇰🇪","🇯🇵","🇯🇴","🇯🇲","🇯🇪","🇮🇹","🇮🇸","🇮🇷","🇮🇶","🇮🇴","🇮🇳","🇮🇲","🇮🇱","🇮🇪","🇮🇩","🇮🇨","🇭🇺","🇭🇹","🇭🇷","🇭🇳","🇭🇲","🇭🇰","🇬🇾","🇬🇼","🇬🇺","🇬🇹","🇬🇸","🇬🇷","🇬🇶","🇬🇵","🇬🇳","🇬🇲","🇬🇱","🇬🇮","🇬🇭","🇬🇬","🇬🇫","🇬🇪","🇬🇩","🇬🇧","🇬🇦","🇫🇷","🇫🇴","🇫🇲","🇫🇰","🇫🇯","🇫🇮","🇪🇺","🇪🇹","🇪🇸","🇪🇷","🇪🇭","🇪🇬","🇪🇪","🇪🇨","🇪🇦","🇩🇿","🇩🇴","🇩🇲","🇩🇰","🇩🇯","🇩🇬","🇩🇪","🇨🇿","🇨🇾","🇨🇽","🇨🇼","🇨🇻","🇨🇺","🇨🇷","🇨🇵","🇨🇴","🇨🇳","🇨🇲","🇨🇱","🇨🇰","🇨🇮","🇨🇭","🇨🇬","🇨🇫","🇨🇩","🇨🇨","🇨🇦","🇧🇿","🇧🇾","🇧🇼","🇧🇻","🇧🇹","🇧🇸","🇧🇷","🇧🇶","🇧🇴","🇧🇳","🇧🇲","🇧🇱","🇧🇯","🇧🇮","🇧🇭","🇧🇬","🇧🇫","🇧🇪","🇧🇩","🇧🇧","🇧🇦","🇦🇿","🇦🇽","🇦🇼","🇦🇺","🇦🇹","🇦🇸","🇦🇷","🇦🇶","🇦🇴","🇦🇲","🇦🇱","🇦🇮","🇦🇬","🇦🇫","🇦🇪","🇦🇩","🇦🇨","🀄️","🀄","🅿️","🅿","🈂️","🈂","🈚️","🈚","🈯️","🈯","🈷️","🈷","🎞️","🎞","🎟️","🎟","🏋️","🏋","🏌️","🏌","🏍️","🏍","🏎️","🏎","🎖️","🎖","🎗️","🎗","🌶️","🌶","🌧️","🌧","🌨️","🌨","🌩️","🌩","🌪️","🌪","🌫️","🌫","🌬️","🌬","🐿️","🐿","🕷️","🕷","🕸️","🕸","🌡️","🌡","🎙️","🎙","🎚️","🎚","🎛️","🎛","🏳️","🏳","🏵️","🏵","🏷️","🏷","📽️","📽","🕉️","🕉","🕊️","🕊","🕯️","🕯","🕰️","🕰","🕳️","🕳","🕶️","🕶","🕹️","🕹","🖇️","🖇","🖊️","🖊","🖋️","🖋","🖌️","🖌","🖍️","🖍","🖥️","🖥","🖨️","🖨","🖲️","🖲","🖼️","🖼","🗂️","🗂","🗃️","🗃","🗄️","🗄","🗑️","🗑","🗒️","🗒","🗓️","🗓","🗜️","🗜","🗝️","🗝","🗞️","🗞","🗡️","🗡","🗣️","🗣","🗨️","🗨","🗯️","🗯","🗳️","🗳","🗺️","🗺","🛠️","🛠","🛡️","🛡","🛢️","🛢","🛰️","🛰","🍽️","🍽","👁️","👁","🕴️","🕴","🕵️","🕵","🖐️","🖐","🏔️","🏔","🏕️","🏕","🏖️","🏖","🏗️","🏗","🏘️","🏘","🏙️","🏙","🏚️","🏚","🏛️","🏛","🏜️","🏜","🏝️","🏝","🏞️","🏞","🏟️","🏟","🛋️","🛋","🛍️","🛍","🛎️","🛎","🛏️","🛏","🛣️","🛣","🛤️","🛤","🛥️","🛥","🛩️","🛩","🛳️","🛳","🌤️","🌤","🌥️","🌥","🌦️","🌦","🖱️","🖱","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","©️","©","®️","®","‼️","‼","⁉️","⁉","™️","™","ℹ️","ℹ","↔️","↔","↕️","↕","↖️","↖","↗️","↗","↘️","↘","↙️","↙","↩️","↩","↪️","↪","⌚️","⌚","⌛️","⌛","Ⓜ️","Ⓜ","▪️","▪","▫️","▫","▶️","▶","◀️","◀","◻️","◻","◼️","◼","◽️","◽","◾️","◾","☀️","☀","☁️","☁","☎️","☎","☑️","☑","☔️","☔","☕️","☕","☝️","☝","☺️","☺","♈️","♈","♉️","♉","♊️","♊","♋️","♋","♌️","♌","♍️","♍","♎️","♎","♏️","♏","♐️","♐","♑️","♑","♒️","♒","♓️","♓","♠️","♠","♣️","♣","♥️","♥","♦️","♦","♨️","♨","♻️","♻","♿️","♿","⚓️","⚓","⚠️","⚠","⚡️","⚡","⚪️","⚪","⚫️","⚫","⚽️","⚽","⚾️","⚾","⛄️","⛄","⛅️","⛅","⛔️","⛔","⛪️","⛪","⛲️","⛲","⛳️","⛳","⛵️","⛵","⛺️","⛺","⛽️","⛽","✂️","✂","✈️","✈","✉️","✉","✌️","✌","✏️","✏","✒️","✒","✔️","✔","✖️","✖","✳️","✳","✴️","✴","❄️","❄","❇️","❇","❗️","❗","❤️","❤","➡️","➡","⤴️","⤴","⤵️","⤵","⬅️","⬅","⬆️","⬆","⬇️","⬇","⬛️","⬛","⬜️","⬜","⭐️","⭐","⭕️","⭕","〰️","〰","〽️","〽","㊗️","㊗","㊙️","㊙","✝️","✝","⌨️","⌨","✍️","✍","⏏️","⏏","⏭️","⏭","⏮️","⏮","⏯️","⏯","⏱️","⏱","⏲️","⏲","⏸️","⏸","⏹️","⏹","⏺️","⏺","☂️","☂","☃️","☃","☄️","☄","☘️","☘","☠️","☠","☢️","☢","☣️","☣","☦️","☦","☪️","☪","☮️","☮","☯️","☯","☸️","☸","☹️","☹","⚒️","⚒","⚔️","⚔","⚖️","⚖","⚗️","⚗","⚙️","⚙","⚛️","⚛","⚜️","⚜","⚰️","⚰","⚱️","⚱","⛈️","⛈","⛏️","⛏","⛑️","⛑","⛓️","⛓","⛩️","⛩","⛰️","⛰","⛱️","⛱","⛴️","⛴","⛷️","⛷","⛸️","⛸","⛹️","⛹","✡️","✡","❣️","❣","🥉","🥈","🥇","🤺","🥅","🤾","🇿","🤽","🥋","🥊","🤼","🤹","🤸","🛶","🛵","🛴","🛒","🃏","🅰","🅱","🅾","🛑","🆎","🆑","🇾","🆒","🆓","🆔","🆕","🆖","🆗","🆘","🥄","🆙","🆚","🥂","🥃","🈁","🥙","🈲","🈳","🈴","🈵","🈶","🥘","🈸","🈹","🥗","🈺","🉐","🉑","🌀","🥖","🌁","🌂","🌃","🌄","🌅","🌆","🥕","🌇","🌈","🥔","🌉","🌊","🌋","🌌","🌏","🌑","🥓","🌓","🌔","🌕","🌙","🌛","🌟","🥒","🌠","🌰","🥑","🌱","🌴","🌵","🌷","🌸","🌹","🌺","🌻","🌼","🌽","🥐","🌾","🌿","🍀","🍁","🍂","🍃","🍄","🍅","🍆","🍇","🍈","🍉","🍊","🥀","🍌","🍍","🍎","🍏","🍑","🍒","🍓","🦏","🍔","🍕","🍖","🦎","🍗","🍘","🍙","🦍","🍚","🍛","🦌","🍜","🍝","🍞","🍟","🦋","🍠","🍡","🦊","🍢","🍣","🦉","🍤","🍥","🦈","🍦","🦇","🍧","🇽","🍨","🦆","🍩","🦅","🍪","🖤","🍫","🍬","🍭","🍮","🍯","🤞","🍰","🍱","🍲","🤝","🍳","🍴","🍵","🍶","🍷","🍸","🍹","🍺","🍻","🎀","🎁","🎂","🎃","🤛","🤜","🎄","🎅","🎆","🤚","🎇","🎈","🎉","🎊","🎋","🎌","🤙","🎍","🕺","🎎","🤳","🎏","🤰","🎐","🤦","🤷","🎑","🎒","🎓","🎠","🎡","🎢","🎣","🎤","🎥","🎦","🎧","🤶","🎨","🤵","🎩","🎪","🤴","🎫","🎬","🎭","🤧","🎮","🎯","🎰","🎱","🎲","🎳","🎴","🤥","🎵","🎶","🎷","🤤","🎸","🎹","🎺","🤣","🎻","🎼","🎽","🤢","🎾","🎿","🏀","🏁","🤡","🏂","🏃","🏄","🏆","🏈","🏊","🏠","🏡","🏢","🏣","🏥","🏦","🏧","🏨","🏩","🏪","🏫","🏬","🤠","🏭","🏮","🏯","🏰","🐌","🐍","🐎","🐑","🐒","🐔","🐗","🐘","🐙","🐚","🐛","🐜","🐝","🐞","🐟","🐠","🐡","🐢","🐣","🐤","🐥","🐦","🐧","🐨","🐩","🐫","🐬","🐭","🐮","🐯","🐰","🐱","🐲","🐳","🐴","🐵","🐶","🐷","🐸","🐹","🐺","🐻","🐼","🐽","🐾","👀","👂","👃","👄","👅","👆","👇","👈","👉","👊","👋","👌","👍","👎","👏","👐","👑","👒","👓","👔","👕","👖","👗","👘","👙","👚","👛","👜","👝","👞","👟","👠","👡","👢","👣","👤","👦","👧","👨","👩","👪","👫","👮","👯","👰","👱","👲","👳","👴","👵","👶","👷","👸","👹","👺","👻","👼","👽","👾","👿","💀","📇","💁","💂","💃","💄","💅","📒","💆","📓","💇","📔","💈","📕","💉","📖","💊","📗","💋","📘","💌","📙","💍","📚","💎","📛","💏","📜","💐","📝","💑","📞","💒","📟","📠","💓","📡","📢","💔","📣","📤","💕","📥","📦","💖","📧","📨","💗","📩","📪","💘","📫","📮","💙","📰","📱","💚","📲","📳","💛","📴","📶","💜","📷","📹","💝","📺","📻","💞","📼","🔃","💟","🔊","🔋","💠","🔌","🔍","💡","🔎","🔏","💢","🔐","🔑","💣","🔒","🔓","💤","🔔","🔖","💥","🔗","🔘","💦","🔙","🔚","💧","🔛","🔜","💨","🔝","🔞","💩","🔟","💪","🔠","🔡","💫","🔢","🔣","💬","🔤","🔥","💮","🔦","🔧","💯","🔨","🔩","💰","🔪","🔫","💱","🔮","💲","🔯","💳","🔰","🔱","💴","🔲","🔳","💵","🔴","🔵","💸","🔶","🔷","💹","🔸","🔹","💺","🔺","🔻","💻","🔼","💼","🔽","🕐","💽","🕑","💾","🕒","💿","🕓","📀","🕔","🕕","📁","🕖","🕗","📂","🕘","🕙","📃","🕚","🕛","📄","🗻","🗼","📅","🗽","🗾","📆","🗿","😁","😂","😃","📈","😄","😅","📉","😆","😉","📊","😊","😋","📋","😌","😍","📌","😏","😒","📍","😓","😔","📎","😖","😘","📏","😚","😜","📐","😝","😞","📑","😠","😡","😢","😣","😤","😥","😨","😩","😪","😫","😭","😰","😱","😲","😳","😵","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏","🚀","🚃","🚄","🚅","🚇","🚉","🚌","🚏","🚑","🚒","🚓","🚕","🚗","🚙","🚚","🚢","🚤","🚥","🚧","🚨","🚩","🚪","🚫","🚬","🚭","🚲","🚶","🚹","🚺","🚻","🚼","🚽","🚾","🛀","🤘","😀","😇","😈","😎","😐","😑","😕","😗","😙","😛","😟","😦","😧","😬","😮","😯","😴","😶","🚁","🚂","🚆","🚈","🚊","🚍","🚎","🚐","🚔","🚖","🚘","🚛","🚜","🚝","🚞","🚟","🚠","🚡","🚣","🚦","🚮","🚯","🚰","🚱","🚳","🚴","🚵","🚷","🚸","🚿","🛁","🛂","🛃","🛄","🛅","🌍","🌎","🌐","🌒","🌖","🌗","🌘","🌚","🌜","🌝","🌞","🌲","🌳","🍋","🍐","🍼","🏇","🏉","🏤","🐀","🐁","🐂","🐃","🐄","🐅","🐆","🐇","🐈","🐉","🐊","🐋","🐏","🐐","🐓","🐕","🐖","🐪","👥","👬","👭","💭","💶","💷","📬","📭","📯","📵","🔀","🔁","🔂","🔄","🔅","🔆","🔇","🔉","🔕","🔬","🔭","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","🔈","🚋","🏅","🏴","📸","🛌","🖕","🖖","🙁","🙂","🛫","🛬","🏻","🏼","🏽","🏾","🏿","🙃","🤑","🤓","🤗","🙄","🤔","🤐","🤒","🤕","🤖","🦁","🦄","🦂","🦀","🦃","🧀","🌭","🌮","🌯","🍿","🍾","🏹","🏺","🛐","🕋","🕌","🕍","🕎","📿","🏏","🏐","🏑","🏒","🏓","🏸","🥁","🦐","🦑","🥚","🥛","🥜","🥝","🥞","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","⏩","⏪","⏫","⏬","⏰","⏳","⛎","✅","✊","✋","✨","❌","❎","❓","❔","❕","➕","➖","➗","➰","➿","imagePathPNG","imagePathSVG","imagePathSVGSprites","imageType","imageTitleTag","sprites","unicodeAlt","ascii","cacheBustParam","regShortNames","regAscii","regUnicode","toImage","unicodeToImage","shortnameToImage","unifyUnicode","toShort","shortnameToUnicode","shortnameToAscii","unicodeToAscii","objectFlip","shortname","convert","entire","m3","unescapeHTML","escapeHTML","mappedUnicode","mapUnicodeToShort","unicodeChar","getUnicodeReplacementRegEx","replacementList","mapUnicodeCharactersToShort","replaceAll","escaped","unescaped","&#x26;","&#x3C;","&#x3E;","&#x22;","&#x27;","mapEmojioneList","addToMapStorage","memMapShortToUnicode","memoizeReplacement","unicodeReplacementRegEx","memMapShortToUnicodeCharacters","unicodeList","emojiCharacter","tmp_obj","escapeRegExp","escapedFind","emojione"],"mappings":"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,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe;AAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOnoC,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAO9Z,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQkW,IAAS,OAAOhW,KAAe,QAAQ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","file":"jsxc.dep.min.js"} \ No newline at end of file
+{"version":3,"sources":["jsxc.dep.js"],"names":["callback","root","factory","define","amd","Base64","this","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","i","charCodeAt","isNaN","charAt","length","decode","replace","indexOf","String","fromCharCode","SHA1","core_sha1","x","len","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","core_hmac_sha1","key","data","bkey","str2binb","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","binb2str","binb2b64","binarray","triplet","tab","b64_hmac_sha1","b64_sha1","s","str_hmac_sha1","str_sha1","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","stropheUtils","utils","utf16to8","out","addCookies","cookies","cookieName","cookieObj","isObj","cookieValue","expires","domain","path","escape","unescape","value","document","cookie","Function","prototype","bind","func","_slice","slice","_concat","_args","call","arguments","apply","isArray","arg","Object","toString","elt","from","Number","Math","ceil","floor","forEach","thisArg","T","k","TypeError","O","kValue","o","window","Strophe","$build","$iq","$msg","$pres","name","attrs","Builder","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","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","REDIRECT","CONNTIMEOUT","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","_xmlGenerator","_makeGenerator","doc","undefined","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","node","xmlTextNode","attr","setAttribute","hasOwnProperty","xmlescape","text","xmlunescape","createTextNode","xmlHtmlNode","html","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","cssName","cssValue","toLowerCase","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","_handleError","stack","fatal","sourceURL","handler","line","message","fileName","lineNumber","log","level","msg","debug","info","warn","error","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","up","parentNode","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","ns","type","id","options","matchBareFromJid","ignoreNamespaceFragment","matchBare","user","getNamespace","elNamespace","namespaceMatch","nsMatch","that","isMatch","elem_type","run","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","protocolErrorHandlers","HTTP","websocket","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","registerSASLMechanisms","mechanisms","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","r","random","v","addProtocolErrorHandler","status_code","connect","pass","wait","hold","route","authcid","authzid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","SASLAnonymous","SASLExternal","SASLMD5","SASLOAuthBearer","SASLPlain","SASLSHA1","registerSASLMechanism","mechanism","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","_abortAllRequests","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","newList","_connect_cb","_callback","bodyWrap","conncheck","hasFeatures","getElementsByTagNameNS","_no_auth_received","mech","matched","authenticate","sortMechanismsByPriority","higher","swap","priority","_attemptSASLAuth","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","isClientFirst","response","onChallenge","_attemptLegacyAuth","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","streamfeature_handlers","wrapper","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","auth_str","test_cnonce","cnonce","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","_quote","realm","host","qop","digest_uri","cred","A1","A2","core","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","errors","inactivity","_buildBody","keepalive","_cacheSession","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","session","parse","getItem","stringify","typ","parseInt","_sendTerminate","_callProtocolErrorHandlers","err_callback","reqStatus","_getRequestStatus","_hitError","xmpp:restart","time_elapsed","def","readyState","_removeRequest","reqIs0","reqIs1","_restartRequest","_processRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","contentType","open","sync","setRequestHeader","withCredentials","e2","sendFunc","customHeaders","headers","header","backoff","min","pow","abs","new_service","location","pathname","_buildStream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","streamStart","see_uri","string","_streamWrap","_onMessage","CLOSED","close","closeString","rawStanza","search","firstChild","start","startString","n_callback","requirejs","require","build","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","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","localStorage","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","makeArray","knownCapabilities","querySelector","trigger","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","jQuery","buildIq","vCardEl","VCARD","get","set","$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","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","opts","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","_notificationReceived","CHATSTATES","addActive","composing","active","sendActive","_sendNotification","sendComposing","sendPaused","notification","n","u","exports","1","module","default","__esModule","core-js/library/fn/object/assign","2","3","placeHoldersCount","b64","byteLength","toByteArray","tmp","placeHolders","arr","Arr","L","revLookup","tripletToBase64","lookup","encodeChunk","uint8","end","fromByteArray","extraBytes","maxChunkLength","len2","Uint8Array","4","5","global","buffer","Buffer","SlowBuffer","MAX_LEN","kMaxLength","alloc","size","encoding","RangeError","enc","_fill","buf","fillBuf","flen","allocUnsafe","encodingOrOffset","ArrayBuffer","offset","isBuffer","copy","allocUnsafeSlow","6","typedArraySupport","__proto__","foo","subarray","TYPED_ARRAY_SUPPORT","createBuffer","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","actual","write","fromArrayLike","array","byteOffset","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","read","indexSize","readUInt16BE","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","leadSurrogate","byteArray","hi","lo","dst","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","defineProperty","configurable","_isBuffer","compare","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","base64-js","isarray","7","CipherBase","hashMode","Transform","_finalOrDigest","final","_decoder","_encoding","inherits","StringDecoder","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_","next","_flush","done","_final","fin","stream","string_decoder","8","assign","../../modules/$.core","../../modules/es6.object.assign","9","it","10","11","__e","12","aFunction","./$.a-function","13","14","ctx","PROTOTYPE","$export","source","own","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","C","param","./$.core","./$.ctx","./$.global","15","exec","16","__g","17","cof","propertyIsEnumerable","./$.cof","18","$Object","create","getProto","getPrototypeOf","isEnum","getDesc","getOwnPropertyDescriptor","setDesc","setDescs","defineProperties","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","19","toObject","IObject","A","K","$$","$$len","index","./$","./$.fails","./$.iobject","./$.to-object","20","defined","./$.defined","21","./$.export","./$.object-assign","22","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","isError","isFunction","isPrimitive","../../is-buffer/index.js","23","HashNoConstructor","Base","_hash","buffers","Hash","md5","rmd160","sha","digest","alg","./md5","cipher-base","ripemd160","sha.js","24","toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz","25","helpers","./helpers","26","Hmac","blocksize","_alg","_key","createHash","ZEROS","_ipad","_opad","create-hash/browser","27","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","context","addListener","listener","newListener","warned","console","trace","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","evlistener","emitter","28","prop","29","Sender","WildEmitter","chunksize","pacing","file","channel","Receiver","receiveBuffer","received","metadata","util","sliceFile","reader","FileReader","onload","readAsArrayBuffer","receive","binaryType","event","Blob","support","File","wildemitter","30","base","hashes","algo","actualhash","./filetransfer","iana-hashes","31","getUserMedia","cache","constraints","cb","hasConstraints","navigator","userAgent","chromever","maxver","isCef","chrome","webstore","getScreenMediaJSExtensionId","runtime","sendMessage","sourceId","audio","video","mandatory","chromeMediaSource","maxWidth","screen","width","maxHeight","height","maxFrameRate","chromeMediaSourceId","cefGetScreenMedia","optional","googLeakyBucket","googTemporalLayeredScreencast","pending","postMessage","ffver","mozMediaSource","mediaSource","lastTime","currentTime","polly","setInterval","clearInterval","onended","addEventListener","origin","getusermedia","32","haveOpts","defaultOpts","denied","altDenied","notSatisfied","mediaDevices","then","catch","webrtc-adapter","33","logging","browserDetails","extractVersion","disableLog","chromeShim","edgeShim","firefoxShim","safariShim","browser","shimPeerConnection","browserShim","shimGetUserMedia","shimMediaStream","shimSourceObject","shimOnTrack","./chrome/chrome_shim","./edge/edge_shim","./firefox/firefox_shim","./safari/safari_shim","./utils","34","MediaStream","webkitMediaStream","RTCPeerConnection","_ontrack","removeEventListener","_ontrackpoly","te","Event","track","streams","dispatchEvent","getTracks","HTMLMediaElement","_srcObject","URL","revokeObjectURL","createObjectURL","pcConfig","pcConstraints","iceTransportPolicy","iceTransports","pc","webkitRTCPeerConnection","origGetStats","getStats","selector","successCallback","errorCallback","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","names","stat","makeMapStats","stats","legacyStats","map","Map","successCallbackWrapper_","Promise","resolve","reject","generateCertificate","method","nativeMethod","promise","nativeAddIceCandidate","addIceCandidate","RTCIceCandidate","RTCSessionDescription","attachMediaStream","srcObject","reattachMediaStream","../utils.js","./getusermedia","35","constraintsToChrome_","cc","ideal","exact","oldname_","prefix","toUpperCase","oc","mix","advanced","shimConstraints_","face","facingMode","getSupportedConstraints","enumerateDevices","devices","filter","kind","back","deviceId","shimError_","PermissionDeniedError","ConstraintNotSatisfiedError","constraint","constraintName","getUserMedia_","onError","webkitGetUserMedia","getUserMediaPromise_","kinds","MediaStreamTrack","getSources","device","groupId","origGetUserMedia","cs","36","SDPUtils","RTCIceGatherer","_eventTarget","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","localStreams","remoteStreams","getLocalStreams","getRemoteStreams","localDescription","sdp","remoteDescription","signalingState","iceConnectionState","iceGatheringState","iceOptions","gatherPolicy","iceServers","usingBundle","bundlePolicy","urls","url","transceivers","_localIceCandidatesBuffer","_emitBufferedCandidates","sections","splitSections","candidate","sdpMLineIndex","complete","every","transceiver","iceGatherer","state","addStream","clone","_maybeFireNegotiationNeeded","removeStream","idx","getSenders","rtpSender","getReceivers","rtpReceiver","_getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","codecs","headerExtensions","fecMechanisms","lCodec","rCodec","clockRate","numChannels","lHeaderExtension","rHeaderExtension","uri","_createIceAndDtlsTransports","mid","iceTransport","RTCIceTransport","onlocalcandidate","evt","sdpMid","cand","component","writeCandidate","onicestatechange","_updateConnectionState","dtlsTransport","RTCDtlsTransport","ondtlsstatechange","_transceive","recv","params","encodings","sendEncodingParameters","rtcp","cname","localCName","recvEncodingParameters","ssrc","setLocalDescription","description","sessionpart","_pendingOffer","shift","mediaSection","caps","parseRtpParameters","isIceLite","matchPrefix","rejected","remoteIceParameters","getIceParameters","cands","parseCandidate","setRemoteCandidates","remoteDtlsParameters","getDtlsParameters","_updateSignalingState","hasCallback","setRemoteDescription","receiverList","lines","splitLines","mline","direction","getDirection","parseRtpEncodingParameters","generateIdentifier","remoteSsrc","parseSsrcMedia","isComplete","addTrack","transports","RTCRtpReceiver","getCapabilities","localtrack","RTCRtpSender","trackEvent","stop","newState","new","closed","connecting","checking","completed","failed","disconnected","createOffer","offerOptions","tracks","numAudioTracks","numVideoTracks","getAudioTracks","getVideoTracks","offerToReceiveAudio","offerToReceiveVideo","wantReceive","writeSessionBoilerplate","writeMediaSection","createAnswer","addRemoteCandidate","mLineIndex","port","promises","results","all","../utils","37","38","mozSrcObject","mozRTCPeerConnection","newIceServers","newServer","username","credential","mozRTCSessionDescription","mozRTCIceCandidate","nativeGetStats","onSucc","onErr","39","SecurityError","The operation is insecure.","constraintsToFF37_","mozGetUserMedia","infos","orgEnumerateDevices","40","41","logDisabled_","bool","uastring","expr","detectBrowser","minVersion","42","createHmac","getHashes","mapping","md2","sha-1","sha-224","sha-256","sha-384","sha-512","available","algorithm","./lib/get-hashes","create-hash","create-hmac","43","44","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","45","ctor","superCtor","super_","constructor","enumerable","writable","TempCtor","46","intersect","big","temp","47","isSlowBuffer","48","49","FileTransferSession","BaseSession","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","sender","extend","FileTransfer","isInitiator","sent","_log","meta","contents","transport","application","applicationType","offer","sendChannel","createDataChannel","OfferToReceiveAudio","OfferToReceiveVideo","jingle","lastModifiedDate","accept","answer","silent","maybeReceivedFile","receivedFile","connectionState","onSessionInitiate","changes","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","jingle-session","rtcpeerconnection","50","filterContentSources","payloads","mux","sources","parameters","sourceGroups","group","filterUnusedLabels","parameter","MediaSession","onIceEndOfCandidates","onAddStream","onRemoveStream","onAddChannel","_ringing","ringing","mediaType","media","senders","ring","creator","unmute","renegotiate","groups","addStream2","removeStream2","switchStream","oldStream","newStream","signalEndOfCandidates","lastCandidate","endOfCandidates","transportType","gatheringComplete","onSessionInfo","onSourceAdd","newDesc","ssrcs","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","semantics","same","51","JingleSession","v4","peer","peerID","full","initiator","pendingApplicationTypes","applicationTypes","pendingAction","processingQueue","queue","task","ended","action","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","prev","_connectionState","starting","interrupted","requirePending","session-inititate","process","cancel","decline","kill","okKeys","responder","unknownPayload","jingleCondition","onContentAdd","onTransportReplace","52","noop","toBool","notId","only_once","_once","_isArrayLike","_isArray","_arrayEach","iterator","_map","_range","count","_reduce","memo","_forEachOf","object","_keys","_indexOf","_keyIterator","coll","_restParam","startIndex","rest","_withoutIndex","_eachOfLimit","nextKey","running","errored","replenish","doParallel","eachOf","doParallelLimit","doSeries","eachOfSeries","_asyncMap","eachfn","_filter","_reject","_createTester","check","getResult","iteratee","_findGetResult","_parallel","tasks","_queue","worker","concurrency","payload","_insert","started","idle","setImmediate","drain","unshift","saturated","_next","workers","removed","workersList","empty","resumeCount","_console_fn","_times","mapper","_applyEach","fns","go","ensureAsync","innerArgs","previous_async","noConflict","_isObject","_setImmediate","_delay","nextTick","forEachSeries","eachSeries","forEachLimit","eachLimit","forEachOf","forEachOfSeries","iterate","forEachOfLimit","eachOfLimit","mapSeries","mapLimit","inject","foldl","reduce","foldr","reduceRight","reversed","reverse","transform","select","selectLimit","filterLimit","selectSeries","filterSeries","rejectLimit","rejectSeries","any","some","someLimit","everyLimit","detect","detectSeries","detectLimit","sortBy","comparator","left","right","criteria","auto","taskComplete","remainingTasks","runningTasks","hasError","ready","requires","taskCallback","dep","safeResults","rkey","retry","times","parseTimes","acc","DEFAULT_TIMES","interval","DEFAULT_INTERVAL","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","retryInterval","attempts","series","waterfall","wrapIterator","parallel","parallelLimit","makeCallback","callArgs","concatSeries","whilst","doWhilst","calls","until","doUntil","during","truth","doDuring","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","memoize","hasher","queues","has","memoized","unmemoized","unmemoize","timesSeries","timesLimit","seq","newargs","nextargs","compose","applyEach","applyEachSeries","forever","constant","wrapSync","asyncify","_process","53","SessionManager","selfID","sessions","peers","prepareSession","FileSession","performTieBreak","sess","matching","screenSharingSupport","webrtc","screenSharing","capabilities","peerConnectionConfig","peerConnectionConstraints","DtlsSrtpKeyAgreement","RtpDataChannels","addICEServer","addSession","extraData","extraData2","createMediaSession","createFileTransferSession","endPeerSessions","endAllSessions","_createIncomingSession","_sendError","isTieBreak","transportTypes","jingle-filetransfer-session","jingle-media-session","webrtcsupport","54","_interopRequireDefault","_shortcuts","_shortcuts2","_types2","JXT","use","./shortcuts","./types","55","_xmppConstants","Namespace","SERVER","COMPONENT","extendMessage","JXTClass","multiName","withMessage","Message","extendPresence","_this2","withPresence","Presence","extendIQ","_this3","withIQ","IQ","extendStreamFeatures","_this4","withStreamFeatures","StreamFeatures","extendPubsubItem","_this5","withPubsubItem","PubsubItem","withDefinition","withStanzaError","withDataForm","DATAFORM","PUBSUB","PUBSUB_EVENT","getMessage","getDefinition","getPresence","getIQ","getStreamError","getIq","withIq","xmpp-constants","56","_xmppJid","Utils","jidAttribute","prepped","JID","jidSub","getSubText","setSubText","tzoSub","defaultVal","hrs","sign","formatted","xmpp-jid","57","Address","namespace","ADDRESS","delivered","boolAttribute","Addresses","subMultiExtension","add","58","_lodashForeach","_lodashForeach2","Avatar","AVATAR_METADATA","avatars","_avatars","findOrCreate","avatar","textSub","AVATAR_DATA","babel-runtime/helpers/interop-require-default","lodash.foreach","59","Bind","60","jidList","BLOCKING","Block","jids","Unblock","BlockList","61","BOB","cid","maxAge","numberAttribute","62","Conference","BOOKMARKS","autoJoin","Bookmarks","PRIVATE","PrivateStorage","63","prefixes","xmpp","BOSH_XMPP","ack","authid","charsets","maxpause","newKey","polling","resport","requests","time","langAttribute","restart","restartLogic","types","64","Sent","eventName","CARBONS_2","Received","Private","Enable","Disable","FORWARD_0","Forwarded","65","CONDITIONS","Command","ADHOC_COMMANDS","sessionid","execute","subAttribute","actions","actionSet","existing","Note","StanzaError","enumSub","DataForm","66","CSIFeature","CSI","topLevel","67","SINGLE_FIELDS","_type","boolSub","getMultiSubText","truthy","setMultiSubText","Media","DATAFORM_MEDIA","MediaURI","Validation","DATAFORM_VALIDATION","dataType","basic","regex","Range","ListRange","layoutContents","namespaceURI","DATAFORM_LAYOUT","localName","section","Section","sectionXML","Page","reportedFields","fieldTypes","multiTextSub","68","DelayedDelivery","DELAY","stamp","dateAttribute","69","DiscoCaps","DiscoInfo","multiSubAttribute","DiscoIdentity","DiscoItems","DiscoItem","RSM","70","STANZA_ERROR","gone","redirect","by","$text","getSubLangText","setSubLangText","71","Services","DISCO_EXTERNAL_1","Credentials","Service","72","FT_NS","FILE_TRANSFER_4","numberSub","dateSub","infoType","Checksum","HASHES_1","JINGLE_1","Content","Jingle","73","FILE_TRANSFER_3","Thumbnail","THUMBS_0","mimeType","subExtension","request","74","Delayed","75","seeOtherURI","76","GeoLoc","GEOLOC","accuracy","altitude","area","heading","bearing","building","country","countrycode","datum","latitude","locality","longitude","postalcode","region","speed","street","tzo","77","78","Hat","HATS_0","displayName","79","NS_IBB","NS_JIBB","IBB","blockSize","setText","_open","_close","JingleIBB","80","ICE","JINGLE_ICE_UDP_1","pwd","ufrag","RemoteCandidate","ip","Candidate","foundation","generation","network","relAddr","relPort","tcpType","Fingerprint","JINGLE_DTLS_0","setup","SctpMap","DTLS_SCTP_1","number","81","_addresses","_addresses2","_avatar","_avatar2","_bind","_bind2","_blocking","_blocking2","_bob","_bob2","_bookmarks","_bookmarks2","_bosh","_bosh2","_carbons","_carbons2","_command","_command2","_csi","_csi2","_dataforms","_dataforms2","_delayed","_delayed2","_disco","_disco2","_error","_error2","_extdisco","_extdisco2","_file","_file2","_file3","_file32","_forwarded","_forwarded2","_framing","_framing2","_geoloc","_geoloc2","_hash2","_hats","_hats2","_iceUdp","_iceUdp2","_ibb","_ibb2","_iq","_iq2","_jidprep","_jidprep2","_jingle","_jingle2","_json","_json2","_logging","_logging2","_mam","_mam2","_message","_message2","_mood","_mood2","_muc","_muc2","_nick","_nick2","_oob","_oob2","_ping","_ping2","_presence","_presence2","_private","_private2","_psa","_psa2","_pubsub","_pubsub2","_pubsubError","_pubsubError2","_pubsubEvents","_pubsubEvents2","_pubsubOwner","_pubsubOwner2","_push","_push2","_reach","_reach2","_register","_register2","_roster","_roster2","_rsm","_rsm2","_rtp","_rtp2","_rtt","_rtt2","_sasl","_sasl2","_session","_session2","_shim","_shim2","_sm","_sm2","_stream","_stream2","_streamError","_streamError2","_streamFeatures","_streamFeatures2","_time","_time2","_tune","_tune2","_vcard","_vcard2","_version","_version2","_visibility","_visibility2","./addresses","./avatar","./bind","./blocking","./bob","./bookmarks","./bosh","./carbons","./command","./csi","./dataforms","./delayed","./disco","./error","./extdisco","./file","./file3","./forwarded","./framing","./geoloc","./hash","./hats","./ibb","./iceUdp","./iq","./jidprep","./jingle","./json","./logging","./mam","./message","./mood","./muc","./nick","./oob","./ping","./presence","./private","./psa","./pubsub","./pubsubError","./pubsubEvents","./pubsubOwner","./push","./reach","./register","./roster","./rsm","./rtp","./rtt","./sasl","./session","./shim","./sm","./stream","./streamError","./streamFeatures","./time","./tune","./vcard","./version","./visibility","82","_Object$assign","internals","defineIQ","_toJSON","resultReply","errorReply","babel-runtime/core-js/object/assign","83","JID_PREP_0","84","REASONS","tagged","Info","_name","_extensions","disposition","Description","Transport","security","Security","securityType","Reason","alternativeSession","JINGLE_ERRORS_1","85","JSONExtension","JSON_0","86","Log","EVENTLOG","subject","facility","stackTrace","Tag","87","MAMQuery","MAM_0","queryid","Result","Fin","stable","Prefs","defaultCondition","always","container","never","88","defineMessage","thread","parentThread","$body","bodies","attention","ATTENTION_0","chatState","CHAT_STATES","CORRECTION_0","requestReceipt","RECEIPTS","receipt","89","MOODS","Mood","MOOD","90","proxy","UserItem","UserActor","Destroyed","Invite","continue","Decline","AdminItem","AdminActor","Destroy","actor","codes","MUCAdmin","MUCOwner","MUCJoin","history","hist","maxchars","maxstanzas","seconds","toISOString","DirectInvite","MUC_DIRECT_INVITE","MUC_UNIQUE","91","NICK","92","OOB","93","Ping","PING","94","definePresence","$status","statuses","idleSince","dateSubAttribute","IDLE_1","decloak","DECLOAK_0","avatarId","VCARD_TEMP_UPDATE","setBoolSub","95","96","PSA","97","Pubsub","getSubAttribute","getBoolSub","setSubAttribute","publishOptions","Configure","Subscribe","Subscription","subid","configurationRequired","Subscriptions","Affiliation","Affiliations","SubscriptionOptions","Unsubscribe","Publish","Retract","notify","Retrieve","98","PUBSUB_ERRORS","pubsubCondition","99","EventPurge","EventDelete","EventSubscription","expiry","EventConfiguration","EventItems","retracted","EventItem","publisher","100","PubsubOwner","PUBSUB_OWNER","purge","del","101","PUSH_0","Notification","102","ReachURI","REACH_0","$desc","descs","reachability","reach","addrs","addr","103","Register","REGISTER","registered","remove","first","last","email","address","city","zip","phone","misc","104","Roster","force","RosterItem","subscription","subscriptionRequested","ask","preApproved","105","after","before","firstIndex","106","Feedback","JINGLE_RTP_RTCP_FB_0","subtype","fb","JINGLE_RTP_1","Bandwidth","bandwidth","RTP","encryption","Crypto","setBoolSubAttribute","feedback","JINGLE_RTP_HDREXT_0","hdr","PayloadType","channels","clockrate","maxptime","ptime","cipherSuite","keyParams","sessionParams","ContentGroup","JINGLE_GROUPING_0","SourceGroup","JINGLE_RTP_SSMA_0","Source","Mute","JINGLE_RTP_INFO_1","Unmute","107","TYPE_MAP","insert","erase","ACTION_MAP","RTT","RTT_0","108","Mechanisms","_lang","109","Session","110","SHIM","headerSet","111","SMFeature","SMACKS_3","previd","112","113","STREAM_ERROR","seeOtherHost","114","RosterVerFeature","ROSTER_VERSIONING","SubscriptionPreApprovalFeature","SUBSCRIPTION_PREAPPROVAL","115","EntityTime","TIME","utc","116","Tune","TUNE","artist","rating","117","VCardTemp","VCARD_TEMP","website","fullName","birthday","nicknames","Email","home","work","preferred","PhoneNumber","mobile","street2","postalCode","pobox","Organization","unit","Name","family","given","middle","Photo","118","Version","os","119","INVISIBLE_0","120","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","stanzaConstructor","getExtensions","withTag","ParentJXT","ChildJXT","hideSingle","parentName","_NS","_EL","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign","121","ltx","DOMElement","XML_NS","Element","parentNS","created","getAttributeNS","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","subs","getBoolSubAttribute","getTextSub","setTextSub","extractor","builder","getMultiSubAttribute","setMultiSubAttribute","defaultLang","langs","ltx/lib/DOMElement","122","EXCLUDE","_PREFIXES","_isJXT","_eventname","allowedName","isExtensionName","nval","123","getter","setter","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","subText","multiSubText","langTextSub","subLangText","b64Text","isFloat","parseFloat","attributeNS","enumValues","enumVal","exists","alreadyExists","elements","124","arrayEach","125","baseAssign","baseCopy","lodash._basecopy","lodash.keys","126","props","127","baseForOwn","baseFor","baseProperty","createBaseEach","eachFunc","fromRight","collection","getLength","isLength","iterable","createBaseFor","keysFunc","MAX_SAFE_INTEGER","baseEach","128","bindCallback","argCount","accumulator","other","129","createAssigner","assigner","restParam","customizer","guard","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam","130","isObjectLike","getNative","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","RegExp","131","isArrayLike","isIndex","reIsUint","132","assignWith","lodash._baseassign","lodash._createassigner","133","addMapEntry","pair","addSetEntry","arrayPush","arrayReduce","initAccum","baseTimes","getValue","isHostObject","mapToArray","overArg","setToArray","entries","clear","entry","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","arrayLikeKeys","inherited","isArguments","skipIndexes","assignValue","objValue","eq","copyObject","baseClone","isDeep","isFull","isArr","initCloneArray","copyArray","getTag","isFunc","genTag","cloneBuffer","objectTag","argsTag","initCloneObject","copySymbols","cloneableTags","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","objectCreate","baseGetAllKeys","symbolsFunc","baseGetTag","baseIsNative","isMasked","pattern","toSource","baseKeys","isPrototype","nativeKeys","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","regexp","reFlags","cloneSet","cloneSymbol","symbol","symbolValueOf","cloneTypedArray","typedArray","newValue","isKeyable","getPrototype","Ctor","arrayBufferTag","boolTag","dateTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","numberTag","stringTag","regexpTag","setTag","symbolTag","maskSrcKey","funcToString","cloneDeep","isArrayLikeObject","stubArray","stubFalse","arrayTag","errorTag","promiseTag","weakMapTag","reRegExpChar","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","arrayProto","funcProto","coreJsData","uid","IE_PROTO","nativeGetSymbols","nativeIsBuffer","DataView","Set","WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","valueOf","ctorString","134","createForEach","arrayFunc","lodash._arrayeach","lodash._baseeach","lodash.isarray","135","136","nativeIsArray","137","shimKeys","keysIn","propsLength","allowIndexes","isProto","lodash._getnative","lodash.isarguments","138","FUNC_ERROR_TEXT","nativeMax","otherArgs","139","Parser","equal","tagString","is","nameEqual","attrsEqual","childrenEqual","isNode","isElement","isText","escapeXML","unescapeXML","escapeXMLText","unescapeXMLText","./lib/Element","./lib/Parser","./lib/createElement","./lib/equal","./lib/escape","./lib/is","./lib/parse","./lib/tag","./lib/tagString","140","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","./Element","141","setAttrs","equality","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","_addChildren","writer","nameEquals","attrsEquals","childrenEquals","./clone","./equal","./escape","142","LtxParser","ParserInterface","DefaultParser","ElementInterface","DefaultElement","./parsers/ltx","events","143","144","145","146","escapeXMLReplace","escapeXMLTable","unescapeXMLReplace","unescapeXMLTable","&","<",">","\"","'","&amp;","&#38;","&lt;","&#60;","&gt;","&#62;","&quot;","&#34;","&apos;","&#39;","147","148","./Parser","149","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","../escape","150","./parse","./tagString","151","literals","152","arg1","arg2","arg3","153","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","env","argv","versions","off","binding","cwd","chdir","umask","154","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","oldi","baseMinusT","inputLength","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","punycode","overflow","not-basic","invalid-input","ucs2","155","./lib/_stream_duplex.js","156","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","processNextTick","onEndNT","objectKeys","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","157","PassThrough","chunk","./_stream_transform","158","prependListener","ReadableState","objectMode","readableObjectMode","hwm","highWaterMark","defaultHwm","BufferList","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","_read","Stream","readableAddChunk","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","computeNewHighWaterMark","MAX_HWM","howMuchToRead","head","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EElistenerCount","nReadingNextTick","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","bufferShim","endReadable","endReadableNT","xs","debugUtil","debuglog","isPaused","setEncoding","nOrig","doRead","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","cleanedUp","needDrain","increasedAwaitDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","_fromList","./_stream_duplex","./internal/streams/BufferList","buffer-shims","string_decoder/","159","TransformState","afterTransform","needTransform","transforming","writecb","writechunk","writeencoding","ts","_transformState","rs","ws","_write","160","nop","WriteReq","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writev","_writev","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","doWrite","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","asyncWrite","afterWrite","onwriteDrain","finishMaybe","holder","finish","prefinish","need","endWritable","internalUtil","deprecate","getBuffer","current","cork","uncork","setDefaultEncoding","util-deprecate","161","162","./lib/_stream_passthrough.js","163","READABLE_STREAM","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","164","165","166","bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","ar","cr","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes","167","PeerConnection","detectedBrowser","adapter","enableChromeNativeSimulcast","appVersion","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","Peerconn","_onIce","_onDataChannel","sdpSessionID","iceCredentials","local","remote","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","toCandidateJSON","_checkRemoteCandidate","contentNames","candidates","remoteContent","processCandidates","iceCandidate","toCandidateSDP","toSessionSDP","mediaConstraints","expandedOffer","toSessionJSON","googConferenceFlag","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","ice","expandedCandidate","already","rtcpMuxPolicy","newCand","lodash.clonedeep","sdp-jingle-json","traceablepeerconnection","168","toSDP","toIncomingSDPOffer","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toIncomingJSONOffer","creators","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","./lib/tojson","./lib/tosdp","169","findLine","mediaLines","sessionLines","prefixLength","findLines","formats","rtpmap","sctpmap","fmtp","kv","crypto","fingerprint","extmap","idpart","sp","rtcpfb","substring","msid","mslabel","170","incoming","both","none","recvonly","sendonly","sendrecv","inactive","outgoing","171","SENDERS","parsers","idCounter","_setIdCounter","groupLines","fingerprints","sctp","trans","rtpmapLines","fmtpLines","fbLines","cryptoLines","extLines","ssrcGroupLines","ssrcLines","msidLine","fingerprintLines","fp","ufragLine","pwdLine","candidateLines","sctpmapLines","./parsers","./senders","172","hasSources","pushedSetup","hdrExts","ssrcGroups","ssrcGroup","173","blob","part","relatedAddress","relatedPort","parseRtpMap","payloadType","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","writeFmtp","parseRtcpFb","writeRtcpFb","rtcpFeedback","colon","fpLine","dtlsParameters","writeDtlsParameters","setupType","iceParameters","usernameFragment","writeIceParameters","rtpmapline","fmtps","writeRtpDescription","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","maxBitrate","getLocalParameters","174","finalSize","_block","_finalSize","_blockSize","_s","ch","175","Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512","176","Sha","_w","rotl5","rotl30","ft","_a","_b","_c","_d","177","Sha1","rotl1","178","Sha224","Sha256","_f","_g","_h","179","maj","sigma0","sigma1","gamma0","gamma1","T1","T2","180","Sha384","SHA512","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","181","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0l","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","182","EE","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js","183","assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","charCode","184","dumpSDP","dumpStream","TraceablePeerConnection","peerconnection","what","failureCallback","185","dup","186","187","188","189","190","191","192","193","194","deprecated","195","196","197","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","numLinesEst","cur","pad","getHours","getMinutes","getSeconds","getDate","months","getMonth","formatRegExp","format","objects","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","./support/isBuffer","198","rng","msCrypto","getRandomValues","_rnds8","_rnds","199","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng","200","requestUserMedia","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","constraintsToFF37","fixChromeStats","successCallbackWrapper","constraintsToChrome","oldname","writeFtmp","sendSsrc","recvSsrc","answerOptions","webrtcTesting","201","202","203","DOMException","204","_config","getConfiguration","isDatachannel","localTrack","205","206","207","208","209","210","PC","IceCandidate","SessionDescription","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream","211","mixin","isWildEmitter","groupName","callbacks","hasGroup","_groupName","releaseGroup","specialCallbacks","getWildcardCallbacks","212","PubSub","./lib/jingle","./lib/muc","./lib/namespaces","./lib/presence","./lib/pubsub","213","Action","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","ALTERNATIVE_SESSION","BUSY","CANCEL","CONNECTIVITY_ERROR","DECLINE","EXPIRED","FAILED_APPLICATION","FAILED_TRANSPORT","GENERAL_ERROR","GONE","INCOMPATIBLE_PARAMETERS","MEDIA_ERROR","SECURITY_ERROR","SUCCESS","UNSUPPORTED_APPLICATIONS","UNSUPPORTED_TRANSPORTS","Condition","OUT_OF_ORDER","TIE_BREAK","UNKNOWN_SESSION","UNSUPPORTED_INFO","214","REALJID_PUBLIC","AFFILIATION_CHANGED","UNAVAILABLE_SHOWN","UNAVAILABLE_NOT_SHOWN","CONFIGURATION_CHANGED","SELF_PRESENCE","LOGGING_ENABLED","LOGGING_DISABLED","NON_ANONYMOUS","SEMI_ANONYMOUS","FULLY_ANONYMOUS","ROOM_CREATED","NICK_ASSIGNED","BANNED","NEW_NICK","KICKED","REMOVED_AFFILIATION","REMOVED_MEMBERSHIP","REMOVED_SHUTDOWN","ADMIN","MEMBER","NONE","OUTCAST","OWNER","Role","MODERATOR","PARTICIPANT","VISITOR","215","RPC","LAST_ACTIVITY","PRIVACY","SEARCH","SOCKS5","HTTP_AUTH","AMP","ROSTER_DELIMITER","ACTIVITY","COMPRESSION","ROSTER_EXCHANGE","ROSTER_NOTES","CAPTCHA","JINGLE_RTP_ERRORS_1","LANG_TRANS","LANG_TRANS_ITEMS","JINGLE_RAW_UDP_1","SEC_LABEL_0","SEC_LABEL_CATALOG_2","SEC_LABEL_ESS_0","JINGLE_SOCKS5_1","JINGLE_IBB_1","JINGLE_RTP_ZRTP_1","THUMBS_1","DECLOAKING_0","MAM_TMP","HINTS","COLIBRI","JINGLE_MSG_INITIATE_0","JINGLE_PUB_1","216","Type","SUBSCRIBE","SUBSCRIBED","UNSUBSCRIBE","UNSUBSCRIBED","PROBE","UNAVAILABLE","Show","CHAT","AWAY","DO_NOT_DISTURB","EXTENDED_AWAY","217","PUBLISHER","PUBLISH_ONLY","PENDING","UNCONFIGURED","AccessModel","OPEN","PRESENCE","AUTHORIZE","WHITELIST","CONFLICT","218","bareJID","fullJID","StringPrep","ASCII","prep","unescapedLocal","nodeprep","resourceprep","nameprep","unescapedBare","unescapedFull","trusted","resourceStart","localEnd","preppedJID","jid1","jid2","requirePrep","equalBare","isBare","hasResource","localOrJID","_isJID","./lib/stringprep","219","220","JSM","RTC","GUM","GSM","jxt","IqStanza","peer_constraints","AUTOACCEPT","manager","getScreenMedia","MozDontOfferDataChannel","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","getscreenmedia","jxt-xmpp","jxt-xmpp-types","webrtc-adapter-test","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","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod","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","t2","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C_lib","lib","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","decodeURIComponent","utf8Str","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","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","t1","t3","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","alias","getListeners","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","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","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","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","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","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","severity","sendFile","filename","l1name","endOtr","i18next","R","interpolation","unescapeSuffix","interpolationPrefix","interpolationSuffix","escapeValue","escapeInterpolation","nestingPrefix","reusePrefix","nestingSuffix","reuseSuffix","resStore","resources","defaultNs","defaultNS","fallbackToDefaultNS","fallbackNS","saveMissing","sendMissing","saveMissingTo","sendMissingTo","returnNull","fallbackOnNull","returnEmptyString","fallbackOnEmpty","returnObjects","returnObjectTrees","joinArrays","returnedObjectHandler","objectTreeKeyHandler","parseMissingKeyHandler","parseMissingKey","appendNamespaceToMissingKey","nsSeparator","nsseparator","keySeparator","keyseparator","shortcutFunction","overloadTranslationOptionHandler","postProcess","sprintf","whitelist","lngWhitelist","preload","load","backend","loadPath","resGetPath","addPath","resPostPath","allowMultiLoading","dynamicLoad","expirationTime","enabled","useLocalStorage","defaultVariables","lng","services","languageUtils","toResolveHierarchy","language","loadLanguages","setLng","fixLng","getFixedT","changeLanguage","addPostProcessor","lngs","numbers","nr","plurals","fc","initImmediate","fallbackLng","nonExplicitWhitelist","pluralSeparator","contextSeparator","missingKeyHandler","defaultValue","formatSeparator","unescapePrefix","_invoke","return","asyncIterator","throw","await","setPrototypeOf","ReferenceError","_output","setDebug","forward","observers","/","E","addNamespaces","removeNamespaces","getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","processors","handle","extractFromKey","translate","extendTranslation","isValidLookup","getFallbackCodes","backendConnector","interpolator","interpolate","nest","applyPostProcessor","pluralResolver","getSuffix","resourceStore","getLanguagePartFromCode","formatLanguageCode","getScriptPartFromCode","lowerCaseLng","cleanCode","isWhitelisted","rules","addRule","getRule","needsPlural","noAbs","prepend","compatibilityJSON","V","prefixEscaped","suffixEscaped","nestingPrefixEscaped","nestingSuffixEscaped","resetRegExp","regexpUnescape","nestingRegexp","store","queueLoad","loaded","toLoad","toLoadLanguages","toLoadNamespaces","readMulti","reload","I","save","modules","isInitialized","isClone","cacheConnector","languageDetector","detection","translator","loadResources","reloadResources","languages","cacheUserLanguage","setDefaultNamespace","loadNamespaces","createInstance","cloneInstance","D","jqueryI18next","parseDefaultValueFromContent","selectorAttr","targetAttr","useOptionsAttr","optionsAttr","tName","i18nName","handleName","Zepto","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isLowIE","isIE8","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isOpen","updateItemHTML","mainEl","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","closeBtnInside","close_replaceWith","alignTop","overflowY","overflowX","top","scrollTop","fixedBgPos","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","detach","_removeClassFromMFP","removeAttr","currItem","autoFocusLast","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","J","settings","cursor","tError","initAjax","ajax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","naturalWidth","getImage","alt","img_replaceWith","loading","MozTransform","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","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","opera","ie","safari","HTMLElement","supported","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","emojioneList",":kiss_ww:","unicode","fname","uc","isCanonical",":couplekiss_ww:",":kiss_mm:",":couplekiss_mm:",":family_mmbb:",":family_mmgb:",":family_mmgg:",":family_mwbb:",":family_mwgb:",":family_mwgg:",":family_wwbb:",":family_wwgb:",":family_wwgg:",":couple_ww:",":couple_with_heart_ww:",":couple_mm:",":couple_with_heart_mm:",":family_mmb:",":family_mmg:",":family_mwg:",":family_wwb:",":family_wwg:",":rainbow_flag:",":gay_pride_flag:",":eye_in_speech_bubble:",":hash:",":zero:",":one:",":two:",":three:",":four:",":five:",":six:",":seven:",":eight:",":nine:",":asterisk:",":keycap_asterisk:",":handball_tone5:",":handball_tone4:",":handball_tone3:",":handball_tone2:",":handball_tone1:",":water_polo_tone5:",":water_polo_tone4:",":water_polo_tone3:",":water_polo_tone2:",":water_polo_tone1:",":wrestlers_tone5:",":wrestling_tone5:",":wrestlers_tone4:",":wrestling_tone4:",":wrestlers_tone3:",":wrestling_tone3:",":wrestlers_tone2:",":wrestling_tone2:",":wrestlers_tone1:",":wrestling_tone1:",":juggling_tone5:",":juggler_tone5:",":juggling_tone4:",":juggler_tone4:",":juggling_tone3:",":juggler_tone3:",":juggling_tone2:",":juggler_tone2:",":juggling_tone1:",":juggler_tone1:",":cartwheel_tone5:",":person_doing_cartwheel_tone5:",":cartwheel_tone4:",":person_doing_cartwheel_tone4:",":cartwheel_tone3:",":person_doing_cartwheel_tone3:",":cartwheel_tone2:",":person_doing_cartwheel_tone2:",":cartwheel_tone1:",":person_doing_cartwheel_tone1:",":shrug_tone5:",":shrug_tone4:",":shrug_tone3:",":shrug_tone2:",":shrug_tone1:",":mrs_claus_tone5:",":mother_christmas_tone5:",":mrs_claus_tone4:",":mother_christmas_tone4:",":mrs_claus_tone3:",":mother_christmas_tone3:",":mrs_claus_tone2:",":mother_christmas_tone2:",":mrs_claus_tone1:",":mother_christmas_tone1:",":man_in_tuxedo_tone5:",":tuxedo_tone5:",":man_in_tuxedo_tone4:",":tuxedo_tone4:",":man_in_tuxedo_tone3:",":tuxedo_tone3:",":man_in_tuxedo_tone2:",":tuxedo_tone2:",":man_in_tuxedo_tone1:",":tuxedo_tone1:",":prince_tone5:",":prince_tone4:",":prince_tone3:",":prince_tone2:",":prince_tone1:",":selfie_tone5:",":selfie_tone4:",":selfie_tone3:",":selfie_tone2:",":selfie_tone1:",":pregnant_woman_tone5:",":expecting_woman_tone5:",":pregnant_woman_tone4:",":expecting_woman_tone4:",":pregnant_woman_tone3:",":expecting_woman_tone3:",":pregnant_woman_tone2:",":expecting_woman_tone2:",":pregnant_woman_tone1:",":expecting_woman_tone1:",":face_palm_tone5:",":facepalm_tone5:",":face_palm_tone4:",":facepalm_tone4:",":face_palm_tone3:",":facepalm_tone3:",":face_palm_tone2:",":facepalm_tone2:",":face_palm_tone1:",":facepalm_tone1:",":fingers_crossed_tone5:",":hand_with_index_and_middle_fingers_crossed_tone5:",":fingers_crossed_tone4:",":hand_with_index_and_middle_fingers_crossed_tone4:",":fingers_crossed_tone3:",":hand_with_index_and_middle_fingers_crossed_tone3:",":fingers_crossed_tone2:",":hand_with_index_and_middle_fingers_crossed_tone2:",":fingers_crossed_tone1:",":hand_with_index_and_middle_fingers_crossed_tone1:",":handshake_tone5:",":shaking_hands_tone5:",":handshake_tone4:",":shaking_hands_tone4:",":handshake_tone3:",":shaking_hands_tone3:",":handshake_tone2:",":shaking_hands_tone2:",":handshake_tone1:",":shaking_hands_tone1:",":right_facing_fist_tone5:",":right_fist_tone5:",":right_facing_fist_tone4:",":right_fist_tone4:",":right_facing_fist_tone3:",":right_fist_tone3:",":right_facing_fist_tone2:",":right_fist_tone2:",":right_facing_fist_tone1:",":right_fist_tone1:",":left_facing_fist_tone5:",":left_fist_tone5:",":left_facing_fist_tone4:",":left_fist_tone4:",":left_facing_fist_tone3:",":left_fist_tone3:",":left_facing_fist_tone2:",":left_fist_tone2:",":left_facing_fist_tone1:",":left_fist_tone1:",":raised_back_of_hand_tone5:",":back_of_hand_tone5:",":raised_back_of_hand_tone4:",":back_of_hand_tone4:",":raised_back_of_hand_tone3:",":back_of_hand_tone3:",":raised_back_of_hand_tone2:",":back_of_hand_tone2:",":raised_back_of_hand_tone1:",":back_of_hand_tone1:",":call_me_tone5:",":call_me_hand_tone5:",":call_me_tone4:",":call_me_hand_tone4:",":call_me_tone3:",":call_me_hand_tone3:",":call_me_tone2:",":call_me_hand_tone2:",":call_me_tone1:",":call_me_hand_tone1:",":metal_tone5:",":sign_of_the_horns_tone5:",":metal_tone4:",":sign_of_the_horns_tone4:",":metal_tone3:",":sign_of_the_horns_tone3:",":metal_tone2:",":sign_of_the_horns_tone2:",":metal_tone1:",":sign_of_the_horns_tone1:",":bath_tone5:",":bath_tone4:",":bath_tone3:",":bath_tone2:",":bath_tone1:",":walking_tone5:",":walking_tone4:",":walking_tone3:",":walking_tone2:",":walking_tone1:",":mountain_bicyclist_tone5:",":mountain_bicyclist_tone4:",":mountain_bicyclist_tone3:",":mountain_bicyclist_tone2:",":mountain_bicyclist_tone1:",":bicyclist_tone5:",":bicyclist_tone4:",":bicyclist_tone3:",":bicyclist_tone2:",":bicyclist_tone1:",":rowboat_tone5:",":rowboat_tone4:",":rowboat_tone3:",":rowboat_tone2:",":rowboat_tone1:",":pray_tone5:",":pray_tone4:",":pray_tone3:",":pray_tone2:",":pray_tone1:",":person_with_pouting_face_tone5:",":person_with_pouting_face_tone4:",":person_with_pouting_face_tone3:",":person_with_pouting_face_tone2:",":person_with_pouting_face_tone1:",":person_frowning_tone5:",":person_frowning_tone4:",":person_frowning_tone3:",":person_frowning_tone2:",":person_frowning_tone1:",":raised_hands_tone5:",":raised_hands_tone4:",":raised_hands_tone3:",":raised_hands_tone2:",":raised_hands_tone1:",":raising_hand_tone5:",":raising_hand_tone4:",":raising_hand_tone3:",":raising_hand_tone2:",":raising_hand_tone1:",":bow_tone5:",":bow_tone4:",":bow_tone3:",":bow_tone2:",":bow_tone1:",":ok_woman_tone5:",":ok_woman_tone4:",":ok_woman_tone3:",":ok_woman_tone2:",":ok_woman_tone1:",":no_good_tone5:",":no_good_tone4:",":no_good_tone3:",":no_good_tone2:",":no_good_tone1:",":vulcan_tone5:",":raised_hand_with_part_between_middle_and_ring_fingers_tone5:",":vulcan_tone4:",":raised_hand_with_part_between_middle_and_ring_fingers_tone4:",":vulcan_tone3:",":raised_hand_with_part_between_middle_and_ring_fingers_tone3:",":vulcan_tone2:",":raised_hand_with_part_between_middle_and_ring_fingers_tone2:",":vulcan_tone1:",":raised_hand_with_part_between_middle_and_ring_fingers_tone1:",":middle_finger_tone5:",":reversed_hand_with_middle_finger_extended_tone5:",":middle_finger_tone4:",":reversed_hand_with_middle_finger_extended_tone4:",":middle_finger_tone3:",":reversed_hand_with_middle_finger_extended_tone3:",":middle_finger_tone2:",":reversed_hand_with_middle_finger_extended_tone2:",":middle_finger_tone1:",":reversed_hand_with_middle_finger_extended_tone1:",":hand_splayed_tone5:",":raised_hand_with_fingers_splayed_tone5:",":hand_splayed_tone4:",":raised_hand_with_fingers_splayed_tone4:",":hand_splayed_tone3:",":raised_hand_with_fingers_splayed_tone3:",":hand_splayed_tone2:",":raised_hand_with_fingers_splayed_tone2:",":hand_splayed_tone1:",":raised_hand_with_fingers_splayed_tone1:",":man_dancing_tone5:",":male_dancer_tone5:",":man_dancing_tone4:",":male_dancer_tone4:",":man_dancing_tone3:",":male_dancer_tone3:",":man_dancing_tone2:",":male_dancer_tone2:",":man_dancing_tone1:",":male_dancer_tone1:",":spy_tone5:",":sleuth_or_spy_tone5:",":spy_tone4:",":sleuth_or_spy_tone4:",":spy_tone3:",":sleuth_or_spy_tone3:",":spy_tone2:",":sleuth_or_spy_tone2:",":spy_tone1:",":sleuth_or_spy_tone1:",":muscle_tone5:",":muscle_tone4:",":muscle_tone3:",":muscle_tone2:",":muscle_tone1:",":haircut_tone5:",":haircut_tone4:",":haircut_tone3:",":haircut_tone2:",":haircut_tone1:",":massage_tone5:",":massage_tone4:",":massage_tone3:",":massage_tone2:",":massage_tone1:",":nail_care_tone5:",":nail_care_tone4:",":nail_care_tone3:",":nail_care_tone2:",":nail_care_tone1:",":dancer_tone5:",":dancer_tone4:",":dancer_tone3:",":dancer_tone2:",":dancer_tone1:",":guardsman_tone5:",":guardsman_tone4:",":guardsman_tone3:",":guardsman_tone2:",":guardsman_tone1:",":information_desk_person_tone5:",":information_desk_person_tone4:",":information_desk_person_tone3:",":information_desk_person_tone2:",":information_desk_person_tone1:",":angel_tone5:",":angel_tone4:",":angel_tone3:",":angel_tone2:",":angel_tone1:",":princess_tone5:",":princess_tone4:",":princess_tone3:",":princess_tone2:",":princess_tone1:",":construction_worker_tone5:",":construction_worker_tone4:",":construction_worker_tone3:",":construction_worker_tone2:",":construction_worker_tone1:",":baby_tone5:",":baby_tone4:",":baby_tone3:",":baby_tone2:",":baby_tone1:",":older_woman_tone5:",":grandma_tone5:",":older_woman_tone4:",":grandma_tone4:",":older_woman_tone3:",":grandma_tone3:",":older_woman_tone2:",":grandma_tone2:",":older_woman_tone1:",":grandma_tone1:",":older_man_tone5:",":older_man_tone4:",":older_man_tone3:",":older_man_tone2:",":older_man_tone1:",":man_with_turban_tone5:",":man_with_turban_tone4:",":man_with_turban_tone3:",":man_with_turban_tone2:",":man_with_turban_tone1:",":man_with_gua_pi_mao_tone5:",":man_with_gua_pi_mao_tone4:",":man_with_gua_pi_mao_tone3:",":man_with_gua_pi_mao_tone2:",":man_with_gua_pi_mao_tone1:",":person_with_blond_hair_tone5:",":person_with_blond_hair_tone4:",":person_with_blond_hair_tone3:",":person_with_blond_hair_tone2:",":person_with_blond_hair_tone1:",":bride_with_veil_tone5:",":bride_with_veil_tone4:",":bride_with_veil_tone3:",":bride_with_veil_tone2:",":bride_with_veil_tone1:",":cop_tone5:",":cop_tone4:",":cop_tone3:",":cop_tone2:",":cop_tone1:",":woman_tone5:",":woman_tone4:",":woman_tone3:",":woman_tone2:",":woman_tone1:",":man_tone5:",":man_tone4:",":man_tone3:",":man_tone2:",":man_tone1:",":girl_tone5:",":girl_tone4:",":girl_tone3:",":girl_tone2:",":girl_tone1:",":boy_tone5:",":boy_tone4:",":boy_tone3:",":boy_tone2:",":boy_tone1:",":open_hands_tone5:",":open_hands_tone4:",":open_hands_tone3:",":open_hands_tone2:",":open_hands_tone1:",":clap_tone5:",":clap_tone4:",":clap_tone3:",":clap_tone2:",":clap_tone1:",":thumbsdown_tone5:",":-1_tone5:",":thumbdown_tone5:",":thumbsdown_tone4:",":-1_tone4:",":thumbdown_tone4:",":thumbsdown_tone3:",":-1_tone3:",":thumbdown_tone3:",":thumbsdown_tone2:",":-1_tone2:",":thumbdown_tone2:",":thumbsdown_tone1:",":-1_tone1:",":thumbdown_tone1:",":thumbsup_tone5:",":+1_tone5:",":thumbup_tone5:",":thumbsup_tone4:",":+1_tone4:",":thumbup_tone4:",":thumbsup_tone3:",":+1_tone3:",":thumbup_tone3:",":thumbsup_tone2:",":+1_tone2:",":thumbup_tone2:",":thumbsup_tone1:",":+1_tone1:",":thumbup_tone1:",":ok_hand_tone5:",":ok_hand_tone4:",":ok_hand_tone3:",":ok_hand_tone2:",":ok_hand_tone1:",":wave_tone5:",":wave_tone4:",":wave_tone3:",":wave_tone2:",":wave_tone1:",":punch_tone5:",":punch_tone4:",":punch_tone3:",":punch_tone2:",":punch_tone1:",":point_right_tone5:",":point_right_tone4:",":point_right_tone3:",":point_right_tone2:",":point_right_tone1:",":point_left_tone5:",":point_left_tone4:",":point_left_tone3:",":point_left_tone2:",":point_left_tone1:",":point_down_tone5:",":point_down_tone4:",":point_down_tone3:",":point_down_tone2:",":point_down_tone1:",":point_up_2_tone5:",":point_up_2_tone4:",":point_up_2_tone3:",":point_up_2_tone2:",":point_up_2_tone1:",":nose_tone5:",":nose_tone4:",":nose_tone3:",":nose_tone2:",":nose_tone1:",":ear_tone5:",":ear_tone4:",":ear_tone3:",":ear_tone2:",":ear_tone1:",":lifter_tone5:",":weight_lifter_tone5:",":lifter_tone4:",":weight_lifter_tone4:",":lifter_tone3:",":weight_lifter_tone3:",":lifter_tone2:",":weight_lifter_tone2:",":lifter_tone1:",":weight_lifter_tone1:",":swimmer_tone5:",":swimmer_tone4:",":swimmer_tone3:",":swimmer_tone2:",":swimmer_tone1:",":horse_racing_tone5:",":horse_racing_tone4:",":horse_racing_tone3:",":horse_racing_tone2:",":horse_racing_tone1:",":surfer_tone5:",":surfer_tone4:",":surfer_tone3:",":surfer_tone2:",":surfer_tone1:",":runner_tone5:",":runner_tone4:",":runner_tone3:",":runner_tone2:",":runner_tone1:",":santa_tone5:",":santa_tone4:",":santa_tone3:",":santa_tone2:",":santa_tone1:",":flag_zw:",":zw:",":flag_zm:",":zm:",":flag_za:",":za:",":flag_yt:",":yt:",":flag_ye:",":ye:",":flag_xk:",":xk:",":flag_ws:",":ws:",":flag_wf:",":wf:",":flag_vu:",":vu:",":flag_vn:",":vn:",":flag_vi:",":vi:",":flag_vg:",":vg:",":flag_ve:",":ve:",":flag_vc:",":vc:",":flag_va:",":va:",":flag_uz:",":uz:",":flag_uy:",":uy:",":flag_us:",":us:",":flag_um:",":um:",":flag_ug:",":ug:",":flag_ua:",":ua:",":flag_tz:",":tz:",":flag_tw:",":tw:",":flag_tv:",":tuvalu:",":flag_tt:",":tt:",":flag_tr:",":tr:",":flag_to:",":to:",":flag_tn:",":tn:",":flag_tm:",":turkmenistan:",":flag_tl:",":tl:",":flag_tk:",":tk:",":flag_tj:",":tj:",":flag_th:",":th:",":flag_tg:",":tg:",":flag_tf:",":tf:",":flag_td:",":td:",":flag_tc:",":tc:",":flag_ta:",":ta:",":flag_sz:",":sz:",":flag_sy:",":sy:",":flag_sx:",":sx:",":flag_sv:",":sv:",":flag_st:",":st:",":flag_ss:",":ss:",":flag_sr:",":sr:",":flag_so:",":so:",":flag_sn:",":sn:",":flag_sm:",":sm:",":flag_sl:",":sl:",":flag_sk:",":sk:",":flag_sj:",":sj:",":flag_si:",":si:",":flag_sh:",":sh:",":flag_sg:",":sg:",":flag_se:",":se:",":flag_sd:",":sd:",":flag_sc:",":sc:",":flag_sb:",":sb:",":flag_sa:",":saudiarabia:",":saudi:",":flag_rw:",":rw:",":flag_ru:",":ru:",":flag_rs:",":rs:",":flag_ro:",":ro:",":flag_re:",":re:",":flag_qa:",":qa:",":flag_py:",":py:",":flag_pw:",":pw:",":flag_pt:",":pt:",":flag_ps:",":ps:",":flag_pr:",":pr:",":flag_pn:",":pn:",":flag_pm:",":pm:",":flag_pl:",":pl:",":flag_pk:",":pk:",":flag_ph:",":ph:",":flag_pg:",":pg:",":flag_pf:",":pf:",":flag_pe:",":pe:",":flag_pa:",":pa:",":flag_om:",":om:",":flag_nz:",":nz:",":flag_nu:",":nu:",":flag_nr:",":nr:",":flag_np:",":np:",":flag_no:",":no:",":flag_nl:",":nl:",":flag_ni:",":ni:",":flag_ng:",":nigeria:",":flag_nf:",":nf:",":flag_ne:",":ne:",":flag_nc:",":nc:",":flag_na:",":na:",":flag_mz:",":mz:",":flag_my:",":my:",":flag_mx:",":mx:",":flag_mw:",":mw:",":flag_mv:",":mv:",":flag_mu:",":mu:",":flag_mt:",":mt:",":flag_ms:",":ms:",":flag_mr:",":mr:",":flag_mq:",":mq:",":flag_mp:",":mp:",":flag_mo:",":mo:",":flag_mn:",":mn:",":flag_mm:",":mm:",":flag_ml:",":ml:",":flag_mk:",":mk:",":flag_mh:",":mh:",":flag_mg:",":mg:",":flag_mf:",":mf:",":flag_me:",":me:",":flag_md:",":md:",":flag_mc:",":mc:",":flag_ma:",":ma:",":flag_ly:",":ly:",":flag_lv:",":lv:",":flag_lu:",":lu:",":flag_lt:",":lt:",":flag_ls:",":ls:",":flag_lr:",":lr:",":flag_lk:",":lk:",":flag_li:",":li:",":flag_lc:",":lc:",":flag_lb:",":lb:",":flag_la:",":la:",":flag_kz:",":kz:",":flag_ky:",":ky:",":flag_kw:",":kw:",":flag_kr:",":kr:",":flag_kp:",":kp:",":flag_kn:",":kn:",":flag_km:",":km:",":flag_ki:",":ki:",":flag_kh:",":kh:",":flag_kg:",":kg:",":flag_ke:",":ke:",":flag_jp:",":jp:",":flag_jo:",":jo:",":flag_jm:",":jm:",":flag_je:",":je:",":flag_it:",":it:",":flag_is:",":is:",":flag_ir:",":ir:",":flag_iq:",":iq:",":flag_io:",":io:",":flag_in:",":in:",":flag_im:",":im:",":flag_il:",":il:",":flag_ie:",":ie:",":flag_id:",":indonesia:",":flag_ic:",":ic:",":flag_hu:",":hu:",":flag_ht:",":ht:",":flag_hr:",":hr:",":flag_hn:",":hn:",":flag_hm:",":hm:",":flag_hk:",":hk:",":flag_gy:",":gy:",":flag_gw:",":gw:",":flag_gu:",":gu:",":flag_gt:",":gt:",":flag_gs:",":gs:",":flag_gr:",":gr:",":flag_gq:",":gq:",":flag_gp:",":gp:",":flag_gn:",":gn:",":flag_gm:",":gm:",":flag_gl:",":gl:",":flag_gi:",":gi:",":flag_gh:",":gh:",":flag_gg:",":gg:",":flag_gf:",":gf:",":flag_ge:",":ge:",":flag_gd:",":gd:",":flag_gb:",":gb:",":flag_ga:",":ga:",":flag_fr:",":fr:",":flag_fo:",":fo:",":flag_fm:",":fm:",":flag_fk:",":fk:",":flag_fj:",":fj:",":flag_fi:",":fi:",":flag_eu:",":eu:",":flag_et:",":et:",":flag_es:",":es:",":flag_er:",":er:",":flag_eh:",":eh:",":flag_eg:",":eg:",":flag_ee:",":ee:",":flag_ec:",":ec:",":flag_ea:",":ea:",":flag_dz:",":dz:",":flag_do:",":do:",":flag_dm:",":dm:",":flag_dk:",":dk:",":flag_dj:",":dj:",":flag_dg:",":dg:",":flag_de:",":de:",":flag_cz:",":cz:",":flag_cy:",":cy:",":flag_cx:",":cx:",":flag_cw:",":cw:",":flag_cv:",":cv:",":flag_cu:",":cu:",":flag_cr:",":cr:",":flag_cp:",":cp:",":flag_co:",":co:",":flag_cn:",":cn:",":flag_cm:",":cm:",":flag_cl:",":chile:",":flag_ck:",":ck:",":flag_ci:",":ci:",":flag_ch:",":ch:",":flag_cg:",":cg:",":flag_cf:",":cf:",":flag_cd:",":congo:",":flag_cc:",":cc:",":flag_ca:",":ca:",":flag_bz:",":bz:",":flag_by:",":by:",":flag_bw:",":bw:",":flag_bv:",":bv:",":flag_bt:",":bt:",":flag_bs:",":bs:",":flag_br:",":br:",":flag_bq:",":bq:",":flag_bo:",":bo:",":flag_bn:",":bn:",":flag_bm:",":bm:",":flag_bl:",":bl:",":flag_bj:",":bj:",":flag_bi:",":bi:",":flag_bh:",":bh:",":flag_bg:",":bg:",":flag_bf:",":bf:",":flag_be:",":be:",":flag_bd:",":bd:",":flag_bb:",":bb:",":flag_ba:",":ba:",":flag_az:",":az:",":flag_ax:",":ax:",":flag_aw:",":aw:",":flag_au:",":au:",":flag_at:",":at:",":flag_as:",":as:",":flag_ar:",":ar:",":flag_aq:",":aq:",":flag_ao:",":ao:",":flag_am:",":am:",":flag_al:",":al:",":flag_ai:",":ai:",":flag_ag:",":ag:",":flag_af:",":af:",":flag_ae:",":ae:",":flag_ad:",":ad:",":flag_ac:",":ac:",":mahjong:",":parking:",":sa:",":u7121:",":u6307:",":u6708:",":film_frames:",":tickets:",":admission_tickets:",":lifter:",":weight_lifter:",":golfer:",":motorcycle:",":racing_motorcycle:",":race_car:",":racing_car:",":military_medal:",":reminder_ribbon:",":hot_pepper:",":cloud_rain:",":cloud_with_rain:",":cloud_snow:",":cloud_with_snow:",":cloud_lightning:",":cloud_with_lightning:",":cloud_tornado:",":cloud_with_tornado:",":fog:",":wind_blowing_face:",":chipmunk:",":spider:",":spider_web:",":thermometer:",":microphone2:",":studio_microphone:",":level_slider:",":control_knobs:",":flag_white:",":waving_white_flag:",":rosette:",":label:",":projector:",":film_projector:",":om_symbol:",":dove:",":dove_of_peace:",":candle:",":clock:",":mantlepiece_clock:",":hole:",":dark_sunglasses:",":joystick:",":paperclips:",":linked_paperclips:",":pen_ballpoint:",":lower_left_ballpoint_pen:",":pen_fountain:",":lower_left_fountain_pen:",":paintbrush:",":lower_left_paintbrush:",":crayon:",":lower_left_crayon:",":desktop:",":desktop_computer:",":printer:",":trackball:",":frame_photo:",":frame_with_picture:",":dividers:",":card_index_dividers:",":card_box:",":card_file_box:",":file_cabinet:",":wastebasket:",":notepad_spiral:",":spiral_note_pad:",":calendar_spiral:",":spiral_calendar_pad:",":compression:",":key2:",":old_key:",":newspaper2:",":rolled_up_newspaper:",":dagger:",":dagger_knife:",":speaking_head:",":speaking_head_in_silhouette:",":speech_left:",":left_speech_bubble:",":anger_right:",":right_anger_bubble:",":ballot_box:",":ballot_box_with_ballot:",":map:",":world_map:",":tools:",":hammer_and_wrench:",":shield:",":oil:",":oil_drum:",":satellite_orbital:",":fork_knife_plate:",":fork_and_knife_with_plate:",":eye:",":levitate:",":man_in_business_suit_levitating:",":spy:",":sleuth_or_spy:",":hand_splayed:",":raised_hand_with_fingers_splayed:",":mountain_snow:",":snow_capped_mountain:",":camping:",":beach:",":beach_with_umbrella:",":construction_site:",":building_construction:",":homes:",":house_buildings:",":cityscape:",":house_abandoned:",":derelict_house_building:",":classical_building:",":desert:",":island:",":desert_island:",":park:",":national_park:",":stadium:",":couch:",":couch_and_lamp:",":shopping_bags:",":bellhop:",":bellhop_bell:",":bed:",":motorway:",":railway_track:",":railroad_track:",":motorboat:",":airplane_small:",":small_airplane:",":cruise_ship:",":passenger_ship:",":white_sun_small_cloud:",":white_sun_with_small_cloud:",":white_sun_cloud:",":white_sun_behind_cloud:",":white_sun_rain_cloud:",":white_sun_behind_cloud_with_rain:",":mouse_three_button:",":three_button_mouse:",":point_up_tone1:",":point_up_tone2:",":point_up_tone3:",":point_up_tone4:",":point_up_tone5:",":v_tone1:",":v_tone2:",":v_tone3:",":v_tone4:",":v_tone5:",":fist_tone1:",":fist_tone2:",":fist_tone3:",":fist_tone4:",":fist_tone5:",":raised_hand_tone1:",":raised_hand_tone2:",":raised_hand_tone3:",":raised_hand_tone4:",":raised_hand_tone5:",":writing_hand_tone1:",":writing_hand_tone2:",":writing_hand_tone3:",":writing_hand_tone4:",":writing_hand_tone5:",":basketball_player_tone1:",":person_with_ball_tone1:",":basketball_player_tone2:",":person_with_ball_tone2:",":basketball_player_tone3:",":person_with_ball_tone3:",":basketball_player_tone4:",":person_with_ball_tone4:",":basketball_player_tone5:",":person_with_ball_tone5:",":copyright:",":registered:",":bangbang:",":interrobang:",":tm:",":information_source:",":left_right_arrow:",":arrow_up_down:",":arrow_upper_left:",":arrow_upper_right:",":arrow_lower_right:",":arrow_lower_left:",":leftwards_arrow_with_hook:",":arrow_right_hook:",":watch:",":hourglass:",":m:",":black_small_square:",":white_small_square:",":arrow_forward:",":arrow_backward:",":white_medium_square:",":black_medium_square:",":white_medium_small_square:",":black_medium_small_square:",":sunny:",":cloud:",":telephone:",":ballot_box_with_check:",":umbrella:",":coffee:",":point_up:",":relaxed:",":aries:",":taurus:",":gemini:",":cancer:",":leo:",":virgo:",":libra:",":scorpius:",":sagittarius:",":capricorn:",":aquarius:",":pisces:",":spades:",":clubs:",":hearts:",":diamonds:",":hotsprings:",":recycle:",":wheelchair:",":anchor:",":warning:",":zap:",":white_circle:",":black_circle:",":soccer:",":baseball:",":snowman:",":partly_sunny:",":no_entry:",":church:",":fountain:",":golf:",":sailboat:",":tent:",":fuelpump:",":scissors:",":airplane:",":envelope:",":v:",":pencil2:",":black_nib:",":heavy_check_mark:",":heavy_multiplication_x:",":eight_spoked_asterisk:",":eight_pointed_black_star:",":snowflake:",":sparkle:",":exclamation:",":heart:",":arrow_right:",":arrow_heading_up:",":arrow_heading_down:",":arrow_left:",":arrow_up:",":arrow_down:",":black_large_square:",":white_large_square:",":star:",":o:",":wavy_dash:",":part_alternation_mark:",":congratulations:",":secret:",":cross:",":latin_cross:",":keyboard:",":writing_hand:",":eject:",":eject_symbol:",":track_next:",":next_track:",":track_previous:",":previous_track:",":play_pause:",":stopwatch:",":timer:",":timer_clock:",":pause_button:",":double_vertical_bar:",":stop_button:",":record_button:",":umbrella2:",":snowman2:",":comet:",":shamrock:",":skull_crossbones:",":skull_and_crossbones:",":radioactive:",":radioactive_sign:",":biohazard:",":biohazard_sign:",":orthodox_cross:",":star_and_crescent:",":peace:",":peace_symbol:",":yin_yang:",":wheel_of_dharma:",":frowning2:",":white_frowning_face:",":hammer_pick:",":hammer_and_pick:",":crossed_swords:",":scales:",":alembic:",":gear:",":atom:",":atom_symbol:",":fleur-de-lis:",":coffin:",":urn:",":funeral_urn:",":thunder_cloud_rain:",":thunder_cloud_and_rain:",":pick:",":helmet_with_cross:",":helmet_with_white_cross:",":chains:",":shinto_shrine:",":mountain:",":beach_umbrella:",":umbrella_on_ground:",":ferry:",":skier:",":ice_skate:",":basketball_player:",":person_with_ball:",":star_of_david:",":heart_exclamation:",":heavy_heart_exclamation_mark_ornament:",":third_place:",":third_place_medal:",":second_place:",":second_place_medal:",":first_place:",":first_place_medal:",":fencer:",":fencing:",":goal:",":goal_net:",":handball:",":regional_indicator_z:",":water_polo:",":martial_arts_uniform:",":karate_uniform:",":boxing_glove:",":boxing_gloves:",":wrestlers:",":wrestling:",":juggling:",":juggler:",":cartwheel:",":person_doing_cartwheel:",":canoe:",":kayak:",":motor_scooter:",":motorbike:",":scooter:",":shopping_cart:",":shopping_trolley:",":black_joker:",":a:",":b:",":o2:",":octagonal_sign:",":stop_sign:",":ab:",":cl:",":regional_indicator_y:",":cool:",":free:",":id:",":new:",":ng:",":ok:",":sos:",":spoon:",":up:",":vs:",":champagne_glass:",":clinking_glass:",":tumbler_glass:",":whisky:",":koko:",":stuffed_flatbread:",":stuffed_pita:",":u7981:",":u7a7a:",":u5408:",":u6e80:",":u6709:",":shallow_pan_of_food:",":paella:",":u7533:",":u5272:",":salad:",":green_salad:",":u55b6:",":ideograph_advantage:",":accept:",":cyclone:",":french_bread:",":baguette_bread:",":foggy:",":closed_umbrella:",":night_with_stars:",":sunrise_over_mountains:",":sunrise:",":city_dusk:",":carrot:",":city_sunset:",":city_sunrise:",":rainbow:",":potato:",":bridge_at_night:",":ocean:",":volcano:",":milky_way:",":earth_asia:",":new_moon:",":bacon:",":first_quarter_moon:",":waxing_gibbous_moon:",":full_moon:",":crescent_moon:",":first_quarter_moon_with_face:",":star2:",":cucumber:",":stars:",":chestnut:",":avocado:",":seedling:",":palm_tree:",":cactus:",":tulip:",":cherry_blossom:",":rose:",":hibiscus:",":sunflower:",":blossom:",":corn:",":croissant:",":ear_of_rice:",":herb:",":four_leaf_clover:",":maple_leaf:",":fallen_leaf:",":leaves:",":mushroom:",":tomato:",":eggplant:",":grapes:",":melon:",":watermelon:",":tangerine:",":wilted_rose:",":wilted_flower:",":banana:",":pineapple:",":apple:",":green_apple:",":peach:",":cherries:",":strawberry:",":rhino:",":rhinoceros:",":hamburger:",":pizza:",":meat_on_bone:",":lizard:",":poultry_leg:",":rice_cracker:",":rice_ball:",":gorilla:",":rice:",":curry:",":deer:",":ramen:",":spaghetti:",":bread:",":fries:",":butterfly:",":sweet_potato:",":dango:",":fox:",":fox_face:",":oden:",":sushi:",":owl:",":fried_shrimp:",":fish_cake:",":shark:",":icecream:",":bat:",":shaved_ice:",":regional_indicator_x:",":ice_cream:",":duck:",":doughnut:",":eagle:",":cookie:",":black_heart:",":chocolate_bar:",":candy:",":lollipop:",":custard:",":pudding:",":flan:",":honey_pot:",":fingers_crossed:",":hand_with_index_and_middle_finger_crossed:",":cake:",":bento:",":stew:",":handshake:",":shaking_hands:",":cooking:",":fork_and_knife:",":tea:",":sake:",":wine_glass:",":cocktail:",":tropical_drink:",":beer:",":beers:",":ribbon:",":gift:",":birthday:",":jack_o_lantern:",":left_facing_fist:",":left_fist:",":right_facing_fist:",":right_fist:",":christmas_tree:",":santa:",":fireworks:",":raised_back_of_hand:",":back_of_hand:",":sparkler:",":balloon:",":tada:",":confetti_ball:",":tanabata_tree:",":crossed_flags:",":call_me:",":call_me_hand:",":bamboo:",":man_dancing:",":male_dancer:",":dolls:",":selfie:",":flags:",":pregnant_woman:",":expecting_woman:",":wind_chime:",":face_palm:",":facepalm:",":shrug:",":rice_scene:",":school_satchel:",":mortar_board:",":carousel_horse:",":ferris_wheel:",":roller_coaster:",":fishing_pole_and_fish:",":microphone:",":movie_camera:",":cinema:",":headphones:",":mrs_claus:",":mother_christmas:",":art:",":man_in_tuxedo:",":tophat:",":circus_tent:",":prince:",":ticket:",":clapper:",":performing_arts:",":sneezing_face:",":sneeze:",":video_game:",":dart:",":slot_machine:",":8ball:",":game_die:",":bowling:",":flower_playing_cards:",":lying_face:",":liar:",":musical_note:",":notes:",":saxophone:",":drooling_face:",":drool:",":guitar:",":musical_keyboard:",":trumpet:",":rofl:",":rolling_on_the_floor_laughing:",":violin:",":musical_score:",":running_shirt_with_sash:",":nauseated_face:",":sick:",":tennis:",":ski:",":basketball:",":checkered_flag:",":clown:",":clown_face:",":snowboarder:",":runner:",":surfer:",":trophy:",":football:",":swimmer:",":house:",":house_with_garden:",":office:",":post_office:",":hospital:",":bank:",":atm:",":hotel:",":love_hotel:",":convenience_store:",":school:",":department_store:",":cowboy:",":face_with_cowboy_hat:",":factory:",":izakaya_lantern:",":japanese_castle:",":european_castle:",":snail:",":snake:",":racehorse:",":sheep:",":monkey:",":chicken:",":boar:",":elephant:",":octopus:",":shell:",":bug:",":ant:",":bee:",":beetle:",":fish:",":tropical_fish:",":blowfish:",":turtle:",":hatching_chick:",":baby_chick:",":hatched_chick:",":bird:",":penguin:",":koala:",":poodle:",":camel:",":dolphin:",":mouse:",":cow:",":tiger:",":rabbit:",":cat:",":dragon_face:",":whale:",":horse:",":monkey_face:",":dog:",":pig:",":frog:",":hamster:",":wolf:",":bear:",":panda_face:",":pig_nose:",":feet:",":paw_prints:",":eyes:",":ear:",":nose:",":lips:",":tongue:",":point_up_2:",":point_down:",":point_left:",":point_right:",":punch:",":wave:",":ok_hand:",":thumbsup:",":+1:",":thumbup:",":thumbsdown:",":-1:",":thumbdown:",":clap:",":open_hands:",":crown:",":womans_hat:",":eyeglasses:",":necktie:",":shirt:",":jeans:",":dress:",":kimono:",":bikini:",":womans_clothes:",":purse:",":handbag:",":pouch:",":mans_shoe:",":athletic_shoe:",":high_heel:",":sandal:",":boot:",":footprints:",":bust_in_silhouette:",":boy:",":girl:",":man:",":woman:",":family:",":couple:",":cop:",":dancers:",":bride_with_veil:",":person_with_blond_hair:",":man_with_gua_pi_mao:",":man_with_turban:",":older_man:",":older_woman:",":grandma:",":baby:",":construction_worker:",":princess:",":japanese_ogre:",":japanese_goblin:",":ghost:",":angel:",":alien:",":space_invader:",":imp:",":skull:",":skeleton:",":card_index:",":information_desk_person:",":guardsman:",":dancer:",":lipstick:",":nail_care:",":ledger:",":massage:",":notebook:",":haircut:",":notebook_with_decorative_cover:",":barber:",":closed_book:",":syringe:",":book:",":pill:",":green_book:",":kiss:",":blue_book:",":love_letter:",":orange_book:",":ring:",":books:",":gem:",":name_badge:",":couplekiss:",":scroll:",":bouquet:",":pencil:",":couple_with_heart:",":telephone_receiver:",":wedding:",":pager:",":fax:",":heartbeat:",":satellite:",":loudspeaker:",":broken_heart:",":mega:",":outbox_tray:",":two_hearts:",":inbox_tray:",":package:",":sparkling_heart:",":e-mail:",":email:",":incoming_envelope:",":heartpulse:",":envelope_with_arrow:",":mailbox_closed:",":cupid:",":mailbox:",":postbox:",":blue_heart:",":newspaper:",":iphone:",":green_heart:",":calling:",":vibration_mode:",":yellow_heart:",":mobile_phone_off:",":signal_strength:",":purple_heart:",":camera:",":video_camera:",":gift_heart:",":tv:",":radio:",":revolving_hearts:",":vhs:",":arrows_clockwise:",":heart_decoration:",":loud_sound:",":battery:",":diamond_shape_with_a_dot_inside:",":electric_plug:",":mag:",":bulb:",":mag_right:",":lock_with_ink_pen:",":anger:",":closed_lock_with_key:",":key:",":bomb:",":lock:",":unlock:",":zzz:",":bell:",":bookmark:",":boom:",":link:",":radio_button:",":sweat_drops:",":back:",":end:",":droplet:",":on:",":soon:",":dash:",":top:",":underage:",":poop:",":shit:",":hankey:",":poo:",":keycap_ten:",":muscle:",":capital_abcd:",":abcd:",":dizzy:",":1234:",":symbols:",":speech_balloon:",":abc:",":fire:",":flame:",":white_flower:",":flashlight:",":wrench:",":100:",":hammer:",":nut_and_bolt:",":moneybag:",":knife:",":gun:",":currency_exchange:",":crystal_ball:",":heavy_dollar_sign:",":six_pointed_star:",":credit_card:",":beginner:",":trident:",":yen:",":black_square_button:",":white_square_button:",":dollar:",":red_circle:",":blue_circle:",":money_with_wings:",":large_orange_diamond:",":large_blue_diamond:",":chart:",":small_orange_diamond:",":small_blue_diamond:",":seat:",":small_red_triangle:",":small_red_triangle_down:",":computer:",":arrow_up_small:",":briefcase:",":arrow_down_small:",":clock1:",":minidisc:",":clock2:",":floppy_disk:",":clock3:",":cd:",":clock4:",":dvd:",":clock5:",":clock6:",":file_folder:",":clock7:",":clock8:",":open_file_folder:",":clock9:",":clock10:",":page_with_curl:",":clock11:",":clock12:",":page_facing_up:",":mount_fuji:",":tokyo_tower:",":date:",":statue_of_liberty:",":japan:",":calendar:",":moyai:",":grin:",":joy:",":smiley:",":chart_with_upwards_trend:",":smile:",":sweat_smile:",":chart_with_downwards_trend:",":laughing:",":satisfied:",":wink:",":bar_chart:",":blush:",":yum:",":clipboard:",":relieved:",":heart_eyes:",":pushpin:",":smirk:",":unamused:",":round_pushpin:",":sweat:",":pensive:",":paperclip:",":confounded:",":kissing_heart:",":straight_ruler:",":kissing_closed_eyes:",":stuck_out_tongue_winking_eye:",":triangular_ruler:",":stuck_out_tongue_closed_eyes:",":disappointed:",":bookmark_tabs:",":angry:",":rage:",":cry:",":persevere:",":triumph:",":disappointed_relieved:",":fearful:",":weary:",":sleepy:",":tired_face:",":sob:",":cold_sweat:",":scream:",":astonished:",":flushed:",":dizzy_face:",":mask:",":smile_cat:",":joy_cat:",":smiley_cat:",":heart_eyes_cat:",":smirk_cat:",":kissing_cat:",":pouting_cat:",":crying_cat_face:",":scream_cat:",":no_good:",":ok_woman:",":bow:",":see_no_evil:",":hear_no_evil:",":speak_no_evil:",":raising_hand:",":raised_hands:",":person_frowning:",":person_with_pouting_face:",":pray:",":rocket:",":railway_car:",":bullettrain_side:",":bullettrain_front:",":metro:",":station:",":bus:",":busstop:",":ambulance:",":fire_engine:",":police_car:",":taxi:",":red_car:",":blue_car:",":truck:",":ship:",":speedboat:",":traffic_light:",":construction:",":rotating_light:",":triangular_flag_on_post:",":door:",":no_entry_sign:",":smoking:",":no_smoking:",":bike:",":walking:",":mens:",":womens:",":restroom:",":baby_symbol:",":toilet:",":wc:",":bath:",":metal:",":sign_of_the_horns:",":grinning:",":innocent:",":smiling_imp:",":sunglasses:",":neutral_face:",":expressionless:",":confused:",":kissing:",":kissing_smiling_eyes:",":stuck_out_tongue:",":worried:",":frowning:",":anguished:",":grimacing:",":open_mouth:",":hushed:",":sleeping:",":no_mouth:",":helicopter:",":steam_locomotive:",":train2:",":light_rail:",":tram:",":oncoming_bus:",":trolleybus:",":minibus:",":oncoming_police_car:",":oncoming_taxi:",":oncoming_automobile:",":articulated_lorry:",":tractor:",":monorail:",":mountain_railway:",":suspension_railway:",":mountain_cableway:",":aerial_tramway:",":rowboat:",":vertical_traffic_light:",":put_litter_in_its_place:",":do_not_litter:",":potable_water:",":non-potable_water:",":no_bicycles:",":bicyclist:",":mountain_bicyclist:",":no_pedestrians:",":children_crossing:",":shower:",":bathtub:",":passport_control:",":customs:",":baggage_claim:",":left_luggage:",":earth_africa:",":earth_americas:",":globe_with_meridians:",":waxing_crescent_moon:",":waning_gibbous_moon:",":last_quarter_moon:",":waning_crescent_moon:",":new_moon_with_face:",":last_quarter_moon_with_face:",":full_moon_with_face:",":sun_with_face:",":evergreen_tree:",":deciduous_tree:",":lemon:",":pear:",":baby_bottle:",":horse_racing:",":rugby_football:",":european_post_office:",":rat:",":mouse2:",":ox:",":water_buffalo:",":cow2:",":tiger2:",":leopard:",":rabbit2:",":cat2:",":dragon:",":crocodile:",":whale2:",":ram:",":goat:",":rooster:",":dog2:",":pig2:",":dromedary_camel:",":busts_in_silhouette:",":two_men_holding_hands:",":two_women_holding_hands:",":thought_balloon:",":euro:",":pound:",":mailbox_with_mail:",":mailbox_with_no_mail:",":postal_horn:",":no_mobile_phones:",":twisted_rightwards_arrows:",":repeat:",":repeat_one:",":arrows_counterclockwise:",":low_brightness:",":high_brightness:",":mute:",":sound:",":no_bell:",":microscope:",":telescope:",":clock130:",":clock230:",":clock330:",":clock430:",":clock530:",":clock630:",":clock730:",":clock830:",":clock930:",":clock1030:",":clock1130:",":clock1230:",":speaker:",":train:",":medal:",":sports_medal:",":flag_black:",":waving_black_flag:",":camera_with_flash:",":sleeping_accommodation:",":middle_finger:",":reversed_hand_with_middle_finger_extended:",":vulcan:",":raised_hand_with_part_between_middle_and_ring_fingers:",":slight_frown:",":slightly_frowning_face:",":slight_smile:",":slightly_smiling_face:",":airplane_departure:",":airplane_arriving:",":tone1:",":tone2:",":tone3:",":tone4:",":tone5:",":upside_down:",":upside_down_face:",":money_mouth:",":money_mouth_face:",":nerd:",":nerd_face:",":hugging:",":hugging_face:",":rolling_eyes:",":face_with_rolling_eyes:",":thinking:",":thinking_face:",":zipper_mouth:",":zipper_mouth_face:",":thermometer_face:",":face_with_thermometer:",":head_bandage:",":face_with_head_bandage:",":robot:",":robot_face:",":lion_face:",":lion:",":unicorn:",":unicorn_face:",":scorpion:",":crab:",":turkey:",":cheese:",":cheese_wedge:",":hotdog:",":hot_dog:",":taco:",":burrito:",":popcorn:",":champagne:",":bottle_with_popping_cork:",":bow_and_arrow:",":archery:",":amphora:",":place_of_worship:",":worship_symbol:",":kaaba:",":mosque:",":synagogue:",":menorah:",":prayer_beads:",":cricket:",":cricket_bat_ball:",":volleyball:",":field_hockey:",":hockey:",":ping_pong:",":table_tennis:",":badminton:",":drum:",":drum_with_drumsticks:",":shrimp:",":squid:",":egg:",":milk:",":glass_of_milk:",":peanuts:",":shelled_peanut:",":kiwi:",":kiwifruit:",":pancakes:",":regional_indicator_w:",":regional_indicator_v:",":regional_indicator_u:",":regional_indicator_t:",":regional_indicator_s:",":regional_indicator_r:",":regional_indicator_q:",":regional_indicator_p:",":regional_indicator_o:",":regional_indicator_n:",":regional_indicator_m:",":regional_indicator_l:",":regional_indicator_k:",":regional_indicator_j:",":regional_indicator_i:",":regional_indicator_h:",":regional_indicator_g:",":regional_indicator_f:",":regional_indicator_e:",":regional_indicator_d:",":regional_indicator_c:",":regional_indicator_b:",":regional_indicator_a:",":fast_forward:",":rewind:",":arrow_double_up:",":arrow_double_down:",":alarm_clock:",":hourglass_flowing_sand:",":ophiuchus:",":white_check_mark:",":fist:",":raised_hand:",":sparkles:",":x:",":negative_squared_cross_mark:",":question:",":grey_question:",":grey_exclamation:",":heavy_plus_sign:",":heavy_minus_sign:",":heavy_division_sign:",":curly_loop:",":loop:","emoji","tmpShortNames","shortnames","asciiList","<3","</3",":')",":'-)",":D",":-D","=D",":)",":-)","=]","=)",":]","':)","':-)","'=)","':D","':-D","'=D",">:)",">;)",">:-)",">=)",";)",";-)","*-)","*)",";-]",";]",";D",";^)","':(","':-(","'=(",":*",":-*","=*",":^*",">:P","X-P","x-p",">:[",":-(",":(",":-[",":[","=(",">:(",">:-(",":@",":'(",":'-(",";(",";-(",">.<","D:",":$","=$","#-)","#)","%-)","%)","X)","X-)","*\\0/*","\\0/","*\\O/*","\\O/","O:-)","0:-3","0:3","0:-)","0:)","0;^)","O:)","O;-)","O=)","0;-)","O:-3","O:3","B-)","B)","8)","8-)","B-D","8-D","-_-","-__-","-___-",">:\\",">:/",":-/",":-.",":/",":\\","=/","=\\",":L","=L",":P",":-P","=P",":-p",":p","=p",":-Þ",":Þ",":þ",":-þ",":-b",":b","d:",":-O",":O",":-o",":o","O_O",">:O",":-X",":X",":-#",":#","=X","=x",":x",":-x","=#","asciiRegexp","unicodeRegexp","jsEscapeMap","👩‍❤️‍💋‍👩","👩❤💋👩","👨‍❤️‍💋‍👨","👨❤💋👨","👨‍👨‍👦‍👦","👨👨👦👦","👨‍👨‍👧‍👦","👨👨👧👦","👨‍👨‍👧‍👧","👨👨👧👧","👨‍👩‍👦‍👦","👨👩👦👦","👨‍👩‍👧‍👦","👨👩👧👦","👨‍👩‍👧‍👧","👨👩👧👧","👩‍👩‍👦‍👦","👩👩👦👦","👩‍👩‍👧‍👦","👩👩👧👦","👩‍👩‍👧‍👧","👩👩👧👧","👩‍❤️‍👩","👩❤👩","👨‍❤️‍👨","👨❤👨","👨‍👨‍👦","👨👨👦","👨‍👨‍👧","👨👨👧","👨‍👩‍👧","👨👩👧","👩‍👩‍👦","👩👩👦","👩‍👩‍👧","👩👩👧","🏳️‍🌈","🏳🌈","👁‍🗨","👁🗨","#️⃣","#⃣","0️⃣","0⃣","1️⃣","1⃣","2️⃣","2⃣","3️⃣","3⃣","4️⃣","4⃣","5️⃣","5⃣","6️⃣","6⃣","7️⃣","7⃣","8️⃣","8⃣","9️⃣","9⃣","*️⃣","*⃣","🤾🏿","🤾🏾","🤾🏽","🤾🏼","🤾🏻","🤽🏿","🤽🏾","🤽🏽","🤽🏼","🤽🏻","🤼🏿","🤼🏾","🤼🏽","🤼🏼","🤼🏻","🤹🏿","🤹🏾","🤹🏽","🤹🏼","🤹🏻","🤸🏿","🤸🏾","🤸🏽","🤸🏼","🤸🏻","🤷🏿","🤷🏾","🤷🏽","🤷🏼","🤷🏻","🤶🏿","🤶🏾","🤶🏽","🤶🏼","🤶🏻","🤵🏿","🤵🏾","🤵🏽","🤵🏼","🤵🏻","🤴🏿","🤴🏾","🤴🏽","🤴🏼","🤴🏻","🤳🏿","🤳🏾","🤳🏽","🤳🏼","🤳🏻","🤰🏿","🤰🏾","🤰🏽","🤰🏼","🤰🏻","🤦🏿","🤦🏾","🤦🏽","🤦🏼","🤦🏻","🤞🏿","🤞🏾","🤞🏽","🤞🏼","🤞🏻","🤝🏿","🤝🏾","🤝🏽","🤝🏼","🤝🏻","🤜🏿","🤜🏾","🤜🏽","🤜🏼","🤜🏻","🤛🏿","🤛🏾","🤛🏽","🤛🏼","🤛🏻","🤚🏿","🤚🏾","🤚🏽","🤚🏼","🤚🏻","🤙🏿","🤙🏾","🤙🏽","🤙🏼","🤙🏻","🤘🏿","🤘🏾","🤘🏽","🤘🏼","🤘🏻","🛀🏿","🛀🏾","🛀🏽","🛀🏼","🛀🏻","🚶🏿","🚶🏾","🚶🏽","🚶🏼","🚶🏻","🚵🏿","🚵🏾","🚵🏽","🚵🏼","🚵🏻","🚴🏿","🚴🏾","🚴🏽","🚴🏼","🚴🏻","🚣🏿","🚣🏾","🚣🏽","🚣🏼","🚣🏻","🙏🏿","🙏🏾","🙏🏽","🙏🏼","🙏🏻","🙎🏿","🙎🏾","🙎🏽","🙎🏼","🙎🏻","🙍🏿","🙍🏾","🙍🏽","🙍🏼","🙍🏻","🙌🏿","🙌🏾","🙌🏽","🙌🏼","🙌🏻","🙋🏿","🙋🏾","🙋🏽","🙋🏼","🙋🏻","🙇🏿","🙇🏾","🙇🏽","🙇🏼","🙇🏻","🙆🏿","🙆🏾","🙆🏽","🙆🏼","🙆🏻","🙅🏿","🙅🏾","🙅🏽","🙅🏼","🙅🏻","🖖🏿","🖖🏾","🖖🏽","🖖🏼","🖖🏻","🖕🏿","🖕🏾","🖕🏽","🖕🏼","🖕🏻","🖐🏿","🖐🏾","🖐🏽","🖐🏼","🖐🏻","🕺🏿","🕺🏾","🕺🏽","🕺🏼","🕺🏻","🕵🏿","🕵🏾","🕵🏽","🕵🏼","🕵🏻","💪🏿","💪🏾","💪🏽","💪🏼","💪🏻","💇🏿","💇🏾","💇🏽","💇🏼","💇🏻","💆🏿","💆🏾","💆🏽","💆🏼","💆🏻","💅🏿","💅🏾","💅🏽","💅🏼","💅🏻","💃🏿","💃🏾","💃🏽","💃🏼","💃🏻","💂🏿","💂🏾","💂🏽","💂🏼","💂🏻","💁🏿","💁🏾","💁🏽","💁🏼","💁🏻","👼🏿","👼🏾","👼🏽","👼🏼","👼🏻","👸🏿","👸🏾","👸🏽","👸🏼","👸🏻","👷🏿","👷🏾","👷🏽","👷🏼","👷🏻","👶🏿","👶🏾","👶🏽","👶🏼","👶🏻","👵🏿","👵🏾","👵🏽","👵🏼","👵🏻","👴🏿","👴🏾","👴🏽","👴🏼","👴🏻","👳🏿","👳🏾","👳🏽","👳🏼","👳🏻","👲🏿","👲🏾","👲🏽","👲🏼","👲🏻","👱🏿","👱🏾","👱🏽","👱🏼","👱🏻","👰🏿","👰🏾","👰🏽","👰🏼","👰🏻","👮🏿","👮🏾","👮🏽","👮🏼","👮🏻","👩🏿","👩🏾","👩🏽","👩🏼","👩🏻","👨🏿","👨🏾","👨🏽","👨🏼","👨🏻","👧🏿","👧🏾","👧🏽","👧🏼","👧🏻","👦🏿","👦🏾","👦🏽","👦🏼","👦🏻","👐🏿","👐🏾","👐🏽","👐🏼","👐🏻","👏🏿","👏🏾","👏🏽","👏🏼","👏🏻","👎🏿","👎🏾","👎🏽","👎🏼","👎🏻","👍🏿","👍🏾","👍🏽","👍🏼","👍🏻","👌🏿","👌🏾","👌🏽","👌🏼","👌🏻","👋🏿","👋🏾","👋🏽","👋🏼","👋🏻","👊🏿","👊🏾","👊🏽","👊🏼","👊🏻","👉🏿","👉🏾","👉🏽","👉🏼","👉🏻","👈🏿","👈🏾","👈🏽","👈🏼","👈🏻","👇🏿","👇🏾","👇🏽","👇🏼","👇🏻","👆🏿","👆🏾","👆🏽","👆🏼","👆🏻","👃🏿","👃🏾","👃🏽","👃🏼","👃🏻","👂🏿","👂🏾","👂🏽","👂🏼","👂🏻","🏋🏿","🏋🏾","🏋🏽","🏋🏼","🏋🏻","🏊🏿","🏊🏾","🏊🏽","🏊🏼","🏊🏻","🏇🏿","🏇🏾","🏇🏽","🏇🏼","🏇🏻","🏄🏿","🏄🏾","🏄🏽","🏄🏼","🏄🏻","🏃🏿","🏃🏾","🏃🏽","🏃🏼","🏃🏻","🎅🏿","🎅🏾","🎅🏽","🎅🏼","🎅🏻","🇿🇼","🇿🇲","🇿🇦","🇾🇹","🇾🇪","🇽🇰","🇼🇸","🇼🇫","🇻🇺","🇻🇳","🇻🇮","🇻🇬","🇻🇪","🇻🇨","🇻🇦","🇺🇿","🇺🇾","🇺🇸","🇺🇲","🇺🇬","🇺🇦","🇹🇿","🇹🇼","🇹🇻","🇹🇹","🇹🇷","🇹🇴","🇹🇳","🇹🇲","🇹🇱","🇹🇰","🇹🇯","🇹🇭","🇹🇬","🇹🇫","🇹🇩","🇹🇨","🇹🇦","🇸🇿","🇸🇾","🇸🇽","🇸🇻","🇸🇹","🇸🇸","🇸🇷","🇸🇴","🇸🇳","🇸🇲","🇸🇱","🇸🇰","🇸🇯","🇸🇮","🇸🇭","🇸🇬","🇸🇪","🇸🇩","🇸🇨","🇸🇧","🇸🇦","🇷🇼","🇷🇺","🇷🇸","🇷🇴","🇷🇪","🇶🇦","🇵🇾","🇵🇼","🇵🇹","🇵🇸","🇵🇷","🇵🇳","🇵🇲","🇵🇱","🇵🇰","🇵🇭","🇵🇬","🇵🇫","🇵🇪","🇵🇦","🇴🇲","🇳🇿","🇳🇺","🇳🇷","🇳🇵","🇳🇴","🇳🇱","🇳🇮","🇳🇬","🇳🇫","🇳🇪","🇳🇨","🇳🇦","🇲🇿","🇲🇾","🇲🇽","🇲🇼","🇲🇻","🇲🇺","🇲🇹","🇲🇸","🇲🇷","🇲🇶","🇲🇵","🇲🇴","🇲🇳","🇲🇲","🇲🇱","🇲🇰","🇲🇭","🇲🇬","🇲🇫","🇲🇪","🇲🇩","🇲🇨","🇲🇦","🇱🇾","🇱🇻","🇱🇺","🇱🇹","🇱🇸","🇱🇷","🇱🇰","🇱🇮","🇱🇨","🇱🇧","🇱🇦","🇰🇿","🇰🇾","🇰🇼","🇰🇷","🇰🇵","🇰🇳","🇰🇲","🇰🇮","🇰🇭","🇰🇬","🇰🇪","🇯🇵","🇯🇴","🇯🇲","🇯🇪","🇮🇹","🇮🇸","🇮🇷","🇮🇶","🇮🇴","🇮🇳","🇮🇲","🇮🇱","🇮🇪","🇮🇩","🇮🇨","🇭🇺","🇭🇹","🇭🇷","🇭🇳","🇭🇲","🇭🇰","🇬🇾","🇬🇼","🇬🇺","🇬🇹","🇬🇸","🇬🇷","🇬🇶","🇬🇵","🇬🇳","🇬🇲","🇬🇱","🇬🇮","🇬🇭","🇬🇬","🇬🇫","🇬🇪","🇬🇩","🇬🇧","🇬🇦","🇫🇷","🇫🇴","🇫🇲","🇫🇰","🇫🇯","🇫🇮","🇪🇺","🇪🇹","🇪🇸","🇪🇷","🇪🇭","🇪🇬","🇪🇪","🇪🇨","🇪🇦","🇩🇿","🇩🇴","🇩🇲","🇩🇰","🇩🇯","🇩🇬","🇩🇪","🇨🇿","🇨🇾","🇨🇽","🇨🇼","🇨🇻","🇨🇺","🇨🇷","🇨🇵","🇨🇴","🇨🇳","🇨🇲","🇨🇱","🇨🇰","🇨🇮","🇨🇭","🇨🇬","🇨🇫","🇨🇩","🇨🇨","🇨🇦","🇧🇿","🇧🇾","🇧🇼","🇧🇻","🇧🇹","🇧🇸","🇧🇷","🇧🇶","🇧🇴","🇧🇳","🇧🇲","🇧🇱","🇧🇯","🇧🇮","🇧🇭","🇧🇬","🇧🇫","🇧🇪","🇧🇩","🇧🇧","🇧🇦","🇦🇿","🇦🇽","🇦🇼","🇦🇺","🇦🇹","🇦🇸","🇦🇷","🇦🇶","🇦🇴","🇦🇲","🇦🇱","🇦🇮","🇦🇬","🇦🇫","🇦🇪","🇦🇩","🇦🇨","🀄️","🀄","🅿️","🅿","🈂️","🈂","🈚️","🈚","🈯️","🈯","🈷️","🈷","🎞️","🎞","🎟️","🎟","🏋️","🏋","🏌️","🏌","🏍️","🏍","🏎️","🏎","🎖️","🎖","🎗️","🎗","🌶️","🌶","🌧️","🌧","🌨️","🌨","🌩️","🌩","🌪️","🌪","🌫️","🌫","🌬️","🌬","🐿️","🐿","🕷️","🕷","🕸️","🕸","🌡️","🌡","🎙️","🎙","🎚️","🎚","🎛️","🎛","🏳️","🏳","🏵️","🏵","🏷️","🏷","📽️","📽","🕉️","🕉","🕊️","🕊","🕯️","🕯","🕰️","🕰","🕳️","🕳","🕶️","🕶","🕹️","🕹","🖇️","🖇","🖊️","🖊","🖋️","🖋","🖌️","🖌","🖍️","🖍","🖥️","🖥","🖨️","🖨","🖲️","🖲","🖼️","🖼","🗂️","🗂","🗃️","🗃","🗄️","🗄","🗑️","🗑","🗒️","🗒","🗓️","🗓","🗜️","🗜","🗝️","🗝","🗞️","🗞","🗡️","🗡","🗣️","🗣","🗨️","🗨","🗯️","🗯","🗳️","🗳","🗺️","🗺","🛠️","🛠","🛡️","🛡","🛢️","🛢","🛰️","🛰","🍽️","🍽","👁️","👁","🕴️","🕴","🕵️","🕵","🖐️","🖐","🏔️","🏔","🏕️","🏕","🏖️","🏖","🏗️","🏗","🏘️","🏘","🏙️","🏙","🏚️","🏚","🏛️","🏛","🏜️","🏜","🏝️","🏝","🏞️","🏞","🏟️","🏟","🛋️","🛋","🛍️","🛍","🛎️","🛎","🛏️","🛏","🛣️","🛣","🛤️","🛤","🛥️","🛥","🛩️","🛩","🛳️","🛳","🌤️","🌤","🌥️","🌥","🌦️","🌦","🖱️","🖱","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","©️","©","®️","®","‼️","‼","⁉️","⁉","™️","™","ℹ️","ℹ","↔️","↔","↕️","↕","↖️","↖","↗️","↗","↘️","↘","↙️","↙","↩️","↩","↪️","↪","⌚️","⌚","⌛️","⌛","Ⓜ️","Ⓜ","▪️","▪","▫️","▫","▶️","▶","◀️","◀","◻️","◻","◼️","◼","◽️","◽","◾️","◾","☀️","☀","☁️","☁","☎️","☎","☑️","☑","☔️","☔","☕️","☕","☝️","☝","☺️","☺","♈️","♈","♉️","♉","♊️","♊","♋️","♋","♌️","♌","♍️","♍","♎️","♎","♏️","♏","♐️","♐","♑️","♑","♒️","♒","♓️","♓","♠️","♠","♣️","♣","♥️","♥","♦️","♦","♨️","♨","♻️","♻","♿️","♿","⚓️","⚓","⚠️","⚠","⚡️","⚡","⚪️","⚪","⚫️","⚫","⚽️","⚽","⚾️","⚾","⛄️","⛄","⛅️","⛅","⛔️","⛔","⛪️","⛪","⛲️","⛲","⛳️","⛳","⛵️","⛵","⛺️","⛺","⛽️","⛽","✂️","✂","✈️","✈","✉️","✉","✌️","✌","✏️","✏","✒️","✒","✔️","✔","✖️","✖","✳️","✳","✴️","✴","❄️","❄","❇️","❇","❗️","❗","❤️","❤","➡️","➡","⤴️","⤴","⤵️","⤵","⬅️","⬅","⬆️","⬆","⬇️","⬇","⬛️","⬛","⬜️","⬜","⭐️","⭐","⭕️","⭕","〰️","〰","〽️","〽","㊗️","㊗","㊙️","㊙","✝️","✝","⌨️","⌨","✍️","✍","⏏️","⏏","⏭️","⏭","⏮️","⏮","⏯️","⏯","⏱️","⏱","⏲️","⏲","⏸️","⏸","⏹️","⏹","⏺️","⏺","☂️","☂","☃️","☃","☄️","☄","☘️","☘","☠️","☠","☢️","☢","☣️","☣","☦️","☦","☪️","☪","☮️","☮","☯️","☯","☸️","☸","☹️","☹","⚒️","⚒","⚔️","⚔","⚖️","⚖","⚗️","⚗","⚙️","⚙","⚛️","⚛","⚜️","⚜","⚰️","⚰","⚱️","⚱","⛈️","⛈","⛏️","⛏","⛑️","⛑","⛓️","⛓","⛩️","⛩","⛰️","⛰","⛱️","⛱","⛴️","⛴","⛷️","⛷","⛸️","⛸","⛹️","⛹","✡️","✡","❣️","❣","🥉","🥈","🥇","🤺","🥅","🤾","🇿","🤽","🥋","🥊","🤼","🤹","🤸","🛶","🛵","🛴","🛒","🃏","🅰","🅱","🅾","🛑","🆎","🆑","🇾","🆒","🆓","🆔","🆕","🆖","🆗","🆘","🥄","🆙","🆚","🥂","🥃","🈁","🥙","🈲","🈳","🈴","🈵","🈶","🥘","🈸","🈹","🥗","🈺","🉐","🉑","🌀","🥖","🌁","🌂","🌃","🌄","🌅","🌆","🥕","🌇","🌈","🥔","🌉","🌊","🌋","🌌","🌏","🌑","🥓","🌓","🌔","🌕","🌙","🌛","🌟","🥒","🌠","🌰","🥑","🌱","🌴","🌵","🌷","🌸","🌹","🌺","🌻","🌼","🌽","🥐","🌾","🌿","🍀","🍁","🍂","🍃","🍄","🍅","🍆","🍇","🍈","🍉","🍊","🥀","🍌","🍍","🍎","🍏","🍑","🍒","🍓","🦏","🍔","🍕","🍖","🦎","🍗","🍘","🍙","🦍","🍚","🍛","🦌","🍜","🍝","🍞","🍟","🦋","🍠","🍡","🦊","🍢","🍣","🦉","🍤","🍥","🦈","🍦","🦇","🍧","🇽","🍨","🦆","🍩","🦅","🍪","🖤","🍫","🍬","🍭","🍮","🍯","🤞","🍰","🍱","🍲","🤝","🍳","🍴","🍵","🍶","🍷","🍸","🍹","🍺","🍻","🎀","🎁","🎂","🎃","🤛","🤜","🎄","🎅","🎆","🤚","🎇","🎈","🎉","🎊","🎋","🎌","🤙","🎍","🕺","🎎","🤳","🎏","🤰","🎐","🤦","🤷","🎑","🎒","🎓","🎠","🎡","🎢","🎣","🎤","🎥","🎦","🎧","🤶","🎨","🤵","🎩","🎪","🤴","🎫","🎬","🎭","🤧","🎮","🎯","🎰","🎱","🎲","🎳","🎴","🤥","🎵","🎶","🎷","🤤","🎸","🎹","🎺","🤣","🎻","🎼","🎽","🤢","🎾","🎿","🏀","🏁","🤡","🏂","🏃","🏄","🏆","🏈","🏊","🏠","🏡","🏢","🏣","🏥","🏦","🏧","🏨","🏩","🏪","🏫","🏬","🤠","🏭","🏮","🏯","🏰","🐌","🐍","🐎","🐑","🐒","🐔","🐗","🐘","🐙","🐚","🐛","🐜","🐝","🐞","🐟","🐠","🐡","🐢","🐣","🐤","🐥","🐦","🐧","🐨","🐩","🐫","🐬","🐭","🐮","🐯","🐰","🐱","🐲","🐳","🐴","🐵","🐶","🐷","🐸","🐹","🐺","🐻","🐼","🐽","🐾","👀","👂","👃","👄","👅","👆","👇","👈","👉","👊","👋","👌","👍","👎","👏","👐","👑","👒","👓","👔","👕","👖","👗","👘","👙","👚","👛","👜","👝","👞","👟","👠","👡","👢","👣","👤","👦","👧","👨","👩","👪","👫","👮","👯","👰","👱","👲","👳","👴","👵","👶","👷","👸","👹","👺","👻","👼","👽","👾","👿","💀","📇","💁","💂","💃","💄","💅","📒","💆","📓","💇","📔","💈","📕","💉","📖","💊","📗","💋","📘","💌","📙","💍","📚","💎","📛","💏","📜","💐","📝","💑","📞","💒","📟","📠","💓","📡","📢","💔","📣","📤","💕","📥","📦","💖","📧","📨","💗","📩","📪","💘","📫","📮","💙","📰","📱","💚","📲","📳","💛","📴","📶","💜","📷","📹","💝","📺","📻","💞","📼","🔃","💟","🔊","🔋","💠","🔌","🔍","💡","🔎","🔏","💢","🔐","🔑","💣","🔒","🔓","💤","🔔","🔖","💥","🔗","🔘","💦","🔙","🔚","💧","🔛","🔜","💨","🔝","🔞","💩","🔟","💪","🔠","🔡","💫","🔢","🔣","💬","🔤","🔥","💮","🔦","🔧","💯","🔨","🔩","💰","🔪","🔫","💱","🔮","💲","🔯","💳","🔰","🔱","💴","🔲","🔳","💵","🔴","🔵","💸","🔶","🔷","💹","🔸","🔹","💺","🔺","🔻","💻","🔼","💼","🔽","🕐","💽","🕑","💾","🕒","💿","🕓","📀","🕔","🕕","📁","🕖","🕗","📂","🕘","🕙","📃","🕚","🕛","📄","🗻","🗼","📅","🗽","🗾","📆","🗿","😁","😂","😃","📈","😄","😅","📉","😆","😉","📊","😊","😋","📋","😌","😍","📌","😏","😒","📍","😓","😔","📎","😖","😘","📏","😚","😜","📐","😝","😞","📑","😠","😡","😢","😣","😤","😥","😨","😩","😪","😫","😭","😰","😱","😲","😳","😵","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏","🚀","🚃","🚄","🚅","🚇","🚉","🚌","🚏","🚑","🚒","🚓","🚕","🚗","🚙","🚚","🚢","🚤","🚥","🚧","🚨","🚩","🚪","🚫","🚬","🚭","🚲","🚶","🚹","🚺","🚻","🚼","🚽","🚾","🛀","🤘","😀","😇","😈","😎","😐","😑","😕","😗","😙","😛","😟","😦","😧","😬","😮","😯","😴","😶","🚁","🚂","🚆","🚈","🚊","🚍","🚎","🚐","🚔","🚖","🚘","🚛","🚜","🚝","🚞","🚟","🚠","🚡","🚣","🚦","🚮","🚯","🚰","🚱","🚳","🚴","🚵","🚷","🚸","🚿","🛁","🛂","🛃","🛄","🛅","🌍","🌎","🌐","🌒","🌖","🌗","🌘","🌚","🌜","🌝","🌞","🌲","🌳","🍋","🍐","🍼","🏇","🏉","🏤","🐀","🐁","🐂","🐃","🐄","🐅","🐆","🐇","🐈","🐉","🐊","🐋","🐏","🐐","🐓","🐕","🐖","🐪","👥","👬","👭","💭","💶","💷","📬","📭","📯","📵","🔀","🔁","🔂","🔄","🔅","🔆","🔇","🔉","🔕","🔬","🔭","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","🔈","🚋","🏅","🏴","📸","🛌","🖕","🖖","🙁","🙂","🛫","🛬","🏻","🏼","🏽","🏾","🏿","🙃","🤑","🤓","🤗","🙄","🤔","🤐","🤒","🤕","🤖","🦁","🦄","🦂","🦀","🦃","🧀","🌭","🌮","🌯","🍿","🍾","🏹","🏺","🛐","🕋","🕌","🕍","🕎","📿","🏏","🏐","🏑","🏒","🏓","🏸","🥁","🦐","🦑","🥚","🥛","🥜","🥝","🥞","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","⏩","⏪","⏫","⏬","⏰","⏳","⛎","✅","✊","✋","✨","❌","❎","❓","❔","❕","➕","➖","➗","➰","➿","imagePathPNG","imagePathSVG","imagePathSVGSprites","imageType","imageTitleTag","sprites","unicodeAlt","ascii","cacheBustParam","regShortNames","regAscii","regUnicode","toImage","unicodeToImage","shortnameToImage","unifyUnicode","toShort","shortnameToUnicode","shortnameToAscii","unicodeToAscii","objectFlip","shortname","convert","entire","m3","unescapeHTML","escapeHTML","mappedUnicode","mapUnicodeToShort","unicodeChar","getUnicodeReplacementRegEx","replacementList","mapUnicodeCharactersToShort","replaceAll","escaped","unescaped","&#x26;","&#x3C;","&#x3E;","&#x22;","&#x27;","mapEmojioneList","addToMapStorage","memMapShortToUnicode","memoizeReplacement","unicodeReplacementRegEx","memMapShortToUnicodeCharacters","unicodeList","emojiCharacter","tmp_obj","escapeRegExp","escapedFind","emojione","I18next","bg","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","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","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","NUMBER","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","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","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","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","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","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","Send_file","setting-explanation-carbon","setting-explanation-login","setting-explanation-priority","setting-explanation-xmpp","_is_composing","_are_composing","Chat_state_notifications","setting-explanation-chat-state","Share_screen","Incoming_stream","Stream_started","HTTPS_REQUIRED","EXTENSION_UNAVAILABLE","UNKNOWN_ERROR","Install_extension","Connection_accepted","Stream_terminated","Close_all","bn-BD","de","en","Unreadable_OTR_message","fi","fr","hu-HU","nds","pl","pt-BR","ro","ru","sv-SE","tr-TR","vi-VN","zh-TW","zh"],"mappings":"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OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe;AAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOnoC,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAO9Z,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQkW,IAAS,OAAOhW,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQwU,IAAS,OAAOtU,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQwR,IAAS,OAAOtR,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQ8O,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOlU,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,SACl8jE5tQ,GAAGg4S,aAAe,gDAClBh4S,GAAGi4S,aAAe,gDAClBj4S,GAAGk4S,oBAAsB,2CACzBl4S,GAAGm4S,UAAY,MACfn4S,GAAGo4S,eAAgB,EACnBp4S,GAAGq4S,SAAU,EACbr4S,GAAGs4S,YAAa,EAChBt4S,GAAGu4S,OAAQ,EACXv4S,GAAGw4S,eAAiB,WAEpBx4S,GAAGy4S,cAAgB,GAAI7zN,QAAO,iGAAmG5kF,GAAGitO,WAAW,IAAK,MACpJjtO,GAAG04S,SAAW,GAAI9zN,QAAO,wGAA0G5kF,GAAGi1O,YAAY,oBAAqB,KACvKj1O,GAAG24S,WAAa,GAAI/zN,QAAO,iGAAmG5kF,GAAGk1O,cAAc,IAAK,MAEpJl1O,GAAG44S,QAAU,SAASxoT,KAGlB,MAFAA,KAAM4P,GAAG64S,eAAezoT,KACxBA,IAAM4P,GAAG84S,iBAAiB1oT,MAO9B4P,GAAG+4S,aAAe,SAAS3oT,KAGvB,MAFAA,KAAM4P,GAAGg5S,QAAQ5oT,KACjBA,IAAM4P,GAAGi5S,mBAAmB7oT,MAMhC4P,GAAGk5S,iBAAmB,SAAS9oT,KAC3B,GAAImoK,SAIA4gJ,eAAiBn5S,GAAGo5S,WAAWp5S,GAAGktO,UAgBtC,OAdA98O,KAAMA,IAAIxC,QAAQoS,GAAGy4S,cAAe,SAASY,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAar5S,IAAGq4J,cAK/EE,QAAUv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQ7qK,OAAO,GACjD,mBAA5ByrT,gBAAe5gJ,SACd4gJ,eAAe5gJ,SAEf8gJ,WAPJA,aAgBnBr5S,GAAGi5S,mBAAqB,SAAS7oT,KAE7B,GAAImoK,SAAQC,MAAMC,EA4BlB,OA3BAroK,KAAMA,IAAIxC,QAAQoS,GAAGy4S,cAAe,SAASY,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAar5S,IAAGq4J,cAInFE,QAAUv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQ,GAAG9wH,cAChD+wH,MAAQx4J,GAAGq4J,aAAaghJ,WAAW7gJ,MACnCC,GAAKz4J,GAAGq4J,aAAaghJ,WAAW5gJ,GAEzBz4J,GAAGs5S,QAAQ7gJ,KANP4gJ,YAUXr5S,GAAGu4S,QAEHnoT,IAAMA,IAAIxC,QAAQoS,GAAG04S,SAAU,SAASa,OAAQnkK,GAAIC,GAAImkK,IACpD,MAAmB,mBAAPA,KAA+B,KAAPA,IAAiBx5S,GAAGy5S,aAAaD,KAAOx5S,IAAGktO,WAK/EssE,GAAKx5S,GAAGy5S,aAAaD,IACrBjhJ,QAAUv4J,GAAGktO,UAAUssE,IAAI/xQ,cACpB4tG,GAAGr1I,GAAGs5S,QAAQ/gJ,UALVghJ,UASZnpT,KAGX4P,GAAG84S,iBAAmB,SAAS1oT,KAE3B,GAAI+9J,aAAYoK,QAAQtI,IAAI7uI,KAyE5B,OAxEAhxB,KAAMA,IAAIxC,QAAQoS,GAAGy4S,cAAe,SAASY,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAar5S,IAAGq4J,cAK/EE,QAAUv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQ7qK,OAAO,GACvF0zB,MAAQphB,GAAGo4S,cAAgB,UAAUiB,UAAU,IAAM,GAGrDppJ,IAAOjwJ,GAAa,WAAIA,GAAGs5S,QAAQ/gJ,QAAQ9wH,eAAiB4xQ,UAIpDlrJ,YAFY,QAAjBnuJ,GAAGm4S,UACCn4S,GAAGq4S,QACY,kCAAkC9/I,QAAQ,KAAOn3I,MAAQ,IAAI6uI,IAAI,UAGjE,8BAA8BA,IAAI,KAAO7uI,MAAQ,SAASphB,GAAGg4S,aAAaz/I,QAAQ,OAAOv4J,GAAGw4S,eAAe,MAK1Hx4S,GAAGq4S,QACY,sCAAsCpoJ,IAAI,kCAAkCjwJ,GAAGk4S,oBAAoB,UAAU3/I,QAAQ,iBAGrH,kCAAkCv4J,GAAGi4S,aAAa1/I,QAAQ,OAAOv4J,GAAGw4S,eAAe,mCAAmCvoJ,IAAI,KAAKA,IAAI,aAvBlJopJ,YAgCXr5S,GAAGu4S,QAEHnoT,IAAMA,IAAIxC,QAAQoS,GAAG04S,SAAU,SAASa,OAAQnkK,GAAIC,GAAImkK,IACpD,MAAmB,mBAAPA,KAA+B,KAAPA,IAAiBx5S,GAAGy5S,aAAaD,KAAOx5S,IAAGktO,WAK/EssE,GAAKx5S,GAAGy5S,aAAaD,IACrBjhJ,QAAUv4J,GAAGktO,UAAUssE,IACvBp4R,MAAQphB,GAAGo4S,cAAgB,UAAUp4S,GAAG05S,WAAWF,IAAI,IAAM,GAG7DvpJ,IAAOjwJ,GAAa,WAAIA,GAAGs5S,QAAQ/gJ,QAAQ9wH,eAAiBznC,GAAG05S,WAAWF,IAIlErrJ,YAFY,QAAjBnuJ,GAAGm4S,UACCn4S,GAAGq4S,QACYhjK,GAAG,kCAAkCkjB,QAAQ,MAAQn3I,MAAQ,IAAI6uI,IAAI,UAGrE5a,GAAG,8BAA8B4a,IAAI,KAAO7uI,MAAQ,SAASphB,GAAGg4S,aAAaz/I,QAAQ,OAAOv4J,GAAGw4S,eAAe,MAK7Hx4S,GAAGq4S,QACY,sCAAsCpoJ,IAAI,kCAAkCjwJ,GAAGk4S,oBAAoB,UAAU3/I,QAAQ,iBAGrHljB,GAAG,kCAAkCr1I,GAAGi4S,aAAa1/I,QAAQ,OAAOv4J,GAAGw4S,eAAe,mCAAmCvoJ,IAAI,KAAKA,IAAI,aAxBjJspJ,UAgCZnpT,KAGX4P,GAAG64S,eAAiB,SAASzoT,KAEzB,GAAI+9J,aAAYoK,QAAQxpB,MAAMypB,MAAMvI,IAAI7uI,MACpCu4R,cAAgB35S,GAAG45S,mBAwCvB,OAvCAxpT,KAAMA,IAAIxC,QAAQoS,GAAG24S,WAAY,SAASkB,aACtC,MAA4B,mBAAhBA,cAAiD,KAAhBA,aAA0BA,cAAe75S,IAAGm1O,aAMrF58E,QAAUv4J,GAAGm1O,YAAY0kE,aAGzB9qK,MAAQ4qK,cAAcphJ,SACtBC,MAAQx4J,GAAGq4J,aAAatpB,OAAOypB,MAG/BvI,IAAOjwJ,GAAa,WAAIA,GAAGs5S,QAAQ/gJ,QAAQ9wH,eAAiBsnG,MAC5D3tH,MAAQphB,GAAGo4S,cAAgB,UAAUrpK,MAAM,IAAM,GAIzCof,YAFY,QAAjBnuJ,GAAGm4S,UACCn4S,GAAGq4S,QACY,kCAAkC9/I,QAAQ,KAAOn3I,MAAQ,IAAI6uI,IAAI,UAGjE,8BAA8BA,IAAI,KAAO7uI,MAAQ,SAASphB,GAAGg4S,aAAax/I,MAAM,OAAOx4J,GAAGw4S,eAAe,MAKxHx4S,GAAGq4S,QACY,sCAAsCpoJ,IAAI,kCAAkCjwJ,GAAGk4S,oBAAoB,UAAU3/I,QAAQ,iBAGrH,8BAA8BtI,IAAI,KAAO7uI,MAAQ,SAASphB,GAAGi4S,aAAaz/I,MAAM,OAAOx4J,GAAGw4S,eAAe,OA5BxHqB,eAwCnB75S,GAAGg5S,QAAU,SAAS5oT,KAClB,GAAI0wB,MAAO9gB,GAAG85S,6BACVC,gBAAkB/5S,GAAGg6S,6BACzB,OAAQh6S,IAAGi6S,WAAW7pT,IAAK0wB,KAAKi5R,kBAIpC/5S,GAAGs5S,QAAU,SAAS/gJ,SAClB,GAAGA,QAAQ1qK,QAAQ,MAAO,EAAI,CAG1B,IAAI,GAFAwP,UACAvM,EAAIynK,QAAQ77J,MAAM,KACdpP,EAAI,EAAGA,EAAIwD,EAAEpD,OAAQJ,IAAK,CAC9B,GAAI6lH,MAAOxiG,SAAS7f,EAAExD,GAAI,GAC1B,IAAI6lH,MAAQ,OAAWA,MAAQ,QAAU,CACrC,GAAI3mF,IAAKr4B,KAAKE,OAAO8+G,KAAO,OAAW,MAAS,MAC5C1mF,IAAO0mF,KAAO,OAAW,KAAS,KACtCA,MAAQrlH,OAAOC,aAAay+B,IAAM1+B,OAAOC,aAAa0+B,QAGtD0mF,MAAOrlH,OAAOC,aAAaolH,KAE/B91G,OAAMV,KAAKw2G,MAEf,MAAO91G,OAAMT,KAAK,IAGlB,GAAI9L,GAAI6f,SAAS4nJ,QAAS,GAC1B,IAAIznK,GAAK,OAAWA,GAAK,QAAU,CAC/B,GAAI07B,IAAKr4B,KAAKE,OAAOvD,EAAI,OAAW,MAAS,MACzC27B,IAAO37B,EAAI,OAAW,KAAS,KACnC,OAAQhD,QAAOC,aAAay+B,IAAM1+B,OAAOC,aAAa0+B,IAGtD,MAAO3+B,QAAOC,aAAa+C,IAKvCkP,GAAG05S,WAAa,SAAUtlS,QACtB,GAAI8lS,UACArlN,IAAM,QACNC,IAAM,OACNC,IAAM,OACNC,IAAM,SACNC,IAAM,SAGV,OAAO7gF,QAAOxmB,QAAQ,WAAY,SAAUme,OACxC,MAAOmuS,SAAQnuS,UAGvB/L,GAAGy5S,aAAe,SAAUrlS,QACxB,GAAI+lS,YACAjlN,QAAW,IACXC,QAAW,IACXilN,SAAW,IACXhlN,OAAW,IACXC,QAAW,IACXglN,SAAW,IACX/kN,OAAW,IACXC,QAAW,IACX+kN,SAAW,IACX9kN,SAAW,IACXC,QAAW,IACX8kN,SAAW,IACX7kN,SAAW,IACXC,QAAW,IACX6kN,SAAW,IAGf,OAAOpmS,QAAOxmB,QAAQ,2EAA4E,SAAUme,OACxG,MAAOouS,WAAUpuS,UAIzB/L,GAAGy6S,gBAAkB,SAAUC,iBAC3B,IAAK,GAAIrB,aAAar5S,IAAGq4J,aACrB,GAAKr4J,GAAGq4J,aAAal9J,eAAek+S,WACpC,IAAK,GAAI/rT,GAAI,EAAGa,IAAM6R,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQ7qK,OAAQJ,EAAIa,IAAKb,IAAK,CAC3E,GAAIirK,SAAUv4J,GAAGq4J,aAAaghJ,WAAW9gJ,QAAQjrK,EACjDotT,iBAAgBniJ,QAAS8gJ,aAKrCr5S,GAAG45S,kBAAoB,WAOnB,MANK55S,IAAG26S,uBACJ36S,GAAG26S,wBACH36S,GAAGy6S,gBAAgB,SAAUliJ,QAAS8gJ,WAClCr5S,GAAG26S,qBAAqBpiJ,SAAW8gJ,aAGpCr5S,GAAG26S,sBAGd36S,GAAG46S,mBAAqB,WACpB,IAAK56S,GAAG66S,0BAA4B76S,GAAG86S,+BAAgC,CACnE,GAAIC,eACJ/6S,IAAG86S,kCACH96S,GAAGy6S,gBAAgB,SAAUliJ,QAAS8gJ,WAClC,GAAI2B,gBAAiBh7S,GAAGs5S,QAAQ/gJ,QAC7Bv4J,IAAGq4J,aAAaghJ,WAAW3gJ,cAC1B14J,GAAG86S,+BAA+BE,gBAAkB3B,WAExD0B,YAAYp+S,KAAKq+S,kBAErBh7S,GAAG66S,wBAA0BE,YAAYn+S,KAAK,OAItDoD,GAAGg6S,4BAA8B,WAE7B,MADAh6S,IAAG46S,qBACI56S,GAAG86S,gCAGd96S,GAAG85S,2BAA6B,WAE5B,MADA95S,IAAG46S,qBACI56S,GAAG66S,yBAId76S,GAAGo5S,WAAa,SAAUzsT,KACtB,GAAI4C,KAAK0rT,UAET,KAAK1rT,MAAO5C,KACJA,IAAIwO,eAAe5L,OACnB0rT,QAAQtuT,IAAI4C,MAAQA,IAI5B,OAAO0rT,UAGXj7S,GAAGk7S,aAAe,SAAS9mS,QACvB,MAAOA,QAAOxmB,QAAQ,6BAA8B,SAGxDoS,GAAGi6S,WAAa,SAAS7lS,OAAQ0M,KAAMi5R,iBACnC,GAAIoB,aAAcn7S,GAAGk7S,aAAap6R,MAC9BnM,OAAS,GAAIiwE,QAAO,iGAAmGu2N,YAAY,IAAK,MAGxIvtT,QAAU,SAAS2rT,OAAQnkK,IAC3B,MAAuB,mBAAPA,KAA+B,KAAPA,GAAcmkK,OAASQ,gBAAgB3kK,IAGnF,OAAOhhI,QAAOxmB,QAAQ+mB,OAAO/mB,WAGnCnB,KAAK2uT,SAAW3uT,KAAK2uT,cACF,gBAAXt3R,UAAqBA,OAAOF,QAAUn3B,KAAK2uT,SACrD,IAAIC,UAAWC,IAAMC,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOC,SAAS1P,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOE,IAAM3P,aAAeC,WAAa,eAAeC,+BAAiC,wCAAwCC,6BAA+B,sCAAsCC,yCAA2C,oDAAoDC,cAAgB,iBAAiBC,cAAgB,mBAAmBC,0BAA4B,gCAAgCC,wCAA0C,mCAAmCC,0BAA4B,sCAAsCC,6DAA+D,+EAA+EC,6BAA+B,uCAAuCC,cAAgB,mBAAmBC,cAAgB,oBAAoBC,QAAU,gBAAgBC,qCAAuC,4CAA4CC,SAAW,cAAcC,WAAa,gBAAgBC,6BAA+B,oCAAoCC,kEAAoE,+EAA+EC,6BAA+B,qCAAqCC,sBAAwB,oCAAoCC,2BAA6B,kGAAkGC,8BAAgC,0HAA0HC,2CAA6C,oEAAoEC,cAAgB,WAAWC,OAAS,SAASC,SAAW,QAAQC,OAAS,YAAYC,2BAA6B,mIAAmIC,iBAAmB,mBAAmBC,kBAAoB,uBAAuBC,MAAQ,YAAYC,SAAW,aAAaC,kCAAoC,qHAAqHC,IAAM,QAAQC,+BAAiC,6GAA6GC,QAAU,aAAaC,aAAe,eAAeC,eAAiB,oBAAoB/uP,QAAU,YAAYgvP,UAAY,qBAAqBC,aAAe,qBAAqBC,aAAe,kBAAkBC,MAAQ,YAAYC,SAAW,eAAeC,SAAW,WAAWC,OAAS,YAAYC,QAAU,YAAYC,2BAA6B,gEAAgEC,MAAQ,QAAQC,IAAM,aAAaC,qBAAuB,iBAAiBC,wBAA0B,2BAA2BC,KAAO,WAAWC,QAAU,aAAaC,aAAe,oBAAoBC,yBAA2B,8HAA8HC,sBAAwB,mBAAmBC,YAAc,eAAeC,aAAe,gCAAgCC,4BAA8B,iEAAiEC,MAAQ,SAASC,cAAgB,iBAAiBC,iBAAmB,8BAA8BC,sBAAwB,qHAAqHC,eAAiB,8CAAgDC,aAAe,qBAAqBC,aAAe,qBAAqBC,MAAQ,OAAOC,IAAM,cAAcpnO,KAAO,UAAUE,OAAS,SAASjG,aAAe,QAAQk+B,KAAO,aAAa54G,OAAS,SAAS8nT,OAAS,SAASC,KAAO,OAAOC,KAAO,WAAWC,GAAK,kBAAkBC,QAAU,UAAUrvM,KAAO,QAAQsvM,qBAAuB,4BAA4BC,2BAA6B,yCAAyCC,yCAA2C,oDAAoDC,OAAS,SAASC,OAAS,aAAaC,KAAO,WAAWC,cAAgB,kBAAkBC,QAAU,UAAUC,mBAAqB,iBAAiBC,QAAU,aAAaC,QAAU,WAAWC,OAAS,UAAUC,YAAc,eAAeC,GAAK,OAAOt2K,EAAI,IAAIu2K,OAAS,eAAeC,MAAQ,UAAUC,SAAW,YAAY58Q,IAAM,MAAM68Q,IAAM,UAAUC,OAAS,SAASC,OAAS,sBAAsBC,SAAW,YAAYC,OAAS,SAASC,MAAQ,eAAeC,KAAO,OAAOC,IAAM,UAAUC,OAAS,SAASC,MAAQ,SAASC,OAAS,IAAIC,IAAM,eAAeC,QAAU,OAAOC,QAAU,YAAYC,MAAQ,QAAQC,KAAO,QAAQC,KAAO,aAAaC,KAAO,eAAeC,MAAQ,IAAIC,aAAe,kBAAkBC,SAAW,wBAAwBC,SAAW,gBAAgBC,SAAW,YAAYC,KAAO,YAAYC,cAAgB,wBAAwBC,eAAiB,iFAAiFhyN,GAAK,MAAMiyN,cAAgB,kBAAkBC,SAAW,WAAWC,OAAS,SAASC,SAAW,YAAYC,SAAW,gBAAgBC,gCAAkC,uCAAuCC,gDAAkD,yDAAyDC,WAAa,YAAYC,uBAAyB,iCAAiCC,gCAAkC,uCAAuCC,oBAAsB,qBAAqBC,gBAAkB,sBAAsBC,eAAiB,qBAAqBC,6CAA+C,kGAAoGC,cAAgB,oBAAoB1vT,KAAO,MAAM2vT,oCAAsC,qCAAqCC,OAAS,WAAWC,OAAS,WAAWC,QAAU,WAAWC,SAAW,gBAAgBC,cAAgB,eAAeC,eAAiB,uBAAuBC,WAAa,WAAWr4O,KAAO,OAAOs4O,SAAW,YAAYC,UAAY,YAAYC,kBAAoB,sBAAsBC,mBAAqB,qBAAqBC,wBAA0B,sFAAsFC,iBAAmB,oBAAoBC,UAAY,mBAAmBC,KAAO,WAAWC,KAAO,SAASC,SAAW,WAAWC,kBAAoB,wCAAwCC,iBAAmB,0CAA0CC,gBAAkB,wDAAwDC,aAAe,mBAAmBC,YAAcC,QAAU,YAAYl2Q,YAAc,8CAA8Cm2Q,iBAAmBD,QAAU,qBAAqBl2Q,YAAc,2CAA2Co2Q;AAAiBF,QAAU,YAAYl2Q,YAAc,sEAAwEq2Q,kBAAoBH,QAAU,eAAel2Q,YAAc,0DAA0Ds2Q,UAAYJ,QAAU,QAAQl2Q,YAAc,sCAAsCu2Q,uBAAyBL,QAAU,oBAAoBl2Q,YAAc,sCAAsCw2Q,gBAAkBN,QAAU,YAAYl2Q,YAAc,wEAAwEy2Q,YAAcP,QAAU,aAAal2Q,YAAc,wCAAwC02Q,mBAAqBR,QAAU,mBAAmBl2Q,YAAc,0EAA0E22Q,eAAiBT,QAAU,WAAWl2Q,YAAc,kEAAkE42Q,iBAAmBV,QAAU,kBAAkBl2Q,YAAc,iCAAiC62Q,eAAiBX,QAAU,cAAcl2Q,YAAc,kCAAkC82Q,SAAW,SAASC,OAAS,SAASC,iBAAmB,yBAAyBC,gBAAkB,gFAAgFC,gBAAkB,sGAAsGC,6BAA+B,4CAA4CC,yBAA2B,gCAAgCC,gBAAkB,oCAAoCC,yBAA2B,2CAA2C32O,QAAU,WAAW42O,MAAQ,YAAYC,mBAAqB,sDAAsDC,mBAAqB,qCAAqCC,wBAA0B,6CAA6CC,mBAAqB,2CAA2CC,wBAA0B,mDAAmDC,wBAA0B,gFAAgFC,6BAA+B,wFAAwFC,wBAA0B,+HAA+HC,6BAA+B,yIAAyIC,qBAAuB,8EAA8E36O,OAAS,QAAQ46O,iBAAmB,8DAA8DC,kCAAkC,yEAAyEC,2BAA6B,0EAA4EC,kCAAkC,+EAA+EC,0BAA4B,iCAAiCC,wBAA0B,kDAAkDC,uBAAyB,gCAAgCC,+BAAiC,sCAAsCC,8BAAgC,8CAA8CC,uBAAyB,+EAA+EC,oBAAsB,qDAAqDC,qBAAuB,4BAA4BC,+BAAiC,wCAAwCC,MAAQ,QAAQC,aAAe,kBAAkBC,gBAAkB,gBAAgBC,YAAc,QAAQpyP,OAAS,aAAaqyP,mBAAqB,cAAcC,sBAAwB,YAAYC,sBAAwB,YAAYC,cAAgB,eAAeC,sBAAwB,2BAA2BC,sBAAwB,sBAAsBC,GAAK,KAAKlgR,sBAAwB,qEAAqEmgR,uBAAyB,4BAA4BC,uBAAyB,wBAAwBC,IAAM,iBAAiBC,+CAAiD,mGAAmGC,0BAA4B,sEAAsEC,2BAA6B,oKAAoKC,yBAA2B,8IAA8IC,YAAc,iBAAiBC,sCAAwC,+CAA+CC,wCAA0C,iDAAiDC,SAAW,cAAcC,YAAY,wBAAwBC,cAAgB,yBAAyBC,yBAA2B,8BAA8BC,2BAA2B,gCAAgCC,6BAA6B,+BAA+BC,qDAAuD,+CAA+CC,QAAU,WAAWC,OAAS,SAASC,UAAY,eAAeC,6BAA6B,0GAA0GC,4BAA4B,sFAAsFC,+BAA+B,kIAAkIC,2BAA2B,oEAAoEC,cAAgB,mBAAmBC,eAAiB,oBAAoBC,yBAA2B,2BAA2BC,iCAAiC,+FAA+FC,aAAe,mBAAmBC,gBAAkB,qBAAqBC,eAAiB,mBAAmBC,eAAiB,yDAAyDC,sBAAwB,0CAA0CC,cAAgB,0CAA0CC,kBAAoB,yEAAyEC,oBAAsB,wBAAwBC,kBAAoB,iBAAiBC,UAAY,kBAAkBjxT,IAAMwhT,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOG,IAAM5P,aAAeC,WAAa,cAAcC,+BAAiC,kCAAkCC,6BAA+B,gCAAgCC,yCAA2C,8CAA8CC,cAAgB,gBAAgBC,cAAgB,gBAAgBC,0BAA4B,4BAA4BC,wCAA0C,wCAAwCC,0BAA4B,6BAA6BC,6DAA+D,mEAAmEC,6BAA+B,+BAA+BC,cAAgB,gBAAgBC,cAAgB,iBAAiBC,QAAU,UAAUC,qCAAuC,wCAAwCC,SAAW,WAAWC,WAAa,aAAaC,6BAA+B,gCAAgCC,kEAAoE,wEAAwEC,6BAA+B,gCAAgCC,sBAAwB,yBAAyBC,2BAA6B,oDAAoDC,8BAAgC,+GAA+GC,2CAA6C,qEAAqEC,cAAgB,mBAAmBC,OAAS,SAASC,SAAW,WAAWC,OAAS,SAASC,2BAA6B,6GAA6GC,iBAAmB,mBAAmBC,kBAAoB,sBAAsBC,MAAQ,QAAQC,SAAW,WAAWC,kCAAoC,qGAAqGC,IAAM,MAAMC,+BAAiC,qEAAqEC,QAAU,UAAUC,aAAe,eAAeC,eAAiB,iBAAiB/uP,QAAU,UAAUgvP,UAAY,cAAcC,aAAe,iBAAiBC,aAAe,iBAAiBC,MAAQ,QAAQC,SAAW,WAAWC,SAAW,WAAWC,OAAS,SAASC,QAAU,UAAUC,2BAA6B,mDAAmDC,MAAQ,QAAQC,IAAM,MAAMC,qBAAuB,uBAAuBC,wBAA0B,0BAA0BC,KAAO,OAAOC,QAAU,UAAUC,aAAe,iBAAiBC,yBAA2B,sHAAsHC,sBAAwB,wBAAwBC,YAAc,cAAcC,aAAe,oBAAoBC,4BAA8B,2EAA2EC,MAAQ,OAAOC,cAAgB,gBAAgBC,iBAAmB,4BAA4BC,sBAAwB,yDAAyDC,eAAiB,8CAAgDC,aAAe,wBAAwBC,aAAe,wBAAwBC,MAAQ,QAAQC,IAAM,iBAAiBpnO,KAAO,OAAOE,OAAS,SAASjG,aAAe,eAAek+B,KAAO,OAAO54G,OAAS,SAAS8nT,OAAS,SAASC,KAAO,OAAOC,KAAO,OAAOC,GAAK,gBAAgBC,QAAU,UAAUrvM,KAAO,OAAOsvM,qBAAuB,wBAAwBC,2BAA6B,8BAA8BC,yCAA2C,4CAA4CC,OAAS,SAASC,OAAS,SAASC,KAAO,OAAOC,cAAgB,gBAAgBC,QAAU,UAAUC,mBAAqB,kBAAkBC,QAAU,UAAUC,QAAU,UAAUC,OAAS,SAASC,YAAc,cAAcC,GAAK,YAAYt2K,EAAI,IAAIu2K,OAAS,cAAcC,MAAQ,aAAaC,SAAW,WAAW58Q,IAAM,MAAM68Q,IAAM,UAAUC,OAAS,iBAAiBC,OAAS,mBAAmBC,SAAW,WAAWC,OAAS,SAASC,MAAQ,cAAcC,KAAO,UAAUC,IAAM,YAAYC,OAAS,SAASC,MAAQ,QAAQC,OAAS,IAAIC,IAAM,eAAeC,QAAU,OAAOC,QAAU,OAAOC,MAAQ,YAAYC,KAAO,OAAOC,KAAO,WAAWC,KAAO,cAAcC,MAAQ,IAAIC,aAAe,eAAeC,SAAW,mBAAmBC,SAAW,WAAWC,SAAW,WAAWC,KAAO,OAAOC,cAAgB,gBAAgBC,eAAiB,oGAAoGhyN,GAAK,KAAKiyN,cAAgB,gBAAgBC,SAAW,WAAWC,OAAS,SAASC,SAAW,WAAWC,SAAW,WAAWC,gCAAkC,kCAAkCC,gDAAkD,wDAAwDC,WAAa,aAAaC,uBAAyB,0BAA0BC,gCAAkC,mCAAmCC,oBAAsB,sBAAsBC,gBAAkB,kBAAkBC,eAAiB,iBAAiBC,6CAA+C,wFAA0FC,cAAgB,gBAAgB1vT,KAAO,OAAO2vT,oCAAsC,sCAAsCC,OAAS,SAASC,OAAS,SAASC,QAAU,UAAUC,SAAW,WAAWC,cAAgB,gBAAgBC,eAAiB,iBAAiBC,WAAa,aAAar4O,KAAO,OAAOs4O,SAAW,WAAWC,UAAY,YAAYC,kBAAoB,oBAAoBC,mBAAqB,qBAAqBC,wBAA0B,sEAAsEC,iBAAmB,mBAAmBC,UAAY,YAAYC,KAAO,OAAOC,KAAO,OAAOC,SAAW,WAAWC,kBAAoB,iCAAiCC,iBAAmB,gCAAgCC,gBAAkB,kDAAkDC,aAAe,eAAeC,YAAcC,QAAU,SAASl2Q,YAAc,mCAAmCm2Q,iBAAmBD,QAAU,eAAel2Q,YAAc,qCAAqCo2Q,eAAiBF,QAAU,YAAYl2Q,YAAc,0DAA4Dq2Q,kBAAoBH,QAAU,gBAAgBl2Q,YAAc,oDAAoDs2Q,UAAYJ,QAAU,OAAOl2Q,YAAc,+BAA+Bu2Q,uBAAyBL,QAAU,qBAAqBl2Q,YAAc,4CAA4Cw2Q,gBAAkBN,QAAU,aAAal2Q,YAAc,mDAAmDy2Q,YAAcP,QAAU,SAASl2Q,YAAc,+BAA+B02Q,mBAAqBR,QAAU,iBAAiBl2Q,YAAc,iDAAiD22Q,eAAiBT,QAAU,YAAYl2Q,YAAc,+CAA+C42Q,iBAAmBV,QAAU,cAAcl2Q,YAAc,wCAAwC62Q,eAAiBX,QAAU,YAAYl2Q,YAAc,iCAAiC82Q,SAAW,WAAWC,OAAS,SAASC,iBAAmB,mBAAmBC,gBAAkB,mDAAmDC,gBAAkB,6EAA6EC,6BAA+B,+BAA+BC,yBAA2B,2BAA2BC,gBAAkB,6BAA6BC,yBAA2B,2BAA2B32O,QAAU,UAAU42O,MAAQ,QAAQC,mBAAqB,yDAA2DC,mBAAqB,qCAAqCC,wBAA0B,6CAA6CC,mBAAqB,qCAAqCC,wBAA0B,6CAA6CC,wBAA0B,wEAAwEC,6BAA+B,gFAAgFC,wBAA0B,+GAA+GC,6BAA+B,uHAAuHC,qBAAuB,kFAAkF36O,OAAS,SAAS46O,iBAAmB,gDAAgDC,kCAAkC,6DAA6DC,2BAA6B,mEAAmEC,kCAAkC,qEAAqEC,0BAA4B,4BAA4BC,wBAA0B,0BAA0BC,uBAAyB,yBAAyBC,+BAAiC,iCAAiCC,8BAAgC,gCAAgCC,uBAAyB,iEAAiEC,oBAAsB,qDAAqDC,qBAAuB,sBAAsBC,+BAAiC,uCAAuCC,MAAQ,QAAQC,aAAe,eAAeC,gBAAkB,kBAAkBC,YAAc,cAAcpyP,OAAS,SAASqyP,mBAAqB,OAAOC,sBAAwB,UAAUC,sBAAwB,UAAUC,cAAgB,gBAAgBC,sBAAwB,yBAAyBC,sBAAwB,yBAAyBC,GAAK,KAAKlgR,sBAAwB,8CAA8CmgR,uBAAyB,0BAA0BC,uBAAyB,0BAA0BC,IAAM,gBAAgBC,+CAAiD,0FAA0FC,0BAA4B,kDAAkDC,2BAA6B,iJAAiJC,yBAA2B,gIAAgIC,YAAc,kBAAkBC,sCAAwC,yCAAyCC,wCAA0C,2CAA2CC,SAAW,WAAWC,YAAY,YAAYC,cAAgB,gBAAgBC,yBAA2B,2BAA2BC,2BAA2B,4BAA4BC,6BAA6B,6BAA6BC,qDAAuD,wDAAwDC,QAAU,UAAUC,OAAS,SAASC,UAAY,YAAYC,6BAA6B,kJAAkJC,4BAA4B,2DAA2DC,+BAA+B,6IAA6IC,2BAA2B,wDAAwDC,cAAgB,mBAAmBC,eAAiB,oBAAoBC,yBAA2B,2BAA2BC,iCAAiC,8GAA8GC,aAAe,eAAeC,gBAAkB,kBAAkBC,eAAiB,iBAAiBC,eAAiB,gDAAgDC,sBAAwB,sCAAsCC,cAAgB,4BAA4BC,kBAAoB,gEAAgEC,oBAAsB,sBAAsBC,kBAAoB,oBAAoBC,UAAY,YAAYv2O,aAAe,eAAe22O,uBAAyB,mCAAmCx5K,IAAM2pK,aAAeC,WAAa,uBAAuBC,+BAAiC,+BAA+BC,6BAA+B,4BAA4BC,yCAA2C,2CAA2CC,cAAgB,kBAAkBC,cAAgB,iBAAiBC,0BAA4B,4BAA4BC,wCAA0C,0CAA0CC,0BAA4B,oCAAoCC,6DAA+D,yEAAyEC,6BAA+B,+BAA+BC,cAAgB,gBAAgBC,cAAgB,iBAAiBC,QAAU,4BAA4BC,qCAAuC,gDAAgDC,SAAW,aAAaC,WAAa,gBAAgBC,6BAA+B,kCAAkCC,kEAAoE,yEAAyEC,6BAA+B,uCAAuCC,sBAAwB,yBAAyBC,2BAA6B,uEAAuEC,8BAAgC,kHAAkHC,2CAA6C,4DAA4DC,cAAgB,sBAAsBC,OAAS,SAASC,SAAW,WAAWC,OAAS,UAAUC,2BAA6B,gIAAgIC,iBAAmB,mBAAmBC,kBAAoB,4BAA4BC,MAAQ,SAASC,SAAW,YAAYC,kCAAoC,6GAA6GC,IAAM,YAAYC,+BAAiC,wEAAwEC,QAAU,WAAWC,aAAe,mBAAmBC,eAAiB,gBAAgB/uP,QAAU,UAAUgvP,UAAY,eAAeC,aAAe,kBAAkBC,aAAe,iBAAiBC,MAAQ,iBAAiBC,SAAW,UAAUC,SAAW,aAAaC,OAAS,WAAWC,QAAU,WAAWC,2BAA6B,mDAAmDC,MAAQ,QAAQC,IAAM,SAASC,qBAAuB,2BAA2BC,wBAA0B,yBAAyBC,KAAO,WAAWC,QAAU,UAAUC,aAAe,iBAAiBC,yBAA2B,kIAAkIC,sBAAwB,YAAYC,YAAc,mBAAmBC,aAAe,4BAA4BC,4BAA8B,4GAA4GC,MAAQ,aAAaC,cAAgB,sBAAsBC,iBAAmB,4BAA4BC,sBAAwB,2DAA2DC,eAAiB,oEAAsEC,aAAe,kCAAkCC,aAAe,kCAAkCC,MAAQ,YAAYC,IAAM,cAAcpnO,KAAO,oBAAoBE,OAAS,iBAAiBjG,aAAe,cAAck+B,KAAO,QAAQ54G,OAAS,SAAS8nT,OAAS,WAAWC,KAAO,OAAOC,KAAO,UAAUC,GAAK,cAAcC,QAAU,eAAervM,KAAO,QAAQsvM,qBAAuB,qCAAqCC,2BAA6B,oCAAoCC,yCAA2C,0CAA0CC,OAAS,WAAWC,OAAS,WAAWC,KAAO,UAAUC,cAAgB,cAAcC,QAAU,eAAeC,mBAAqB,uBAAuBC,QAAU,YAAYC,QAAU,WAAWC,OAAS,WAAWC,YAAc,iBAAiBC,GAAK,mBAAmBt2K,EAAI,IAAIu2K,OAAS,WAAWC,MAAQ,SAASC,SAAW,QAAQ58Q,IAAM,MAAM68Q,IAAM,YAAYC,OAAS,QAAQC,OAAS,sBAAsBC,SAAW,YAAYC,OAAS,SAASC,MAAQ,gBAAgBC,KAAO,OAAOC,IAAM,WAAWC,OAAS,SAASC,MAAQ,qBAAqBC,OAAS,IAAIC,IAAM,eAAeC,QAAU,SAASC,QAAU,eAAeC,MAAQ,SAASC,KAAO,MAAMC,KAAO,aAAaC,KAAO,cAAcC,MAAQ,IAAIC,aAAe,kBAAkBC,SAAW,sBAAsBC,SAAW,UAAUC,SAAW,YAAYC,KAAO,UAAUC,cAAgB,2BAA2BC,eAAiB,iIAAiIhyN,GAAK,KAAKiyN,cAAgB,oBAAoBC,SAAW,WAAWC,OAAS,UAAUC,SAAW,UAAUC,SAAW,iBAAiBC,gCAAkC,+BAA+BC,gDAAkD,uDAAuDC,WAAa,iBAAiBC,uBAAyB,yBAAyBC,gCAAkC,oCAAoCC,oBAAsB,oBAAoBC,gBAAkB,kBAAkBC,eAAiB,wBAAwBC,6CAA+C,0DAA0DC,cAAgB,mBAAmB1vT,KAAO,KAAK2vT,oCAAsC,8BAA8BC,OAAS,WAAWC,OAAS,UAAUC,QAAU,SAASC,SAAW,cAAcC,cAAgB,qBAAqBC,eAAiB,kBAAkBC,WAAa,oBAAoBr4O,KAAO,OAAOs4O,SAAW,WAAWC,UAAY,YAAYC,kBAAoB,sBAAsBC,mBAAqB,uBAAuBC,wBAA0B,iCAAiCC,iBAAmB,2BAA2BC,UAAY,iBAAiBC,KAAO,SAASC,KAAO,OAAOC,SAAW,QAAQC,kBAAoB,gCAAgCC,iBAAmB,gCAAgCC,gBAAkB,yDAAyDC,aAAe,eAAeC,YAAcC,QAAU,SAASl2Q,YAAc,uCAAuCm2Q,iBAAmBD,QAAU,gBAAgBl2Q,YAAc,2CAA2Co2Q,eAAiBF,QAAU,WAAWl2Q,YAAc,mEAAqEq2Q,kBAAoBH,QAAU,aAAal2Q,YAAc,qDAAqDs2Q,UAAYJ,QAAU,UAAUl2Q,YAAc,8BAA8Bu2Q,uBAAyBL,QAAU,2BAA2Bl2Q,YAAc,wCAAwCw2Q,gBAAkBN,QAAU,cAAcl2Q,YAAc;EAAgDy2Q,YAAcP,QAAU,UAAUl2Q,YAAc,6CAA6C02Q,mBAAqBR,QAAU,eAAel2Q,YAAc,gEAAgE22Q,eAAiBT,QAAU,WAAWl2Q,YAAc,6CAA6C42Q,iBAAmBV,QAAU,cAAcl2Q,YAAc,uCAAuC62Q,eAAiBX,QAAU,eAAel2Q,YAAc,uCAAuC82Q,SAAW,YAAYC,OAAS,WAAWC,iBAAmB,8BAA8BC,gBAAkB,0DAA0DC,gBAAkB,mGAAmGC,6BAA+B,8BAA8BC,yBAA2B,yBAAyBC,gBAAkB,qBAAqBC,yBAA2B,kCAAkC32O,QAAU,WAAW42O,MAAQ,YAAYC,mBAAqB,2DAA6DC,mBAAqB,6BAA6BC,wBAA0B,yCAAyCC,mBAAqB,gCAAgCC,wBAA0B,iCAAiCC,wBAA0B,oEAAoEC,6BAA+B,gFAAgFC,wBAA0B,8GAA8GC,6BAA+B,0HAA0HC,qBAAuB,iFAAiF36O,OAAS,QAAQ46O,iBAAmB,8CAA8CC,kCAAkC,6DAA6DC,2BAA6B,oEAAoEC,kCAAkC,2EAA2EC,0BAA4B,4BAA4BC,wBAA0B,8BAA8BC,uBAAyB,6BAA6BC,+BAAiC,mCAAmCC,8BAAgC,+BAA+BC,uBAAyB,gDAAgDC,oBAAsB,8DAA8DC,qBAAuB,2BAA2BC,+BAAiC,wCAAwCC,MAAQ,SAASC,aAAe,mBAAmBC,gBAAkB,oBAAoBC,YAAc,QAAQpyP,OAAS,UAAUqyP,mBAAqB,UAAUC,sBAAwB,WAAWC,sBAAwB,SAASC,cAAgB,mBAAmBC,sBAAwB,oCAAoCC,sBAAwB,oCAAoCC,GAAK,KAAKlgR,sBAAwB,wDAAwDmgR,uBAAyB,kCAAkCC,uBAAyB,4BAA4BC,IAAM,gBAAgBC,+CAAiD,sFAAsFC,0BAA4B,8DAA8DC,2BAA6B,qKAAqKC,yBAA2B,4IAA4IC,YAAc,gBAAgBC,sCAAwC,iDAAiDC,wCAA0C,oDAAoDC,SAAW,WAAWC,YAAY,YAAYC,cAAgB,kBAAkBC,yBAA2B,iCAAiCC,2BAA2B,8BAA8BC,6BAA6B,gCAAgCC,qDAAuD,4DAA4DC,QAAU,cAAcC,OAAS,UAAUC,UAAY,iBAAiBC,6BAA6B,4JAA4JC,4BAA4B,uEAAuEC,+BAA+B,sIAAsIC,2BAA2B,+DAA+DC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOK,IAAM9P,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOM,IAAM/P,aAAeC,WAAa,eAAeC,+BAAiC,0BAA0BC,6BAA+B,sBAAsBC,yCAA2C,6CAA6CC,cAAgB,mCAAmCC,cAAgB,mCAAmCC,0BAA4B,6BAA6BC,wCAA0C,wCAAwCC,0BAA4B,sCAAsCC,6DAA+D,iFAAiFC,6BAA+B,2BAA2BC,cAAgB,iBAAiBC,cAAgB,qBAAqBC,QAAU,eAAeC,qCAAuC,iDAAiDC,SAAW,UAAUC,WAAa,cAAcC,6BAA+B,oCAAoCC,kEAAoE,6EAA6EC,6BAA+B,2CAA2CC,sBAAwB,+BAA+BC,2BAA6B,6DAA6DC,8BAAgC,uIAAuIC,2CAA6C,2EAA2EC,cAAgB,6BAA6BC,OAAS,SAASC,SAAW,WAAWC,OAAS,WAAWC,2BAA6B,gHAAgHC,iBAAmB,kBAAkBC,kBAAoB,uBAAuBC,MAAQ,SAASC,SAAW,UAAUC,kCAAoC,kIAAkIC,IAAM,WAAWC,+BAAiC,4FAA4FC,QAAU,WAAWC,aAAe,aAAaC,eAAiB,mBAAmB/uP,QAAU,UAAUgvP,UAAY,qBAAqBC,aAAe,sBAAsBC,aAAe,uBAAuBC,MAAQ,YAAYC,SAAW,oBAAoBC,SAAW,eAAeC,OAAS,UAAUC,QAAU,YAAYC,2BAA6B,6DAA6DC,MAAQ,QAAQC,IAAM,UAAUC,qBAAuB,uBAAuBC,wBAA0B,4BAA4BC,KAAO,UAAUC,QAAU,YAAYC,aAAe,uBAAuBC,yBAA2B,2JAA2JC,sBAAwB,uBAAuBC,YAAc,qBAAqBC,aAAe,2BAA2BC,4BAA8B,4EAA4EC,MAAQ,SAASC,cAAgB,uBAAuBC,iBAAmB,8BAA8BC,sBAAwB,oEAAoEC,eAAiB,6DAA+DC,aAAe,qCAAqCC,aAAe,sCAAsCC,MAAQ,WAAWC,IAAM,kBAAkBpnO,KAAO,OAAOE,OAAS,YAAYjG,aAAe,aAAak+B,KAAO,WAAW54G,OAAS,SAAS8nT,OAAS,WAAWC,KAAO,QAAQC,KAAO,SAASC,GAAK,iBAAiBC,QAAU,aAAarvM,KAAO,QAAQsvM,qBAAuB,cAAcC,2BAA6B,2CAA2CC,yCAA2C,8BAA8BC,OAAS,WAAWC,OAAS,sBAAsBC,KAAO,SAASC,cAAgB,iBAAiBC,QAAU,aAAaC,mBAAqB,qBAAqBC,QAAU,UAAUC,QAAU,UAAUC,OAAS,YAAYC,YAAc,gBAAgBC,GAAK,MAAMt2K,EAAI,MAAMu2K,OAAS,iBAAiBC,MAAQ,SAASC,SAAW,SAAS58Q,IAAM,MAAM68Q,IAAM,UAAUC,OAAS,MAAMC,OAAS,kBAAkBC,SAAW,WAAWC,OAAS,SAASC,MAAQ,cAAcC,KAAO,OAAOC,IAAM,YAAYC,OAAS,SAASC,MAAQ,WAAWC,OAAS,WAAWC,IAAM,eAAeC,QAAU,MAAMC,QAAU,QAAQC,MAAQ,WAAWC,KAAO,OAAOC,KAAO,oBAAoBC,KAAO,cAAcC,MAAQ,QAAQC,aAAe,qBAAqBC,SAAW,2BAA2BC,SAAW,WAAWC,SAAW,WAAWC,KAAO,cAAcC,cAAgB,yBAAyBC,eAAiB,2FAA2FhyN,GAAK,MAAMiyN,cAAgB,2BAA2BC,SAAW,WAAWC,OAAS,UAAUC,SAAW,YAAYC,SAAW,yBAAyBC,gCAAkC,8BAA8BC,gDAAkD,sDAAsDC,WAAa,cAAcC,uBAAyB,gCAAgCC,gCAAkC,oCAAoCC,oBAAsB,0BAA0BC,gBAAkB,kBAAkBC,eAAiB,qBAAqBC,6CAA+C,uGAAwGC,cAAgB,gBAAgB1vT,KAAO,KAAK2vT,oCAAsC,kCAAkCC,OAAS,SAASC,OAAS,UAAUC,QAAU,aAAaC,SAAW,kBAAkBC,cAAgB,iBAAiBC,eAAiB,2BAA2BC,WAAa,cAAcr4O,KAAO,OAAOs4O,SAAW,YAAYC,UAAY,cAAcC,kBAAoB,mBAAmBC,mBAAqB,qBAAqBC,wBAA0B,gFAAgFC,iBAAmB,yBAAyBC,UAAY,wBAAwBC,KAAO,UAAUC,KAAO,QAAQC,SAAW,SAASC,kBAAoB,mCAAmCC,iBAAmB,mCAAmCC,gBAAkB,6DAA6DC,aAAe,eAAeC,YAAcC,QAAU,QAAQl2Q,YAAc,0CAA0Cm2Q,iBAAmBD,QAAU,6BAA6Bl2Q,YAAc,4CAA4Co2Q,eAAiBF,QAAU,SAASl2Q,YAAc,gFAAkFq2Q,kBAAoBH,QAAU,cAAcl2Q,YAAc,qEAAqEs2Q,UAAYJ,QAAU,SAASl2Q,YAAc,6CAA6Cu2Q,uBAAyBL,QAAU,8BAA8Bl2Q,YAAc,8CAA8Cw2Q,gBAAkBN,QAAU,aAAal2Q,YAAc,mDAAmDy2Q,YAAcP,QAAU,SAASl2Q,YAAc,sCAAsC02Q,mBAAqBR,QAAU,eAAel2Q,YAAc,kFAAkF22Q,eAAiBT,QAAU,aAAal2Q,YAAc,kDAAkD42Q,iBAAmBV,QAAU,aAAal2Q,YAAc,qDAAqD62Q,eAAiBX,QAAU,eAAel2Q,YAAc,oDAAoD82Q,SAAW,YAAYC,OAAS,UAAUC,iBAAmB,0BAA0BC,gBAAkB,6DAA6DC,gBAAkB,yGAAyGC,6BAA+B,kCAAkCC,yBAA2B,yBAAyBC,gBAAkB,gCAAgCC,yBAA2B,uCAAuC32O,QAAU,WAAW42O,MAAQ,UAAUC,mBAAqB,0DAA4DC,mBAAqB,mCAAmCC,wBAA0B,wCAAwCC,mBAAqB,kCAAkCC,wBAA0B,uCAAuCC,wBAA0B,wEAAwEC,6BAA+B,6EAA6EC,wBAA0B,qHAAqHC,6BAA+B,2FAA2FC,qBAAuB,uGAAuG36O,OAAS,SAAS46O,iBAAmB,wDAAwDC,kCAAkC,mEAAmEC,2BAA6B,8FAA8FC,kCAAkC,uEAAuEC,0BAA4B,uBAAuBC,wBAA0B,qCAAqCC,uBAAyB,6BAA6BC,+BAAiC,2CAA2CC,8BAAgC,kCAAkCC,uBAAyB,uEAAuEC,oBAAsB,6DAA6DC,qBAAuB,0BAA0BC,+BAAiC,4CAA4CC,MAAQ,SAASC,aAAe,gBAAgBC,gBAAkB,gBAAgBC,YAAc,gBAAgBpyP,OAAS,SAASqyP,mBAAqB,SAASC,sBAAwB,SAASC,sBAAwB,YAAYC,cAAgB,iBAAiBC,sBAAwB,kCAAkCC,sBAAwB,kCAAkCC,GAAK,KAAKlgR,sBAAwB,6EAA6EmgR,uBAAyB,wCAAwCC,uBAAyB,wCAAwCC,IAAM,iBAAiBC,+CAAiD,4FAA4FC,0BAA4B,wDAAwDC,2BAA6B,wKAAwKC,yBAA2B,8IAA8IC,YAAc,gBAAgBC,sCAAwC,6CAA6CC,wCAA0C,iDAAiDC,SAAW,cAAcC,YAAY,0BAA0BC,cAAgB,wBAAwBC,yBAA2B,uCAAuCC,2BAA2B,wCAAwCC,6BAA6B,sCAAsCC,qDAAuD,6DAA6DC,QAAU,aAAaC,OAAS,UAAUC,UAAY,qBAAqBC,6BAA6B,qLAAqLC,4BAA4B,6EAA6EC,+BAA+B,4IAA4IC,2BAA2B,gEAAgEC,cAAgB,4BAA4BC,eAAiB,6BAA6BC,yBAA2B,+BAA+BC,iCAAiC,qIAAqIC,aAAe,gBAAgBC,gBAAkB,eAAeC,eAAiB,eAAeC,eAAiB,gDAAgDC,sBAAwB,uEAAuEC,cAAgB,sCAAsCC,kBAAoB,sEAAsEC,oBAAsB,qBAAqBC,kBAAoB,eAAeC,UAAY,gBAAgBO,SAAShQ,aAAeC,WAAa,KAAKC,+BAAiC,kCAAkCC,6BAA+B,gCAAgCC,yCAA2C,+CAA+CC,cAAgB,8BAA8BC,cAAgB,8BAA8BC,0BAA4B,8BAA8BC,wCAA0C,KAAKC,0BAA4B,gCAAgCC,6DAA+D,8EAA8EC,6BAA+B,+BAA+BC,cAAgB,eAAeC,cAAgB,mBAAmBC,QAAU,UAAUC,qCAAuC,+BAA+BC,SAAW,cAAcC,WAAa,mBAAmBC,6BAA+B,kCAAkCC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,yBAAyBC,2BAA6B,mDAAmDC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,SAASC,OAAS,QAAQC,2BAA6B,KAAKC,iBAAmB,kBAAkBC,kBAAoB,qBAAqBC,MAAQ,UAAUC,SAAW,kBAAkBC,kCAAoC,4FAA4FC,IAAM,SAASC,+BAAiC,kFAAkFC,QAAU,kBAAkBC,aAAe,aAAaC,eAAiB,aAAa/uP,QAAU,SAASgvP,UAAY,qBAAqBC,aAAe,qBAAqBC,aAAe,kBAAkBC,MAAQ,UAAUC,SAAW,iBAAiBC,SAAW,SAASC,OAAS,SAASC,QAAU,cAAcC,2BAA6B,sEAAsEC,MAAQ,UAAUC,IAAM,YAAYC,qBAAuB,wBAAwBC,wBAA0B,qCAAqCC,KAAO,WAAWC,QAAU,WAAWC,aAAe,uBAAuBC,yBAA2B,KAAKC,sBAAwB,wBAAwBC,YAAc,eAAeC,aAAe,gCAAgCC,4BAA8B,KAAKC,MAAQ,SAASC,cAAgB,qBAAqBC,iBAAmB,iCAAiCC,sBAAwB,oDAAoDC,eAAiB,yDAA2DC,aAAe,8BAA8BC,aAAe,6BAA6BC,MAAQ,KAAKC,IAAM,YAAYpnO,KAAO,UAAUE,OAAS,uBAAuBjG,aAAe,KAAKk+B,KAAO,YAAY54G,OAAS,UAAU8nT,OAAS,WAAWC,KAAO,KAAKC,KAAO,QAAQC,GAAK,qBAAqBC,QAAU,UAAUrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,aAAat2K,EAAI,KAAKu2K,OAAS,cAAcC,MAAQ,aAAaC,SAAW,UAAU58Q,IAAM,MAAM68Q,IAAM,MAAMC,OAAS,UAAUC,OAAS,MAAMC,SAAW,UAAUC,OAAS,QAAQC,MAAQ,eAAeC,KAAO,SAASC,IAAM,cAAcC,OAAS,UAAUC,MAAQ,aAAaC,OAAS,KAAKC,IAAM,WAAWC,QAAU,MAAMC,QAAU,UAAUC,MAAQ,WAAWC,KAAO,UAAUC,KAAO,cAAcC,KAAO,SAASC,MAAQ,KAAKC,aAAe,iBAAiBC,SAAW,gBAAgBC,SAAW,cAAcC,SAAW,YAAYC,KAAO,SAASC,cAAgB,0BAA0BC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,6BAA6BC,SAAW,WAAWC,OAAS,SAASC,SAAW,YAAYC,SAAW,mBAAmBC,gCAAkC,kCAAkCC,gDAAkD,6DAA6DC,WAAa,KAAKC,uBAAyB,0BAA0BC,gCAAkC,+BAA+BC,oBAAsB,4BAA4BC,gBAAkB,iBAAiBC,eAAiB,mBAAmBC,6CAA+C,yHAA2HC,cAAgB,eAAe1vT,KAAO,OAAO2vT,oCAAsC,+CAA+CC,OAAS,WAAWC,OAAS,UAAUC,QAAU,SAASC,SAAW,eAAeC,cAAgB,kBAAkBC,eAAiB,yBAAyBC,WAAa,kBAAkBr4O,KAAO,OAAOs4O,SAAW,WAAWC,UAAY,YAAYC,kBAAoB,iBAAiBC,mBAAqB,kBAAkBC,wBAA0B,yFAAyFC,iBAAmB,sBAAsBC,UAAY,mBAAmBC,KAAO,UAAUC,KAAO,QAAQC,SAAW,UAAUC,kBAAoB,qCAAqCC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB;AAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOj4R,IAAMwoR,aAAeC,WAAa,SAASC,+BAAiC,oCAAoCC,6BAA+B,gCAAgCC,yCAA2C,8DAA8DC,cAAgB,iBAAiBC,cAAgB,iBAAiBC,0BAA4B,qCAAqCC,wCAA0C,oCAAoCC,0BAA4B,iCAAiCC,6DAA+D,yFAAyFC,6BAA+B,iCAAiCC,cAAgB,kBAAkBC,cAAgB,uBAAuBC,QAAU,cAAcC,qCAAuC,iDAAiDC,SAAW,aAAaC,WAAa,iBAAiBC,6BAA+B,kCAAkCC,kEAAoE,kFAAkFC,6BAA+B,kCAAkCC,sBAAwB,0BAA0BC,2BAA6B,uEAAuEC,8BAAgC,iIAAiIC,2CAA6C,kEAAkEC,cAAgB,sBAAsBC,OAAS,UAAUC,SAAW,UAAUC,OAAS,UAAUC,2BAA6B,mIAAmIC,iBAAmB,2BAA2BC,kBAAoB,gCAAgCC,MAAQ,SAASC,SAAW,YAAYC,kCAAoC,gHAAgHC,IAAM,SAASC,+BAAiC,uEAAuEC,QAAU,YAAYC,aAAe,oBAAoBC,eAAiB,iBAAiB/uP,QAAU,WAAWgvP,UAAY,uBAAuBC,aAAe,oBAAoBC,aAAe,mBAAmBC,MAAQ,QAAQC,SAAW,8BAA8BC,SAAW,WAAWC,OAAS,WAAWC,QAAU,UAAUC,2BAA6B,iEAAiEC,MAAQ,QAAQC,IAAM,WAAWC,qBAAuB,+BAA+BC,wBAA0B,uBAAuBC,KAAO,UAAUC,QAAU,UAAUC,aAAe,sBAAsBC,yBAA2B,yHAAyHC,sBAAwB,sBAAsBC,YAAc,uBAAuBC,aAAe,uBAAuBC,4BAA8B,oFAAoFC,MAAQ,WAAWC,cAAgB,yBAAyBC,iBAAmB,8BAA8BC,sBAAwB,0DAA0DC,eAAiB,4DAA8DC,aAAe,qCAAqCC,aAAe,iCAAiCC,MAAQ,sBAAsBC,IAAM,iBAAiBpnO,KAAO,cAAcE,OAAS,gBAAgBjG,aAAe,iBAAiBk+B,KAAO,UAAU54G,OAAS,SAAS8nT,OAAS,WAAWC,KAAO,OAAOC,KAAO,MAAMC,GAAK,gBAAgBC,QAAU,eAAervM,KAAO,UAAUsvM,qBAAuB,4BAA4BC,2BAA6B,wCAAwCC,yCAA2C,mDAAmDC,OAAS,WAAWC,OAAS,gBAAgBC,KAAO,MAAMC,cAAgB,gBAAgBC,QAAU,eAAeC,mBAAqB,qBAAqBC,QAAU,WAAWC,QAAU,UAAUC,OAAS,UAAUC,YAAc,iBAAiBC,GAAK,iBAAiBt2K,EAAI,KAAKu2K,OAAS,UAAUC,MAAQ,OAAOC,SAAW,aAAa58Q,IAAM,MAAM68Q,IAAM,YAAYC,OAAS,MAAMC,OAAS,mBAAmBC,SAAW,WAAWC,OAAS,UAAUC,MAAQ,iBAAiBC,KAAO,QAAQC,IAAM,WAAWC,OAAS,SAASC,MAAQ,SAASC,OAAS,KAAKC,IAAM,iBAAiBC,QAAU,OAAOC,QAAU,QAAQC,MAAQ,mBAAmBC,KAAO,WAAWC,KAAO,aAAaC,KAAO,cAAcC,MAAQ,KAAKC,aAAe,mBAAmBC,SAAW,sBAAsBC,SAAW,eAAeC,SAAW,WAAWC,KAAO,QAAQC,cAAgB,2BAA2BC,eAAiB,kHAAkHhyN,GAAK,IAAIiyN,cAAgB,mBAAmBC,SAAW,WAAWC,OAAS,SAASC,SAAW,UAAUC,SAAW,WAAWC,gCAAkC,0CAA0CC,gDAAkD,4DAA4DC,WAAa,eAAeC,uBAAyB,4BAA4BC,gCAAkC,wCAAwCC,oBAAsB,oBAAoBC,gBAAkB,oBAAoBC,eAAiB,uBAAuBC,6CAA+C,wHAAyHC,cAAgB,qBAAqB1vT,KAAO,KAAK2vT,oCAAsC,gCAAgCC,OAAS,UAAUC,OAAS,UAAUC,QAAU,YAAYC,SAAW,aAAaC,cAAgB,yBAAyBC,eAAiB,qBAAqBC,WAAa,iBAAiBr4O,KAAO,eAAes4O,SAAW,YAAYC,UAAY,YAAYC,kBAAoB,2BAA2BC,mBAAqB,2BAA2BC,wBAA0B,mFAAmFC,iBAAmB,uBAAuBC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,eAAeC,+CAAiD,iGAAiGC,0BAA4B,4DAA4DC,2BAA6B,4KAA4KC,yBAA2B,iJAAiJC,YAAc,gBAAgBC,sCAAwC,6CAA6CC,wCAA0C,iDAAiDC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOQ,KAAOjQ,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOS,IAAMlQ,aAAeC,WAAa,eAAeC,+BAAiC,wCAAwCC,6BAA+B,oCAAoCC,yCAA2C,oCAAoCC,cAAgB,sBAAsBC,cAAgB,mBAAmBC,0BAA4B,sCAAsCC,wCAA0C,4CAA4CC,0BAA4B,iCAAiCC,6DAA+D,gEAAgEC,6BAA+B,uCAAuCC,cAAgB,eAAeC,cAAgB,mBAAmBC,QAAU,kBAAkBC,qCAAuC,sBAAsBC,SAAW,gBAAgBC,WAAa,mBAAmBC,6BAA+B,qBAAqBC,kEAAoE,2DAA2DC,6BAA+B,4BAA4BC,sBAAwB,gCAAgCC,2BAA6B,sDAAsDC,8BAAgC,oEAAoEC,2CAA6C,oEAAoEC,cAAgB,oBAAoBC,OAAS,UAAUC,SAAW,UAAUC,OAAS,QAAQC,2BAA6B,qGAAqGC,iBAAmB,YAAYC,kBAAoB,eAAeC,MAAQ,UAAUC,SAAW,YAAYC,kCAAoC,sGAAsGC,IAAM,gBAAgBC,+BAAiC,0FAA0FC,QAAU,UAAUC,aAAe,qBAAqBC,eAAiB,cAAc/uP,QAAU,YAAYgvP,UAAY,gBAAgBC,aAAe,uBAAuBC,aAAe,eAAeC,MAAQ,QAAQC,SAAW,oBAAoBC,SAAW,QAAQC,OAAS,SAASC,QAAU,aAAaC,2BAA6B,gHAAgHC,MAAQ,QAAQC,IAAM,QAAQC,qBAAuB,4BAA4BC,wBAA0B,wBAAwBC,KAAO,QAAQC,QAAU,YAAYC,aAAe,eAAeC,yBAA2B,2HAA2HC,sBAAwB,6BAA6BC,YAAc,gBAAgBC,aAAe,mBAAmBC,4BAA8B,gEAAgEC,MAAQ,SAASC,cAAgB,mBAAmBC,iBAAmB,6BAA6BC,sBAAwB,4EAA4EC,eAAiB,6BAA+BC,aAAe,+BAA+BC,aAAe,6BAA6BC,MAAQ,OAAOC,IAAM,mBAAmBpnO,KAAO,SAASE,OAAS,eAAejG,aAAe,cAAck+B,KAAO,aAAa54G,OAAS,SAAS8nT,OAAS,WAAWC,KAAO,OAAOC,KAAO,kBAAkBC,GAAK,aAAaC,QAAU,cAAcrvM,KAAO,OAAOsvM,qBAAuB,sBAAsBC,2BAA6B,8BAA8BC,yCAA2C,iDAAiDC,OAAS,YAAYC,OAAS,eAAeC,KAAO,SAASC,cAAgB,aAAaC,QAAU,cAAcC,mBAAqB,mBAAmBC,QAAU,gBAAgBC,QAAU,UAAUC,OAAS,OAAOC,YAAc,eAAeC,GAAK,cAAct2K,EAAI,KAAKu2K,OAAS,WAAWC,MAAQ,OAAOC,SAAW,YAAY58Q,IAAM,aAAa68Q,IAAM,QAAQC,OAAS,QAAQC,OAAS,cAAcC,SAAW,cAAcC,OAAS,SAASC,MAAQ,eAAeC,KAAO,OAAOC,IAAM,UAAUC,OAAS,QAAQC,MAAQ,QAAQC,OAAS,IAAIC,IAAM,cAAcC,QAAU,QAAQC,QAAU,YAAYC,MAAQ,aAAaC,KAAO,OAAOC,KAAO,eAAeC,KAAO,OAAOC,MAAQ,IAAIC,aAAe,mBAAmBC,SAAW,mBAAmBC,SAAW,aAAaC,SAAW,YAAYC,KAAO,SAASC,cAAgB,yBAAyBC,eAAiB,4EAA4EhyN,GAAK,OAAOiyN,cAAgB,kBAAkBC,SAAW,aAAaC,OAAS,SAASC,SAAW,SAASC,SAAW,WAAWC,gCAAkC,wCAAwCC,gDAAkD,wDAAwDC,WAAa,kBAAkBC,uBAAyB,yBAAyBC,gCAAkC,yCAAyCC,oBAAsB,2BAA2BC,gBAAkB,sBAAsBC,eAAiB,mBAAmBC,6CAA+C,2EAA6EC,cAAgB,0BAA0B1vT,KAAO,IAAI2vT,oCAAsC,4BAA4BC,OAAS,SAASC,OAAS,aAAaC,QAAU,UAAUC,SAAW,eAAeC,cAAgB,gBAAgBC,eAAiB,uBAAuBC,WAAa,cAAcr4O,KAAO,aAAas4O,SAAW,WAAWC,UAAY,kBAAkBC,kBAAoB,cAAcC,mBAAqB,aAAaC,wBAA0B,4FAA4FC,iBAAmB,2BAA2BC,UAAY,kBAAkBC,KAAO,SAASC,KAAO,QAAQC,SAAW,oBAAoBC,kBAAoB,uBAAuBC,iBAAmB,gCAAgCC,gBAAkB,mDAAmDC,aAAe,iBAAiBC,YAAcC,QAAU,SAASl2Q,YAAc,6CAA6Cm2Q,iBAAmBD,QAAU,mBAAmBl2Q,YAAc,8BAA8Bo2Q,eAAiBF,QAAU,aAAal2Q,YAAc,qDAAuDq2Q,kBAAoBH,QAAU,gBAAgBl2Q,YAAc,sEAAsEs2Q,UAAYJ,QAAU,UAAUl2Q,YAAc,wCAAwCu2Q,uBAAyBL,QAAU,qBAAqBl2Q,YAAc,kCAAkCw2Q,gBAAkBN,QAAU,SAASl2Q,YAAc,uDAAuDy2Q,YAAcP,QAAU,YAAYl2Q,YAAc,cAAc02Q,mBAAqBR,QAAU,gBAAgBl2Q,YAAc,4DAA4D22Q,eAAiBT,QAAU,aAAal2Q,YAAc,mDAAmD42Q,iBAAmBV,QAAU,gBAAgBl2Q,YAAc,+CAA+C62Q,eAAiBX,QAAU,mBAAmBl2Q,YAAc,6BAA6B82Q,SAAW,YAAYC,OAAS,SAASC,iBAAmB,4BAA4BC,gBAAkB,iCAAiCC,gBAAkB,mFAAmFC,6BAA+B,gCAAgCC,yBAA2B,6BAA6BC,gBAAkB,8BAA8BC,yBAA2B,+BAA+B32O,QAAU,aAAa42O,MAAQ,QAAQC,mBAAqB,qDAAuDC,mBAAqB,8BAA8BC,wBAA0B,yCAAyCC,mBAAqB,qBAAqBC,wBAA0B,gCAAgCC,wBAA0B,iEAAiEC,6BAA+B,4EAA4EC,wBAA0B,0GAA0GC,6BAA+B,0FAA0FC,qBAAuB,6DAA6D36O,OAAS,QAAQ46O,iBAAmB,uDAAuDC,kCAAkC,sEAAsEC,2BAA6B,2EAA2EC,kCAAkC,mFAAmFC,0BAA4B,6BAA6BC,wBAA0B,oCAAoCC,uBAAyB,sBAAsBC,+BAAiC,gCAAgCC,8BAAgC,kCAAkCC,uBAAyB,8DAA8DC,oBAAsB,iEAAiEC,qBAAuB,6BAA6BC,+BAAiC,yCAAyCC,MAAQ,QAAQC,aAAe,qBAAqBC,gBAAkB,qBAAqBC,YAAc,gBAAgBpyP,OAAS,WAAWqyP,mBAAqB,SAASC,sBAAwB,QAAQC,sBAAwB,aAAaC,cAAgB,cAAcC,sBAAwB,mCAAmCC,sBAAwB,mCAAmCC,GAAK,KAAKlgR,sBAAwB,4DAA4DmgR,uBAAyB,mCAAmCC,uBAAyB,mCAAmCC,IAAM,kBAAkBC,+CAAiD,2EAA2EC,0BAA4B,8DAA8DC,2BAA6B,wFAAwFC,yBAA2B,mFAAmFC,YAAc,eAAeC,sCAAwC,6CAA6CC,wCAA0C,gDAAgDC,SAAW,WAAWC,YAAY,kBAAkBC,cAAgB,kBAAkBC,yBAA2B,kCAAkCC,2BAA2B,iCAAiCC,6BAA6B,iCAAiCC,qDAAuD,+CAA+CC,QAAU,WAAWC,OAAS,QAAQC,UAAY,cAAcC,6BAA6B,KAAKC,4BAA4B,qEAAqEC,+BAA+B,kIAAkIC,2BAA2B,0DAA0DC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOU,SAASnQ,aAAeC,WAAa,cAAcC,+BAAiC,+BAA+BC,6BAA+B,2BAA2BC,yCAA2C,uCAAuCC,cAAgB,2BAA2BC,cAAgB,0BAA0BC,0BAA4B,8BAA8BC,wCAA0C,kCAAkCC,0BAA4B,mCAAmCC,6DAA+D,wEAAwEC,6BAA+B,mCAAmCC,cAAgB,eAAeC,cAAgB,eAAeC,QAAU,WAAWC,qCAAuC,oCAAoCC,SAAW,aAAaC,WAAa,iBAAiBC,6BAA+B,6BAA6BC,kEAAoE,uEAAuEC,6BAA+B,uBAAuBC,sBAAwB,uBAAuBC,2BAA6B,yDAAyDC,8BAAgC,4HAA4HC,2CAA6C,yEAAyEC,cAAgB,wBAAwBC,OAAS,SAASC,SAAW,WAAWC,OAAS,QAAQC,2BAA6B,4HAA4HC,iBAAmB,wBAAwBC,kBAAoB,+BAA+BC,MAAQ,SAASC,SAAW,YAAYC,kCAAoC,0FAA0FC,IAAM,WAAWC,+BAAiC,6EAA6EC,QAAU,UAAUC,aAAe,sBAAsBC,eAAiB,eAAe/uP,QAAU,WAAWgvP,UAAY,oBAAoBC,aAAe,mBAAmBC,aAAe,kBAAkBC,MAAQ,SAASC,SAAW,UAAUC,SAAW,QAAQC,OAAS,WAAWC,QAAU,WAAWC,2BAA6B,kDAAkDC,MAAQ,UAAUC,IAAM,YAAYC,qBAAuB,sBAAsBC,wBAA0B,wBAAwBC,KAAO,QAAQC,QAAU,UAAUC,aAAe,kBAAkBC,yBAA2B,6HAA6HC,sBAAwB,wBAAwBC,YAAc,oBAAoBC,aAAe,kCAAkCC,4BAA8B,oEAAoEC,MAAQ,SAASC,cAAgB,mBAAmBC,iBAAmB,4BAA4BC,sBAAwB;AAAiEC,eAAiB,0DAA4DC,aAAe,kCAAkCC,aAAe,iCAAiCC,MAAQ,QAAQC,IAAM,eAAepnO,KAAO,OAAOE,OAAS,QAAQjG,aAAe,YAAYk+B,KAAO,QAAQ54G,OAAS,SAAS8nT,OAAS,SAASC,KAAO,WAAWC,KAAO,UAAUC,GAAK,yBAAyBC,QAAU,aAAarvM,KAAO,SAASsvM,qBAAuB,qCAAqCC,2BAA6B,oCAAoCC,yCAA2C,6CAA6CC,OAAS,SAASC,OAAS,WAAWC,KAAO,UAAUC,cAAgB,yBAAyBC,QAAU,aAAaC,mBAAqB,oBAAoBC,QAAU,YAAYC,QAAU,UAAUC,OAAS,UAAUC,YAAc,eAAeC,GAAK,gBAAgBt2K,EAAI,KAAKu2K,OAAS,YAAYC,MAAQ,OAAOC,SAAW,UAAU58Q,IAAM,MAAM68Q,IAAM,WAAWC,OAAS,eAAeC,OAAS,cAAcC,SAAW,aAAaC,OAAS,SAASC,MAAQ,MAAMC,KAAO,OAAOC,IAAM,WAAWC,OAAS,SAASC,MAAQ,QAAQC,OAAS,cAAcC,IAAM,UAAUC,QAAU,OAAOC,QAAU,UAAUC,MAAQ,QAAQC,KAAO,SAASC,KAAO,qBAAqBC,KAAO,YAAYC,MAAQ,OAAOC,aAAe,kBAAkBC,SAAW,qBAAqBC,SAAW,gBAAgBC,SAAW,aAAaC,KAAO,SAASC,cAAgB,2BAA2BC,eAAiB,mGAAmGhyN,GAAK,IAAIiyN,cAAgB,kBAAkBC,SAAW,WAAWC,OAAS,UAAUC,SAAW,UAAUC,SAAW,gBAAgBC,gCAAkC,mCAAmCC,gDAAkD,wDAAwDC,WAAa,oBAAoBC,uBAAyB,0BAA0BC,gCAAkC,kCAAkCC,oBAAsB,uBAAuBC,gBAAkB,eAAeC,eAAiB,uBAAuBC,6CAA+C,gGAAkGC,cAAgB,oBAAoB1vT,KAAO,KAAK2vT,oCAAsC,2BAA2BC,OAAS,QAAQC,OAAS,UAAUC,QAAU,WAAWC,SAAW,mBAAmBC,cAAgB,OAAOC,eAAiB,eAAeC,WAAa,aAAar4O,KAAO,cAAcs4O,SAAW,WAAWC,UAAY,YAAYC,kBAAoB,oBAAoBC,mBAAqB,qBAAqBC,wBAA0B,4EAA4EC,iBAAmB,2BAA2BC,UAAY,iBAAiBC,KAAO,SAASC,KAAO,OAAOC,SAAW,UAAUC,kBAAoB,+BAA+BC,iBAAmB,8BAA8BC,gBAAkB,yDAAyDC,aAAe,cAAcC,YAAcC,QAAU,SAASl2Q,YAAc,+CAA+Cm2Q,iBAAmBD,QAAU,sBAAsBl2Q,YAAc,0CAA0Co2Q,eAAiBF,QAAU,WAAWl2Q,YAAc,sDAAwDq2Q,kBAAoBH,QAAU,cAAcl2Q,YAAc,6DAA6Ds2Q,UAAYJ,QAAU,QAAQl2Q,YAAc,sBAAsBu2Q,uBAAyBL,QAAU,sBAAsBl2Q,YAAc,yCAAyCw2Q,gBAAkBN,QAAU,cAAcl2Q,YAAc,uDAAuDy2Q,YAAcP,QAAU,UAAUl2Q,YAAc,kCAAkC02Q,mBAAqBR,QAAU,gBAAgBl2Q,YAAc,sEAAsE22Q,eAAiBT,QAAU,aAAal2Q,YAAc,mDAAmD42Q,iBAAmBV,QAAU,gBAAgBl2Q,YAAc,2CAA2C62Q,eAAiBX,QAAU,WAAWl2Q,YAAc,yCAAyC82Q,SAAW,UAAUC,OAAS,WAAWC,iBAAmB,iBAAiBC,gBAAkB,2DAA2DC,gBAAkB,yFAAyFC,6BAA+B,4BAA4BC,yBAA2B,yBAAyBC,gBAAkB,4BAA4BC,yBAA2B,8BAA8B32O,QAAU,WAAW42O,MAAQ,OAAOC,mBAAqB,4DAA8DC,mBAAqB,4BAA4BC,wBAA0B,oCAAoCC,mBAAqB,0BAA0BC,wBAA0B,kCAAkCC,wBAA0B,mEAAmEC,6BAA+B,+DAA+DC,wBAA0B,iGAAiGC,6BAA+B,2GAA2GC,qBAAuB,wEAAwE36O,OAAS,SAAS46O,iBAAmB,gDAAgDC,kCAAkC,iEAAiEC,2BAA6B,qEAAqEC,kCAAkC,sEAAsEC,0BAA4B,wBAAwBC,wBAA0B,4BAA4BC,uBAAyB,sBAAsBC,+BAAiC,qCAAqCC,8BAAgC,6BAA6BC,uBAAyB,+DAA+DC,oBAAsB,6DAA6DC,qBAAuB,uBAAuBC,+BAAiC,+CAA+CC,MAAQ,SAASC,aAAe,mBAAmBC,gBAAkB,qBAAqBC,YAAc,gBAAgBpyP,OAAS,aAAaqyP,mBAAqB,UAAUC,sBAAwB,WAAWC,sBAAwB,UAAUC,cAAgB,eAAeC,sBAAwB,iCAAiCC,sBAAwB,iCAAiCC,GAAK,KAAKlgR,sBAAwB,iEAAiEmgR,uBAAyB,kCAAkCC,uBAAyB,kCAAkCC,IAAM,eAAeC,+CAAiD,0FAA0FC,0BAA4B,yDAAyDC,2BAA6B,wJAAwJC,yBAA2B,6HAA6HC,YAAc,gBAAgBC,sCAAwC,wCAAwCC,wCAA0C,4CAA4CC,SAAW,YAAYC,YAAY,yBAAyBC,cAAgB,mBAAmBC,yBAA2B,0CAA0CC,2BAA2B,6BAA6BC,6BAA6B,8BAA8BC,qDAAuD,8CAA8CC,QAAU,SAASC,OAAS,UAAUC,UAAY,iBAAiBC,6BAA6B,uIAAuIC,4BAA4B,8DAA8DC,+BAA+B,0IAA0IC,2BAA2B,yDAAyDC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOW,IAAMpQ,aAAeC,WAAa,mBAAmBC,+BAAiC,+BAA+BC,6BAA+B,4BAA4BC,yCAA2C,8CAA8CC,cAAgB,qBAAqBC,cAAgB,iBAAiBC,0BAA4B,iCAAiCC,wCAA0C,4CAA4CC,0BAA4B,2CAA2CC,6DAA+D,kEAAkEC,6BAA+B,mCAAmCC,cAAgB,eAAeC,cAAgB,kBAAkBC,QAAU,mBAAmBC,qCAAuC,kDAAkDC,SAAW,YAAYC,WAAa,cAAcC,6BAA+B,gCAAgCC,kEAAoE,iFAAiFC,6BAA+B,oCAAoCC,sBAAwB,0BAA0BC,2BAA6B,yDAAyDC,8BAAgC,2GAA2GC,2CAA6C,+DAA+DC,cAAgB,kBAAkBC,OAAS,SAASC,SAAW,YAAYC,OAAS,SAASC,2BAA6B,4GAA4GC,iBAAmB,cAAcC,kBAAoB,4BAA4BC,MAAQ,UAAUC,SAAW,kBAAkBC,kCAAoC,wHAAwHC,IAAM,WAAWC,+BAAiC,kFAAkFC,QAAU,UAAUC,aAAe,WAAWC,eAAiB,gBAAgB/uP,QAAU,QAAQgvP,UAAY,iBAAiBC,aAAe,sBAAsBC,aAAe,iBAAiBC,MAAQ,SAASC,SAAW,aAAaC,SAAW,SAASC,OAAS,UAAUC,QAAU,YAAYC,2BAA6B,+DAA+DC,MAAQ,QAAQC,IAAM,SAASC,qBAAuB,uBAAuBC,wBAA0B,oBAAoBC,KAAO,SAASC,QAAU,SAASC,aAAe,iBAAiBC,yBAA2B,uHAAuHC,sBAAwB,qBAAqBC,YAAc,kBAAkBC,aAAe,0BAA0BC,4BAA8B,0EAA0EC,MAAQ,SAASC,cAAgB,iBAAiBC,iBAAmB,8BAA8BC,sBAAwB,uDAAuDC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOY,IAAMrQ,aAAeC,WAAa,oBAAoBC,+BAAiC,kCAAkCC,6BAA+B,+BAA+BC,yCAA2C,oDAAoDC,cAAgB,2BAA2BC,cAAgB,8BAA8BC,0BAA4B,0BAA0BC,wCAA0C,uCAAuCC,0BAA4B,KAAKC,6DAA+D,oEAAoEC,6BAA+B,qCAAqCC,cAAgB,cAAcC,cAAgB,kBAAkBC,QAAU,mBAAmBC,qCAAuC,oCAAoCC,SAAW,eAAeC,WAAa,kBAAkBC,6BAA+B,8BAA8BC,kEAAoE,2EAA2EC,6BAA+B,wBAAwBC,sBAAwB,sBAAsBC,2BAA6B,6DAA6DC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,oBAAoBC,OAAS,UAAUC,SAAW,SAASC,OAAS,SAASC,2BAA6B,KAAKC,iBAAmB,gBAAgBC,kBAAoB,wBAAwBC,MAAQ,UAAUC,SAAW,sBAAsBC,kCAAoC,qGAAqGC,IAAM,KAAKC,+BAAiC,0EAA0EC,QAAU,WAAWC,aAAe,YAAYC,eAAiB,cAAc/uP,QAAU,YAAYgvP,UAAY,mBAAmBC,aAAe,wBAAwBC,aAAe,kBAAkBC,MAAQ,OAAOC,SAAW,QAAQC,SAAW,SAASC,OAAS,SAASC,QAAU,aAAaC,2BAA6B,6DAA6DC,MAAQ,YAAYC,IAAM,WAAWC,qBAAuB,kBAAkBC,wBAA0B,oBAAoBC,KAAO,QAAQC,QAAU,cAAcC,aAAe,kBAAkBC,yBAA2B,oHAAoHC,sBAAwB,sBAAsBC,YAAc,aAAaC,aAAe,uBAAuBC,4BAA8B,0BAA0BC,MAAQ,QAAQC,cAAgB,mBAAmBC,iBAAmB,8BAA8BC,sBAAwB,2CAA2CC,eAAiB,yDAA2DC,aAAe,uBAAuBC,aAAe,uBAAuBC,MAAQ,YAAYC,IAAM,gBAAgBpnO,KAAO,oBAAoBE,OAAS,mBAAmBjG,aAAe,WAAWk+B,KAAO,MAAM54G,OAAS,SAAS8nT,OAAS,SAASC,KAAO,iBAAiBC,KAAO,SAASC,GAAK,aAAaC,QAAU,YAAYrvM,KAAO,MAAMsvM,qBAAuB,mBAAmBC,2BAA6B,oCAAoCC,yCAA2C,8CAA8CC,OAAS,SAASC,OAAS,iBAAiBC,KAAO,SAASC,cAAgB,aAAaC,QAAU,YAAYC,mBAAqB,kCAAkCC,QAAU,cAAcC,QAAU,YAAYC,OAAS,UAAUC,YAAc,gBAAgBC,GAAK,aAAat2K,EAAI,KAAKu2K,OAAS,UAAUC,MAAQ,MAAMC,SAAW,MAAM58Q,IAAM,MAAM68Q,IAAM,QAAQC,OAAS,QAAQC,OAAS,uBAAuBC,SAAW,QAAQC,OAAS,UAAUC,MAAQ,SAASC,KAAO,SAASC,IAAM,UAAUC,OAAS,QAAQC,MAAQ,QAAQC,OAAS,KAAKC,IAAM,cAAcC,QAAU,WAAWC,QAAU,QAAQC,MAAQ,YAAYC,KAAO,cAAcC,KAAO,gBAAgBC,KAAO,WAAWC,MAAQ,SAASC,aAAe,sBAAsBC,SAAW,sBAAsBC,SAAW,YAAYC,SAAW,YAAYC,KAAO,YAAYC,cAAgB,6BAA6BC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,kBAAkBC,SAAW,WAAWC,OAAS,QAAQC,SAAW,SAASC,SAAW,6BAA6BC,gCAAkC,qCAAqCC,gDAAkD,6DAA6DC,WAAa,eAAeC,uBAAyB,2BAA2BC,gCAAkC,uCAAuCC,oBAAsB,gBAAgBC,gBAAkB,kBAAkBC,eAAiB,0BAA0BC,6CAA+C,8FAAgGC,cAAgB,iBAAiB1vT,KAAO,KAAK2vT,oCAAsC,6BAA6BC,OAAS,YAAYC,OAAS,UAAUC,QAAU,YAAYC,SAAW,SAASC,cAAgB,YAAYC,eAAiB,uBAAuBC,WAAa,gBAAgBr4O,KAAO,OAAOs4O,SAAW,SAASC,UAAY,eAAeC,kBAAoB,gBAAgBC,mBAAqB,sBAAsBC,wBAA0B,uEAAuEC,iBAAmB,cAAcC,UAAY,2BAA2BC,KAAO,iBAAiBC,KAAO,UAAUC,SAAW,MAAMC,kBAAoB,kCAAkCC,iBAAmB,kCAAkCC,gBAAkB,sDAAsDC,aAAe,cAAcC,YAAcC,QAAU,SAASl2Q,YAAc,qCAAqCm2Q,iBAAmBD,QAAU,wBAAwBl2Q,YAAc,sCAAsCo2Q,eAAiBF,QAAU,eAAel2Q,YAAc,kEAAkEq2Q,kBAAoBH,QAAU,cAAcl2Q,YAAc,0CAA0Cs2Q,UAAYJ,QAAU,WAAWl2Q,YAAc,2CAA2Cu2Q,uBAAyBL,QAAU,mBAAmBl2Q,YAAc,uCAAuCw2Q,gBAAkBN,QAAU,aAAal2Q,YAAc,uDAAuDy2Q,YAAcP,QAAU,YAAYl2Q,YAAc,kCAAkC02Q,mBAAqBR,QAAU,iBAAiBl2Q,YAAc,+CAA+C22Q,eAAiBT,QAAU,YAAYl2Q,YAAc,gEAAgE42Q,iBAAmBV,QAAU,kBAAkBl2Q,YAAc,+CAA+C62Q,eAAiBX,QAAU,aAAal2Q,YAAc,qCAAqC82Q,SAAW,QAAQC,OAAS,SAASC,iBAAmB,oBAAoBC,gBAAkB,qDAAqDC,gBAAkB,kEAAkEC,6BAA+B,wBAAwBC,yBAA2B,2BAA2BC,gBAAkB,8BAA8BC,yBAA2B,gCAAgC32O,QAAU,aAAa42O,MAAQ,WAAWC,mBAAqB,qDAAuDC,mBAAqB,0BAA0BC,wBAA0B,qCAAqCC,mBAAqB,yBAAyBC,wBAA0B,qCAAqCC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,4GAA4GC,6BAA+B,wHAAwHC,qBAAuB,gEAAgE36O,OAAS,UAAU46O,iBAAmB,iDAAiDC,kCAAkC,qEAAqEC,2BAA6B,gFAAgFC,kCAAkC,kFAAkFC,0BAA4B,2BAA2BC,wBAA0B,kCAAkCC,uBAAyB,mBAAmBC,+BAAiC,4BAA4BC,8BAAgC,8BAA8BC,uBAAyB,mFAAmFC,oBAAsB,oEAAoEC,qBAAuB,4BAA4BC,+BAAiC,iCAAiCC,MAAQ,WAAWC,aAAe,gBAAgBC,gBAAkB,iBAAiBC,YAAc,uBAAuBpyP,OAAS,WAAWqyP,mBAAqB,SAASC,sBAAwB,YAAYC,sBAAwB,WAAWC,cAAgB,wBAAwBC,sBAAwB,mCAAmCC,sBAAwB,mCAAmCC,GAAK,KAAKlgR,sBAAwB,4DAA4DmgR,uBAAyB,2CAA2CC,uBAAyB,2CAA2CC,IAAM,aAAaC,+CAAiD,iEAAiEC,0BAA4B,4DAA4DC,2BAA6B,qEAAqEC,yBAA2B,qFAAqFC,YAAc,gBAAgBC,sCAAwC,wCAAwCC,wCAA0C,2CAA2CC,SAAW,WAAWC,YAAY,wBAAwBC,cAAgB,yBAAyBC,yBAA2B,mCAAmCC,2BAA2B,8BAA8BC,6BAA6B,KAAKC,qDAAuD,uDAAuDC,QAAU,SAASC,OAAS,WAAWC,UAAY,iBAAiBC,6BAA6B,8HAA8HC,4BAA4B,+EAA+EC,+BAA+B,4IAA4IC,2BAA2B,6DAA6DC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOa,SAAStQ,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q;AAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOc,SAASvQ,aAAeC,WAAa,mBAAmBC,+BAAiC,6BAA6BC,6BAA+B,2BAA2BC,yCAA2C,iDAAiDC,cAAgB,wBAAwBC,cAAgB,yBAAyBC,0BAA4B,mBAAmBC,wCAA0C,yCAAyCC,0BAA4B,uCAAuCC,6DAA+D,+DAA+DC,6BAA+B,6BAA6BC,cAAgB,eAAeC,cAAgB,gBAAgBC,QAAU,cAAcC,qCAAuC,wCAAwCC,SAAW,aAAaC,WAAa,gBAAgBC,6BAA+B,4BAA4BC,kEAAoE,+EAA+EC,6BAA+B,qBAAqBC,sBAAwB,8BAA8BC,2BAA6B,4DAA4DC,8BAAgC,4GAA4GC,2CAA6C,gFAAgFC,cAAgB,mBAAmBC,OAAS,OAAOC,SAAW,OAAOC,OAAS,gBAAgBC,2BAA6B,iFAAiFC,iBAAmB,eAAeC,kBAAoB,oBAAoBC,MAAQ,QAAQC,SAAW,aAAaC,kCAAoC,8GAA8GC,IAAM,MAAMC,+BAAiC,0FAA0FC,QAAU,cAAcC,aAAe,eAAeC,eAAiB,mBAAmB/uP,QAAU,QAAQgvP,UAAY,YAAYC,aAAe,0BAA0BC,aAAe,aAAaC,MAAQ,QAAQC,SAAW,gBAAgBC,SAAW,QAAQC,OAAS,QAAQC,QAAU,SAASC,2BAA6B,0DAA0DC,MAAQ,WAAWC,IAAM,OAAOC,qBAAuB,kBAAkBC,wBAA0B,2BAA2BC,KAAO,SAASC,QAAU,SAASC,aAAe,eAAeC,yBAA2B,mHAAmHC,sBAAwB,0BAA0BC,YAAc,kBAAkBC,aAAe,+BAA+BC,4BAA8B,+DAA+DC,MAAQ,OAAOC,cAAgB,cAAcC,iBAAmB,+CAA+CC,sBAAwB,uDAAuDC,eAAiB,gDAAkDC,aAAe,4BAA4BC,aAAe,6BAA6BC,MAAQ,WAAWC,IAAM,mBAAmBpnO,KAAO,SAASE,OAAS,QAAQjG,aAAe,SAASk+B,KAAO,eAAe54G,OAAS,QAAQ8nT,OAAS,YAAYC,KAAO,SAASC,KAAO,SAASC,GAAK,aAAaC,QAAU,aAAarvM,KAAO,WAAWsvM,qBAAuB,4BAA4BC,2BAA6B,uCAAuCC,yCAA2C,2CAA2CC,OAAS,YAAYC,OAAS,WAAWC,KAAO,SAASC,cAAgB,aAAaC,QAAU,aAAaC,mBAAqB,iBAAiBC,QAAU,SAASC,QAAU,SAASC,OAAS,QAAQC,YAAc,mBAAmBC,GAAK,UAAUt2K,EAAI,IAAIu2K,OAAS,SAASC,MAAQ,MAAMC,SAAW,WAAW58Q,IAAM,MAAM68Q,IAAM,QAAQC,OAAS,QAAQC,OAAS,sBAAsBC,SAAW,MAAMC,OAAS,QAAQC,MAAQ,aAAaC,KAAO,OAAOC,IAAM,UAAUC,OAAS,SAASC,MAAQ,SAASC,OAAS,IAAIC,IAAM,eAAeC,QAAU,OAAOC,QAAU,QAAQC,MAAQ,YAAYC,KAAO,SAASC,KAAO,aAAaC,KAAO,QAAQC,MAAQ,IAAIC,aAAe,iBAAiBC,SAAW,mBAAmBC,SAAW,UAAUC,SAAW,UAAUC,KAAO,SAASC,cAAgB,uBAAuBC,eAAiB,wFAAwFhyN,GAAK,OAAOiyN,cAAgB,oBAAoBC,SAAW,WAAWC,OAAS,WAAWC,SAAW,SAASC,SAAW,UAAUC,gCAAkC,iCAAiCC,gDAAkD,8CAA8CC,WAAa,sBAAsBC,uBAAyB,iCAAiCC,gCAAkC,kCAAkCC,oBAAsB,sBAAsBC,gBAAkB,iBAAiBC,eAAiB,sBAAsBC,6CAA+C,+FAAiGC,cAAgB,cAAc1vT,KAAO,WAAW2vT,oCAAsC,4CAA4CC,OAAS,SAASC,OAAS,WAAWC,QAAU,oBAAoBC,SAAW,iBAAiBC,cAAgB,aAAaC,eAAiB,mBAAmBC,WAAa,YAAYr4O,KAAO,QAAQs4O,SAAW,WAAWC,UAAY,UAAUC,kBAAoB,kBAAkBC,mBAAqB,iBAAiBC,wBAA0B,4EAA4EC,iBAAmB,2BAA2BC,UAAY,gBAAgBC,KAAO,QAAQC,KAAO,MAAMC,SAAW,WAAWC,kBAAoB,+BAA+BC,iBAAmB,2BAA2BC,gBAAkB,yDAAyDC,aAAe,SAASC,YAAcC,QAAU,QAAQl2Q,YAAc,6BAA6Bm2Q,iBAAmBD,QAAU,qBAAqBl2Q,YAAc,oCAAoCo2Q,eAAiBF,QAAU,aAAal2Q,YAAc,8DAAgEq2Q,kBAAoBH,QAAU,eAAel2Q,YAAc,oDAAoDs2Q,UAAYJ,QAAU,OAAOl2Q,YAAc,sBAAsBu2Q,uBAAyBL,QAAU,iBAAiBl2Q,YAAc,oCAAoCw2Q,gBAAkBN,QAAU,SAASl2Q,YAAc,oCAAoCy2Q,YAAcP,QAAU,eAAel2Q,YAAc,6BAA6B02Q,mBAAqBR,QAAU,cAAcl2Q,YAAc,yDAAyD22Q,eAAiBT,QAAU,SAASl2Q,YAAc,mCAAmC42Q,iBAAmBV,QAAU,cAAcl2Q,YAAc,6BAA6B62Q,eAAiBX,QAAU,WAAWl2Q,YAAc,6BAA6B82Q,SAAW,QAAQC,OAAS,SAASC,iBAAmB,eAAeC,gBAAkB,0DAA0DC,gBAAkB,8FAA8FC,6BAA+B,uCAAuCC,yBAA2B,mBAAmBC,gBAAkB,yBAAyBC,yBAA2B,2BAA2B32O,QAAU,MAAM42O,MAAQ,QAAQC,mBAAqB,kEAAoEC,mBAAqB,sBAAsBC,wBAA0B,gCAAgCC,mBAAqB,uBAAuBC,wBAA0B,oCAAoCC,wBAA0B,mDAAmDC,6BAA+B,6DAA6DC,wBAA0B,oGAAoGC,6BAA+B,uGAAuGC,qBAAuB,kDAAkD36O,OAAS,QAAQ46O,iBAAmB,4CAA4CC,kCAAkC,oDAAoDC,2BAA6B,oDAAoDC,kCAAkC,wDAAwDC,0BAA4B,mBAAmBC,wBAA0B,8BAA8BC,uBAAyB,gBAAgBC,+BAAiC,4BAA4BC,8BAAgC,0BAA0BC,uBAAyB,kFAAkFC,oBAAsB,gDAAgDC,qBAAuB,iBAAiBC,+BAAiC,uBAAuBC,MAAQ,QAAQC,aAAe,mBAAmBC,gBAAkB,kBAAkBC,YAAc,eAAepyP,OAAS,cAAcqyP,mBAAqB,SAASC,sBAAwB,aAAaC,sBAAwB,YAAYC,cAAgB,qBAAqBC,sBAAwB,+BAA+BC,sBAAwB,iCAAiCC,GAAK,QAAQlgR,sBAAwB,qDAAqDmgR,uBAAyB,+BAA+BC,uBAAyB,iCAAiCC,IAAM,aAAaC,+CAAiD,kGAAkGC,0BAA4B,6CAA6CC,2BAA6B,6KAA6KC,yBAA2B,wJAAwJC,YAAc,iBAAiBC,sCAAwC,oCAAoCC,wCAA0C,sCAAsCC,SAAW,UAAUC,YAAY,iBAAiBC,cAAgB,oBAAoBC,yBAA2B,yBAAyBC,2BAA2B,yBAAyBC,6BAA6B,kBAAkBC,qDAAuD,8DAA8DC,QAAU,YAAYC,OAAS,WAAWC,UAAY,eAAeC,6BAA6B,wKAAwKC,4BAA4B,sEAAsEC,+BAA+B,qHAAqHC,2BAA2B,2DAA2DC,cAAgB,cAAcC,eAAiB,iBAAiBC,yBAA2B,6BAA6BC,iCAAiC,6HAA6HC,aAAe,kBAAkBC,gBAAkB,aAAaC,eAAiB,eAAeC,eAAiB,6CAA6CC,sBAAwB,wCAAwCC,cAAgB,8BAA8BC,kBAAoB,mEAAmEC,oBAAsB,wBAAwBC,kBAAoB,qBAAqBC,UAAY,kBAAkBe,SAASxQ,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU,KAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY,OAAOgB,SAASzQ,aAAeC,WAAa,QAAQC,+BAAiC,SAASC,6BAA+B,SAASC,yCAA2C,cAAcC,cAAgB,OAAOC,cAAgB,OAAOC,0BAA4B,UAAUC,wCAA0C,UAAUC,0BAA4B,WAAWC,6DAA+D,mBAAmBC,6BAA+B,WAAWC,cAAgB,MAAMC,cAAgB,QAAQC,QAAU,OAAOC,qCAAuC,eAAeC,SAAW,MAAMC,WAAa,MAAMC,6BAA+B,YAAYC,kEAAoE,2BAA2BC,6BAA+B,YAAYC,sBAAwB,QAAQC,2BAA6B,qBAAqBC,8BAAgC,wBAAwBC,2CAA6C,2CAA2CC,cAAgB,UAAUC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,sCAAsCC,iBAAmB,SAASC,kBAAoB,WAAWC,MAAQ,KAAKC,SAAW,OAAOC,kCAAoC,iCAAiCC,IAAM,KAAKC,+BAAiC,0BAA0BC,QAAU,KAAKC,aAAe,OAAOC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,OAAOC,aAAe,UAAUC,aAAe,QAAQC,MAAQ,KAAKC,SAAW,QAAQC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,cAAcC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,OAAOC,wBAA0B,YAAYC,KAAO,KAAKC,QAAU,KAAKC,aAAe,QAAQC,yBAA2B,4DAA4DC,sBAAwB,QAAQC,YAAc,OAAOC,aAAe,SAASC,4BAA8B,wBAAwBC,MAAQ,MAAMC,cAAgB,SAASC,iBAAmB,gBAAgBC,sBAAwB,gBAAgBC,eAAiB,eAAeC,aAAe,UAAUC,aAAe,UAAUC,MAAQ,MAAMC,IAAM,MAAMpnO,KAAO,MAAME,OAAS,MAAMjG,aAAe,OAAOk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,OAAOC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,mBAAmBC,OAAS,KAAKC,OAAS,MAAMC,KAAO,KAAKC,cAAgB,OAAOC,QAAU,KAAKC,mBAAqB,OAAOC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,OAAOC,GAAK,KAAKt2K,EAAI,IAAIu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,OAAOC,SAAW,MAAMC,OAAS,KAAKC,MAAQ,OAAOC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,OAAOC,OAAS,IAAIC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,IAAIC,aAAe,OAAOC,SAAW,SAASC,SAAW,KAAKC,SAAW,MAAMC,KAAO,KAAKC,cAAgB,QAAQC,eAAiB,wBAAwBhyN,GAAK,MAAMiyN,cAAgB,OAAOC,SAAW,UAAUC,OAAS,KAAKC,SAAW,KAAKC,SAAW,OAAOC,gCAAkC,cAAcC,gDAAkD,kBAAkBC,WAAa,QAAQC,uBAAyB,QAAQC,gCAAkC,WAAWC,oBAAsB,WAAWC,gBAAkB,MAAMC,eAAiB,QAAQC,6CAA+C,4BAA4BC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,WAAWC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,SAASC,eAAiB,SAASC,WAAa,MAAMr4O,KAAO,KAAKs4O,SAAW,SAASC,UAAY,SAASC,kBAAoB,SAASC,mBAAqB,SAASC,wBAA0B,mBAAmBC,iBAAmB,SAASC,UAAY,OAAOC,KAAO,KAAKC,KAAO,MAAMC,SAAW,KAAKC,kBAAoB,oBAAoBC,iBAAmB,qBAAqBC,gBAAkB,qCAAqCC,aAAe,SAASC,YAAcC,QAAU,KAAKl2Q,YAAc,UAAUm2Q,iBAAmBD,QAAU,MAAMl2Q,YAAc,UAAUo2Q,eAAiBF,QAAU,MAAMl2Q,YAAc,eAAeq2Q,kBAAoBH,QAAU,MAAMl2Q,YAAc,yBAAyBs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,WAAWu2Q,uBAAyBL,QAAU,MAAMl2Q,YAAc,gBAAgBw2Q,gBAAkBN,QAAU,MAAMl2Q,YAAc,oBAAoBy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,QAAQ02Q,mBAAqBR,QAAU,MAAMl2Q,YAAc,4BAA4B22Q,eAAiBT,QAAU,MAAMl2Q,YAAc,kBAAkB42Q,iBAAmBV,QAAU,MAAMl2Q,YAAc,aAAa62Q,eAAiBX,QAAU,MAAMl2Q,YAAc,aAAa82Q,SAAW,KAAKC,OAAS,MAAMC,iBAAmB,UAAUC,gBAAkB,6BAA6BC,gBAAkB,wBAAwBC,6BAA+B,cAAcC,yBAA2B,UAAUC,gBAAkB,WAAWC,yBAA2B,YAAY32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,sCAAwCC,mBAAqB,WAAWC,wBAA0B,sBAAsBC,mBAAqB,aAAaC,wBAA0B,wBAAwBC,wBAA0B,iBAAiBC,6BAA+B,4BAA4BC,wBAA0B,6BAA6BC,6BAA+B,0CAA0CC,qBAAuB,yBAAyB36O,OAAS,KAAK46O,iBAAmB,eAAeC,kCAAkC,mBAAmBC,2BAA6B,iBAAiBC,kCAAkC,uBAAuBC,0BAA4B,WAAWC,wBAA0B,WAAWC,uBAAyB,OAAOC,+BAAiC,QAAQC,8BAAgC,aAAaC,uBAAyB,gBAAgBC,oBAAsB,oBAAoBC,qBAAuB,SAASC,+BAAiC,aAAaC,MAAQ,KAAKC,aAAe,OAAOC,gBAAkB,OAAOC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,MAAMC,sBAAwB,MAAMC,sBAAwB,MAAMC,cAAgB,OAAOC,sBAAwB,YAAYC,sBAAwB,YAAYC,GAAK,IAAIlgR,sBAAwB,mBAAmBmgR,uBAAyB,YAAYC,uBAAyB,YAAYC,IAAM,iBAAiBC,+CAAiD,oCAAoCC,0BAA4B,yBAAyBC,2BAA6B,+CAAiDC,yBAA2B,yCAAyCC,YAAc,gBAAgBC,sCAAwC,gBAAgBC,wCAA0C,gBAAgBC,SAAW,KAAKC,YAAY,OAAOC,cAAgB,OAAOC,yBAA2B,WAAWC,2BAA2B,aAAaC,6BAA6B,aAAaC,qDAAuD,kBAAkBC,QAAU,MAAMC,OAAS,KAAKC,UAAY,OAAOC,6BAA6B,2DAA2DC,4BAA4B,qBAAqBC,+BAA+B,kDAAkDC,2BAA2B,uBAAuBC,cAAgB,WAAWC,eAAiB,WAAWC,yBAA2B,SAASC,iCAAiC,oCAAoCC,aAAe,OAAOC,gBAAkB,OAAOC,eAAiB,QAAQC,eAAiB,eAAeC,sBAAwB,sBAAsBC,cAAgB,WAAWC,kBAAoB,uBAAuBC,oBAAsB,QAAQC,kBAAoB,QAAQC,UAAY,SAASiB,IAAM1Q,aAAeC,WAAa,KAAKC,+BAAiC,KAAKC,6BAA+B,KAAKC,yCAA2C,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,0BAA4B,KAAKC,wCAA0C,KAAKC,0BAA4B,KAAKC,6DAA+D,KAAKC,6BAA+B,KAAKC,cAAgB,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,qCAAuC,KAAKC,SAAW,KAAKC,WAAa,KAAKC,6BAA+B,KAAKC,kEAAoE,KAAKC,6BAA+B,KAAKC,sBAAwB,KAAKC,2BAA6B,KAAKC,8BAAgC,KAAKC,2CAA6C,KAAKC,cAAgB,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,2BAA6B,KAAKC,iBAAmB,KAAKC,kBAAoB,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,kCAAoC,KAAKC,IAAM,KAAKC,+BAAiC,KAAKC,QAAU,KAAKC,aAAe,KAAKC,eAAiB,KAAK/uP,QAAU,KAAKgvP,UAAY,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,SAAW,KAAKC,SAAW,KAAKC,OAAS,KAAKC,QAAU,KAAKC,2BAA6B,KAAKC,MAAQ,KAAKC,IAAM,KAAKC,qBAAuB,KAAKC,wBAA0B,KAAKC,KAAO,KAAKC,QAAU,KAAKC,aAAe,KAAKC,yBAA2B,KAAKC,sBAAwB,KAAKC,YAAc,KAAKC,aAAe,KAAKC,4BAA8B,KAAKC,MAAQ,KAAKC,cAAgB,KAAKC,iBAAmB,KAAKC,sBAAwB,KAAKC,eAAiB,KAAKC,aAAe,KAAKC,aAAe,KAAKC,MAAQ,KAAKC,IAAM,KAAKpnO,KAAO,KAAKE,OAAS,KAAKjG,aAAe,KAAKk+B,KAAO,KAAK54G,OAAS,KAAK8nT,OAAS,KAAKC,KAAO,KAAKC,KAAO,KAAKC,GAAK,KAAKC,QAAU,KAAKrvM,KAAO,KAAKsvM,qBAAuB,KAAKC,2BAA6B,KAAKC,yCAA2C,KAAKC,OAAS,KAAKC,OAAS,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,QAAU,KAAKC,mBAAqB,KAAKC,QAAU,KAAKC,QAAU,KAAKC,OAAS,KAAKC,YAAc,KAAKC,GAAK,KAAKt2K,EAAI,KAAKu2K,OAAS,KAAKC,MAAQ,KAAKC,SAAW,KAAK58Q,IAAM,KAAK68Q,IAAM,KAAKC,OAAS,KAAKC,OAAS,KAAKC,SAAW,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,IAAM,KAAKC,OAAS,KAAKC,MAAQ,KAAKC,OAAS,KAAKC,IAAM,KAAKC,QAAU,KAAKC,QAAU,KAAKC,MAAQ,KAAKC,KAAO,KAAKC,KAAO,KAAKC,KAAO,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,SAAW,KAAKC,SAAW,KAAKC,SAAW,KAAKC,KAAO,KAAKC,cAAgB,KAAKC,eAAiB,KAAKhyN,GAAK,KAAKiyN,cAAgB,KAAKC,SAAW,KAAKC,OAAS,KAAKC,SAAW,KAAKC,SAAW,KAAKC,gCAAkC,KAAKC,gDAAkD,KAAKC,WAAa,KAAKC,uBAAyB,KAAKC,gCAAkC,KAAKC,oBAAsB,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,6CAA+C,KAAKC,cAAgB,KAAK1vT,KAAO,KAAK2vT,oCAAsC,KAAKC,OAAS,KAAKC,OAAS,KAAKC,QAAU,KAAKC,SAAW,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,WAAa,KAAKr4O,KAAO,KAAKs4O,SAAW,KAAKC,UAAY,KAAKC,kBAAoB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,iBAAmB,KAAKC,UAAY,KAAKC,KAAO,KAAKC,KAAO,KAAKC,SAAW,KAAKC,kBAAoB,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,aAAe,KAAKC,YAAcC,QAAU,KAAKl2Q,YAAc,MAAMm2Q,iBAAmBD,QAAU,KAAKl2Q,YAAc,MAAMo2Q,eAAiBF,QAAU,KAAKl2Q,YAAc,MAAMq2Q,kBAAoBH,QAAU,KAAKl2Q,YAAc,MAAMs2Q,UAAYJ,QAAU,KAAKl2Q,YAAc,MAAMu2Q,uBAAyBL,QAAU,KAAKl2Q,YAAc,MAAMw2Q,gBAAkBN,QAAU,KAAKl2Q,YAAc,MAAMy2Q,YAAcP,QAAU,KAAKl2Q,YAAc,MAAM02Q,mBAAqBR,QAAU,KAAKl2Q,YAAc,MAAM22Q,eAAiBT,QAAU,KAAKl2Q,YAAc,MAAM42Q,iBAAmBV,QAAU;AAAKl2Q,YAAc,MAAM62Q,eAAiBX,QAAU,KAAKl2Q,YAAc,MAAM82Q,SAAW,KAAKC,OAAS,KAAKC,iBAAmB,KAAKC,gBAAkB,KAAKC,gBAAkB,KAAKC,6BAA+B,KAAKC,yBAA2B,KAAKC,gBAAkB,KAAKC,yBAA2B,KAAK32O,QAAU,KAAK42O,MAAQ,KAAKC,mBAAqB,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,mBAAqB,KAAKC,wBAA0B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,wBAA0B,KAAKC,6BAA+B,KAAKC,qBAAuB,KAAK36O,OAAS,KAAK46O,iBAAmB,KAAKC,kCAAkC,KAAKC,2BAA6B,KAAKC,kCAAkC,KAAKC,0BAA4B,KAAKC,wBAA0B,KAAKC,uBAAyB,KAAKC,+BAAiC,KAAKC,8BAAgC,KAAKC,uBAAyB,KAAKC,oBAAsB,KAAKC,qBAAuB,KAAKC,+BAAiC,KAAKC,MAAQ,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,YAAc,KAAKpyP,OAAS,KAAKqyP,mBAAqB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,sBAAwB,KAAKC,sBAAwB,KAAKC,GAAK,KAAKlgR,sBAAwB,KAAKmgR,uBAAyB,KAAKC,uBAAyB,KAAKC,IAAM,KAAKC,+CAAiD,KAAKC,0BAA4B,KAAKC,2BAA6B,KAAKC,yBAA2B,KAAKC,YAAc,KAAKC,sCAAwC,KAAKC,wCAA0C,KAAKC,SAAW,KAAKC,YAAY,KAAKC,cAAgB,KAAKC,yBAA2B,KAAKC,2BAA2B,KAAKC,6BAA6B,KAAKC,qDAAuD,KAAKC,QAAU,KAAKC,OAAS,KAAKC,UAAY,KAAKC,6BAA6B,KAAKC,4BAA4B,KAAKC,+BAA+B,KAAKC,2BAA2B,KAAKC,cAAgB,KAAKC,eAAiB,KAAKC,yBAA2B,KAAKC,iCAAiC,KAAKC,aAAe,KAAKC,gBAAkB,KAAKC,eAAiB,KAAKC,eAAiB,KAAKC,sBAAwB,KAAKC,cAAgB,KAAKC,kBAAoB,KAAKC,oBAAsB,KAAKC,kBAAoB,KAAKC,UAAY","file":"jsxc.dep.min.js"} \ No newline at end of file
diff --git a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js
deleted file mode 100644
index 927b3c1..0000000
--- a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js
+++ /dev/null
@@ -1,1860 +0,0 @@
-/*! Magnific Popup - v1.1.0 - 2016-02-20
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2016 Dmitry Semenov; */
-;(function (factory) {
-if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS
- factory(require('jquery'));
- } else {
- // Browser globals
- factory(window.jQuery || window.Zepto);
- }
- }(function($) {
-
-/*>>core*/
-/**
- *
- * Magnific Popup Core JS file
- *
- */
-
-
-/**
- * Private static constants
- */
-var CLOSE_EVENT = 'Close',
- BEFORE_CLOSE_EVENT = 'BeforeClose',
- AFTER_CLOSE_EVENT = 'AfterClose',
- BEFORE_APPEND_EVENT = 'BeforeAppend',
- MARKUP_PARSE_EVENT = 'MarkupParse',
- OPEN_EVENT = 'Open',
- CHANGE_EVENT = 'Change',
- NS = 'mfp',
- EVENT_NS = '.' + NS,
- READY_CLASS = 'mfp-ready',
- REMOVING_CLASS = 'mfp-removing',
- PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
-
-
-/**
- * Private vars
- */
-/*jshint -W079 */
-var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
- MagnificPopup = function(){},
- _isJQ = !!(window.jQuery),
- _prevStatus,
- _window = $(window),
- _document,
- _prevContentType,
- _wrapClasses,
- _currPopupType;
-
-
-/**
- * Private functions
- */
-var _mfpOn = function(name, f) {
- mfp.ev.on(NS + name + EVENT_NS, f);
- },
- _getEl = function(className, appendTo, html, raw) {
- var el = document.createElement('div');
- el.className = 'mfp-'+className;
- if(html) {
- el.innerHTML = html;
- }
- if(!raw) {
- el = $(el);
- if(appendTo) {
- el.appendTo(appendTo);
- }
- } else if(appendTo) {
- appendTo.appendChild(el);
- }
- return el;
- },
- _mfpTrigger = function(e, data) {
- mfp.ev.triggerHandler(NS + e, data);
-
- if(mfp.st.callbacks) {
- // converts "mfpEventName" to "eventName" callback and triggers it if it's present
- e = e.charAt(0).toLowerCase() + e.slice(1);
- if(mfp.st.callbacks[e]) {
- mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
- }
- }
- },
- _getCloseBtn = function(type) {
- if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
- mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
- _currPopupType = type;
- }
- return mfp.currTemplate.closeBtn;
- },
- // Initialize Magnific Popup only when called at least once
- _checkInstance = function() {
- if(!$.magnificPopup.instance) {
- /*jshint -W020 */
- mfp = new MagnificPopup();
- mfp.init();
- $.magnificPopup.instance = mfp;
- }
- },
- // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
- supportsTransitions = function() {
- var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
- v = ['ms','O','Moz','Webkit']; // 'v' for vendor
-
- if( s['transition'] !== undefined ) {
- return true;
- }
-
- while( v.length ) {
- if( v.pop() + 'Transition' in s ) {
- return true;
- }
- }
-
- return false;
- };
-
-
-
-/**
- * Public functions
- */
-MagnificPopup.prototype = {
-
- constructor: MagnificPopup,
-
- /**
- * Initializes Magnific Popup plugin.
- * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
- */
- init: function() {
- var appVersion = navigator.appVersion;
- mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
- mfp.isAndroid = (/android/gi).test(appVersion);
- mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
- mfp.supportsTransition = supportsTransitions();
-
- // We disable fixed positioned lightbox on devices that don't handle it nicely.
- // If you know a better way of detecting this - let me know.
- mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
- _document = $(document);
-
- mfp.popupsCache = {};
- },
-
- /**
- * Opens popup
- * @param data [description]
- */
- open: function(data) {
-
- var i;
-
- if(data.isObj === false) {
- // convert jQuery collection to array to avoid conflicts later
- mfp.items = data.items.toArray();
-
- mfp.index = 0;
- var items = data.items,
- item;
- for(i = 0; i < items.length; i++) {
- item = items[i];
- if(item.parsed) {
- item = item.el[0];
- }
- if(item === data.el[0]) {
- mfp.index = i;
- break;
- }
- }
- } else {
- mfp.items = $.isArray(data.items) ? data.items : [data.items];
- mfp.index = data.index || 0;
- }
-
- // if popup is already opened - we just update the content
- if(mfp.isOpen) {
- mfp.updateItemHTML();
- return;
- }
-
- mfp.types = [];
- _wrapClasses = '';
- if(data.mainEl && data.mainEl.length) {
- mfp.ev = data.mainEl.eq(0);
- } else {
- mfp.ev = _document;
- }
-
- if(data.key) {
- if(!mfp.popupsCache[data.key]) {
- mfp.popupsCache[data.key] = {};
- }
- mfp.currTemplate = mfp.popupsCache[data.key];
- } else {
- mfp.currTemplate = {};
- }
-
-
-
- mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
- mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
-
- if(mfp.st.modal) {
- mfp.st.closeOnContentClick = false;
- mfp.st.closeOnBgClick = false;
- mfp.st.showCloseBtn = false;
- mfp.st.enableEscapeKey = false;
- }
-
-
- // Building markup
- // main containers are created only once
- if(!mfp.bgOverlay) {
-
- // Dark overlay
- mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
- mfp.close();
- });
-
- mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
- if(mfp._checkIfClose(e.target)) {
- mfp.close();
- }
- });
-
- mfp.container = _getEl('container', mfp.wrap);
- }
-
- mfp.contentContainer = _getEl('content');
- if(mfp.st.preloader) {
- mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
- }
-
-
- // Initializing modules
- var modules = $.magnificPopup.modules;
- for(i = 0; i < modules.length; i++) {
- var n = modules[i];
- n = n.charAt(0).toUpperCase() + n.slice(1);
- mfp['init'+n].call(mfp);
- }
- _mfpTrigger('BeforeOpen');
-
-
- if(mfp.st.showCloseBtn) {
- // Close button
- if(!mfp.st.closeBtnInside) {
- mfp.wrap.append( _getCloseBtn() );
- } else {
- _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
- values.close_replaceWith = _getCloseBtn(item.type);
- });
- _wrapClasses += ' mfp-close-btn-in';
- }
- }
-
- if(mfp.st.alignTop) {
- _wrapClasses += ' mfp-align-top';
- }
-
-
-
- if(mfp.fixedContentPos) {
- mfp.wrap.css({
- overflow: mfp.st.overflowY,
- overflowX: 'hidden',
- overflowY: mfp.st.overflowY
- });
- } else {
- mfp.wrap.css({
- top: _window.scrollTop(),
- position: 'absolute'
- });
- }
- if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
- mfp.bgOverlay.css({
- height: _document.height(),
- position: 'absolute'
- });
- }
-
-
-
- if(mfp.st.enableEscapeKey) {
- // Close on ESC key
- _document.on('keyup' + EVENT_NS, function(e) {
- if(e.keyCode === 27) {
- mfp.close();
- }
- });
- }
-
- _window.on('resize' + EVENT_NS, function() {
- mfp.updateSize();
- });
-
-
- if(!mfp.st.closeOnContentClick) {
- _wrapClasses += ' mfp-auto-cursor';
- }
-
- if(_wrapClasses)
- mfp.wrap.addClass(_wrapClasses);
-
-
- // this triggers recalculation of layout, so we get it once to not to trigger twice
- var windowHeight = mfp.wH = _window.height();
-
-
- var windowStyles = {};
-
- if( mfp.fixedContentPos ) {
- if(mfp._hasScrollBar(windowHeight)){
- var s = mfp._getScrollbarSize();
- if(s) {
- windowStyles.marginRight = s;
- }
- }
- }
-
- if(mfp.fixedContentPos) {
- if(!mfp.isIE7) {
- windowStyles.overflow = 'hidden';
- } else {
- // ie7 double-scroll bug
- $('body, html').css('overflow', 'hidden');
- }
- }
-
-
-
- var classesToadd = mfp.st.mainClass;
- if(mfp.isIE7) {
- classesToadd += ' mfp-ie7';
- }
- if(classesToadd) {
- mfp._addClassToMFP( classesToadd );
- }
-
- // add content
- mfp.updateItemHTML();
-
- _mfpTrigger('BuildControls');
-
- // remove scrollbar, add margin e.t.c
- $('html').css(windowStyles);
-
- // add everything to DOM
- mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
-
- // Save last focused element
- mfp._lastFocusedEl = document.activeElement;
-
- // Wait for next cycle to allow CSS transition
- setTimeout(function() {
-
- if(mfp.content) {
- mfp._addClassToMFP(READY_CLASS);
- mfp._setFocus();
- } else {
- // if content is not defined (not loaded e.t.c) we add class only for BG
- mfp.bgOverlay.addClass(READY_CLASS);
- }
-
- // Trap the focus in popup
- _document.on('focusin' + EVENT_NS, mfp._onFocusIn);
-
- }, 16);
-
- mfp.isOpen = true;
- mfp.updateSize(windowHeight);
- _mfpTrigger(OPEN_EVENT);
-
- return data;
- },
-
- /**
- * Closes the popup
- */
- close: function() {
- if(!mfp.isOpen) return;
- _mfpTrigger(BEFORE_CLOSE_EVENT);
-
- mfp.isOpen = false;
- // for CSS3 animation
- if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
- mfp._addClassToMFP(REMOVING_CLASS);
- setTimeout(function() {
- mfp._close();
- }, mfp.st.removalDelay);
- } else {
- mfp._close();
- }
- },
-
- /**
- * Helper for close() function
- */
- _close: function() {
- _mfpTrigger(CLOSE_EVENT);
-
- var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
-
- mfp.bgOverlay.detach();
- mfp.wrap.detach();
- mfp.container.empty();
-
- if(mfp.st.mainClass) {
- classesToRemove += mfp.st.mainClass + ' ';
- }
-
- mfp._removeClassFromMFP(classesToRemove);
-
- if(mfp.fixedContentPos) {
- var windowStyles = {marginRight: ''};
- if(mfp.isIE7) {
- $('body, html').css('overflow', '');
- } else {
- windowStyles.overflow = '';
- }
- $('html').css(windowStyles);
- }
-
- _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
- mfp.ev.off(EVENT_NS);
-
- // clean up DOM elements that aren't removed
- mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
- mfp.bgOverlay.attr('class', 'mfp-bg');
- mfp.container.attr('class', 'mfp-container');
-
- // remove close button from target element
- if(mfp.st.showCloseBtn &&
- (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
- if(mfp.currTemplate.closeBtn)
- mfp.currTemplate.closeBtn.detach();
- }
-
-
- if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
- $(mfp._lastFocusedEl).focus(); // put tab focus back
- }
- mfp.currItem = null;
- mfp.content = null;
- mfp.currTemplate = null;
- mfp.prevHeight = 0;
-
- _mfpTrigger(AFTER_CLOSE_EVENT);
- },
-
- updateSize: function(winHeight) {
-
- if(mfp.isIOS) {
- // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
- var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
- var height = window.innerHeight * zoomLevel;
- mfp.wrap.css('height', height);
- mfp.wH = height;
- } else {
- mfp.wH = winHeight || _window.height();
- }
- // Fixes #84: popup incorrectly positioned with position:relative on body
- if(!mfp.fixedContentPos) {
- mfp.wrap.css('height', mfp.wH);
- }
-
- _mfpTrigger('Resize');
-
- },
-
- /**
- * Set content of popup based on current index
- */
- updateItemHTML: function() {
- var item = mfp.items[mfp.index];
-
- // Detach and perform modifications
- mfp.contentContainer.detach();
-
- if(mfp.content)
- mfp.content.detach();
-
- if(!item.parsed) {
- item = mfp.parseEl( mfp.index );
- }
-
- var type = item.type;
-
- _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
- // BeforeChange event works like so:
- // _mfpOn('BeforeChange', function(e, prevType, newType) { });
-
- mfp.currItem = item;
-
- if(!mfp.currTemplate[type]) {
- var markup = mfp.st[type] ? mfp.st[type].markup : false;
-
- // allows to modify markup
- _mfpTrigger('FirstMarkupParse', markup);
-
- if(markup) {
- mfp.currTemplate[type] = $(markup);
- } else {
- // if there is no markup found we just define that template is parsed
- mfp.currTemplate[type] = true;
- }
- }
-
- if(_prevContentType && _prevContentType !== item.type) {
- mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
- }
-
- var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
- mfp.appendContent(newContent, type);
-
- item.preloaded = true;
-
- _mfpTrigger(CHANGE_EVENT, item);
- _prevContentType = item.type;
-
- // Append container back after its content changed
- mfp.container.prepend(mfp.contentContainer);
-
- _mfpTrigger('AfterChange');
- },
-
-
- /**
- * Set HTML content of popup
- */
- appendContent: function(newContent, type) {
- mfp.content = newContent;
-
- if(newContent) {
- if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
- mfp.currTemplate[type] === true) {
- // if there is no markup, we just append close button element inside
- if(!mfp.content.find('.mfp-close').length) {
- mfp.content.append(_getCloseBtn());
- }
- } else {
- mfp.content = newContent;
- }
- } else {
- mfp.content = '';
- }
-
- _mfpTrigger(BEFORE_APPEND_EVENT);
- mfp.container.addClass('mfp-'+type+'-holder');
-
- mfp.contentContainer.append(mfp.content);
- },
-
-
- /**
- * Creates Magnific Popup data object based on given data
- * @param {int} index Index of item to parse
- */
- parseEl: function(index) {
- var item = mfp.items[index],
- type;
-
- if(item.tagName) {
- item = { el: $(item) };
- } else {
- type = item.type;
- item = { data: item, src: item.src };
- }
-
- if(item.el) {
- var types = mfp.types;
-
- // check for 'mfp-TYPE' class
- for(var i = 0; i < types.length; i++) {
- if( item.el.hasClass('mfp-'+types[i]) ) {
- type = types[i];
- break;
- }
- }
-
- item.src = item.el.attr('data-mfp-src');
- if(!item.src) {
- item.src = item.el.attr('href');
- }
- }
-
- item.type = type || mfp.st.type || 'inline';
- item.index = index;
- item.parsed = true;
- mfp.items[index] = item;
- _mfpTrigger('ElementParse', item);
-
- return mfp.items[index];
- },
-
-
- /**
- * Initializes single popup or a group of popups
- */
- addGroup: function(el, options) {
- var eHandler = function(e) {
- e.mfpEl = this;
- mfp._openClick(e, el, options);
- };
-
- if(!options) {
- options = {};
- }
-
- var eName = 'click.magnificPopup';
- options.mainEl = el;
-
- if(options.items) {
- options.isObj = true;
- el.off(eName).on(eName, eHandler);
- } else {
- options.isObj = false;
- if(options.delegate) {
- el.off(eName).on(eName, options.delegate , eHandler);
- } else {
- options.items = el;
- el.off(eName).on(eName, eHandler);
- }
- }
- },
- _openClick: function(e, el, options) {
- var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
-
-
- if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
- return;
- }
-
- var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
-
- if(disableOn) {
- if($.isFunction(disableOn)) {
- if( !disableOn.call(mfp) ) {
- return true;
- }
- } else { // else it's number
- if( _window.width() < disableOn ) {
- return true;
- }
- }
- }
-
- if(e.type) {
- e.preventDefault();
-
- // This will prevent popup from closing if element is inside and popup is already opened
- if(mfp.isOpen) {
- e.stopPropagation();
- }
- }
-
- options.el = $(e.mfpEl);
- if(options.delegate) {
- options.items = el.find(options.delegate);
- }
- mfp.open(options);
- },
-
-
- /**
- * Updates text on preloader
- */
- updateStatus: function(status, text) {
-
- if(mfp.preloader) {
- if(_prevStatus !== status) {
- mfp.container.removeClass('mfp-s-'+_prevStatus);
- }
-
- if(!text && status === 'loading') {
- text = mfp.st.tLoading;
- }
-
- var data = {
- status: status,
- text: text
- };
- // allows to modify status
- _mfpTrigger('UpdateStatus', data);
-
- status = data.status;
- text = data.text;
-
- mfp.preloader.html(text);
-
- mfp.preloader.find('a').on('click', function(e) {
- e.stopImmediatePropagation();
- });
-
- mfp.container.addClass('mfp-s-'+status);
- _prevStatus = status;
- }
- },
-
-
- /*
- "Private" helpers that aren't private at all
- */
- // Check to close popup or not
- // "target" is an element that was clicked
- _checkIfClose: function(target) {
-
- if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
- return;
- }
-
- var closeOnContent = mfp.st.closeOnContentClick;
- var closeOnBg = mfp.st.closeOnBgClick;
-
- if(closeOnContent && closeOnBg) {
- return true;
- } else {
-
- // We close the popup if click is on close button or on preloader. Or if there is no content.
- if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
- return true;
- }
-
- // if click is outside the content
- if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
- if(closeOnBg) {
- // last check, if the clicked element is in DOM, (in case it's removed onclick)
- if( $.contains(document, target) ) {
- return true;
- }
- }
- } else if(closeOnContent) {
- return true;
- }
-
- }
- return false;
- },
- _addClassToMFP: function(cName) {
- mfp.bgOverlay.addClass(cName);
- mfp.wrap.addClass(cName);
- },
- _removeClassFromMFP: function(cName) {
- this.bgOverlay.removeClass(cName);
- mfp.wrap.removeClass(cName);
- },
- _hasScrollBar: function(winHeight) {
- return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
- },
- _setFocus: function() {
- (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
- },
- _onFocusIn: function(e) {
- if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
- mfp._setFocus();
- return false;
- }
- },
- _parseMarkup: function(template, values, item) {
- var arr;
- if(item.data) {
- values = $.extend(item.data, values);
- }
- _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
-
- $.each(values, function(key, value) {
- if(value === undefined || value === false) {
- return true;
- }
- arr = key.split('_');
- if(arr.length > 1) {
- var el = template.find(EVENT_NS + '-'+arr[0]);
-
- if(el.length > 0) {
- var attr = arr[1];
- if(attr === 'replaceWith') {
- if(el[0] !== value[0]) {
- el.replaceWith(value);
- }
- } else if(attr === 'img') {
- if(el.is('img')) {
- el.attr('src', value);
- } else {
- el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
- }
- } else {
- el.attr(arr[1], value);
- }
- }
-
- } else {
- template.find(EVENT_NS + '-'+key).html(value);
- }
- });
- },
-
- _getScrollbarSize: function() {
- // thx David
- if(mfp.scrollbarSize === undefined) {
- var scrollDiv = document.createElement("div");
- scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
- document.body.appendChild(scrollDiv);
- mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- }
- return mfp.scrollbarSize;
- }
-
-}; /* MagnificPopup core prototype end */
-
-
-
-
-/**
- * Public static functions
- */
-$.magnificPopup = {
- instance: null,
- proto: MagnificPopup.prototype,
- modules: [],
-
- open: function(options, index) {
- _checkInstance();
-
- if(!options) {
- options = {};
- } else {
- options = $.extend(true, {}, options);
- }
-
- options.isObj = true;
- options.index = index || 0;
- return this.instance.open(options);
- },
-
- close: function() {
- return $.magnificPopup.instance && $.magnificPopup.instance.close();
- },
-
- registerModule: function(name, module) {
- if(module.options) {
- $.magnificPopup.defaults[name] = module.options;
- }
- $.extend(this.proto, module.proto);
- this.modules.push(name);
- },
-
- defaults: {
-
- // Info about options is in docs:
- // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
-
- disableOn: 0,
-
- key: null,
-
- midClick: false,
-
- mainClass: '',
-
- preloader: true,
-
- focus: '', // CSS selector of input to focus after popup is opened
-
- closeOnContentClick: false,
-
- closeOnBgClick: true,
-
- closeBtnInside: true,
-
- showCloseBtn: true,
-
- enableEscapeKey: true,
-
- modal: false,
-
- alignTop: false,
-
- removalDelay: 0,
-
- prependTo: null,
-
- fixedContentPos: 'auto',
-
- fixedBgPos: 'auto',
-
- overflowY: 'auto',
-
- closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
-
- tClose: 'Close (Esc)',
-
- tLoading: 'Loading...',
-
- autoFocusLast: true
-
- }
-};
-
-
-
-$.fn.magnificPopup = function(options) {
- _checkInstance();
-
- var jqEl = $(this);
-
- // We call some API method of first param is a string
- if (typeof options === "string" ) {
-
- if(options === 'open') {
- var items,
- itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
- index = parseInt(arguments[1], 10) || 0;
-
- if(itemOpts.items) {
- items = itemOpts.items[index];
- } else {
- items = jqEl;
- if(itemOpts.delegate) {
- items = items.find(itemOpts.delegate);
- }
- items = items.eq( index );
- }
- mfp._openClick({mfpEl:items}, jqEl, itemOpts);
- } else {
- if(mfp.isOpen)
- mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
- }
-
- } else {
- // clone options obj
- options = $.extend(true, {}, options);
-
- /*
- * As Zepto doesn't support .data() method for objects
- * and it works only in normal browsers
- * we assign "options" object directly to the DOM element. FTW!
- */
- if(_isJQ) {
- jqEl.data('magnificPopup', options);
- } else {
- jqEl[0].magnificPopup = options;
- }
-
- mfp.addGroup(jqEl, options);
-
- }
- return jqEl;
-};
-
-/*>>core*/
-
-/*>>inline*/
-
-var INLINE_NS = 'inline',
- _hiddenClass,
- _inlinePlaceholder,
- _lastInlineElement,
- _putInlineElementsBack = function() {
- if(_lastInlineElement) {
- _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
- _lastInlineElement = null;
- }
- };
-
-$.magnificPopup.registerModule(INLINE_NS, {
- options: {
- hiddenClass: 'hide', // will be appended with `mfp-` prefix
- markup: '',
- tNotFound: 'Content not found'
- },
- proto: {
-
- initInline: function() {
- mfp.types.push(INLINE_NS);
-
- _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
- _putInlineElementsBack();
- });
- },
-
- getInline: function(item, template) {
-
- _putInlineElementsBack();
-
- if(item.src) {
- var inlineSt = mfp.st.inline,
- el = $(item.src);
-
- if(el.length) {
-
- // If target element has parent - we replace it with placeholder and put it back after popup is closed
- var parent = el[0].parentNode;
- if(parent && parent.tagName) {
- if(!_inlinePlaceholder) {
- _hiddenClass = inlineSt.hiddenClass;
- _inlinePlaceholder = _getEl(_hiddenClass);
- _hiddenClass = 'mfp-'+_hiddenClass;
- }
- // replace target inline element with placeholder
- _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
- }
-
- mfp.updateStatus('ready');
- } else {
- mfp.updateStatus('error', inlineSt.tNotFound);
- el = $('<div>');
- }
-
- item.inlineElement = el;
- return el;
- }
-
- mfp.updateStatus('ready');
- mfp._parseMarkup(template, {}, item);
- return template;
- }
- }
-});
-
-/*>>inline*/
-
-/*>>ajax*/
-var AJAX_NS = 'ajax',
- _ajaxCur,
- _removeAjaxCursor = function() {
- if(_ajaxCur) {
- $(document.body).removeClass(_ajaxCur);
- }
- },
- _destroyAjaxRequest = function() {
- _removeAjaxCursor();
- if(mfp.req) {
- mfp.req.abort();
- }
- };
-
-$.magnificPopup.registerModule(AJAX_NS, {
-
- options: {
- settings: null,
- cursor: 'mfp-ajax-cur',
- tError: '<a href="%url%">The content</a> could not be loaded.'
- },
-
- proto: {
- initAjax: function() {
- mfp.types.push(AJAX_NS);
- _ajaxCur = mfp.st.ajax.cursor;
-
- _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
- _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
- },
- getAjax: function(item) {
-
- if(_ajaxCur) {
- $(document.body).addClass(_ajaxCur);
- }
-
- mfp.updateStatus('loading');
-
- var opts = $.extend({
- url: item.src,
- success: function(data, textStatus, jqXHR) {
- var temp = {
- data:data,
- xhr:jqXHR
- };
-
- _mfpTrigger('ParseAjax', temp);
-
- mfp.appendContent( $(temp.data), AJAX_NS );
-
- item.finished = true;
-
- _removeAjaxCursor();
-
- mfp._setFocus();
-
- setTimeout(function() {
- mfp.wrap.addClass(READY_CLASS);
- }, 16);
-
- mfp.updateStatus('ready');
-
- _mfpTrigger('AjaxContentAdded');
- },
- error: function() {
- _removeAjaxCursor();
- item.finished = item.loadError = true;
- mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
- }
- }, mfp.st.ajax.settings);
-
- mfp.req = $.ajax(opts);
-
- return '';
- }
- }
-});
-
-/*>>ajax*/
-
-/*>>image*/
-var _imgInterval,
- _getTitle = function(item) {
- if(item.data && item.data.title !== undefined)
- return item.data.title;
-
- var src = mfp.st.image.titleSrc;
-
- if(src) {
- if($.isFunction(src)) {
- return src.call(mfp, item);
- } else if(item.el) {
- return item.el.attr(src) || '';
- }
- }
- return '';
- };
-
-$.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: true,
- tError: '<a href="%url%">The image</a> could not be loaded.'
- },
-
- proto: {
- initImage: function() {
- var imgSt = mfp.st.image,
- ns = '.image';
-
- mfp.types.push('image');
-
- _mfpOn(OPEN_EVENT+ns, function() {
- if(mfp.currItem.type === 'image' && imgSt.cursor) {
- $(document.body).addClass(imgSt.cursor);
- }
- });
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- if(imgSt.cursor) {
- $(document.body).removeClass(imgSt.cursor);
- }
- _window.off('resize' + EVENT_NS);
- });
-
- _mfpOn('Resize'+ns, mfp.resizeImage);
- if(mfp.isLowIE) {
- _mfpOn('AfterChange', mfp.resizeImage);
- }
- },
- resizeImage: function() {
- var item = mfp.currItem;
- if(!item || !item.img) return;
-
- if(mfp.st.image.verticalFit) {
- var decr = 0;
- // fix box-sizing in ie7/8
- if(mfp.isLowIE) {
- decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
- }
- item.img.css('max-height', mfp.wH-decr);
- }
- },
- _onImageHasSize: function(item) {
- if(item.img) {
-
- item.hasSize = true;
-
- if(_imgInterval) {
- clearInterval(_imgInterval);
- }
-
- item.isCheckingImgSize = false;
-
- _mfpTrigger('ImageHasSize', item);
-
- if(item.imgHidden) {
- if(mfp.content)
- mfp.content.removeClass('mfp-loading');
-
- item.imgHidden = false;
- }
-
- }
- },
-
- /**
- * Function that loops until the image has size to display elements that rely on it asap
- */
- findImageSize: function(item) {
-
- var counter = 0,
- img = item.img[0],
- mfpSetInterval = function(delay) {
-
- if(_imgInterval) {
- clearInterval(_imgInterval);
- }
- // decelerating interval that checks for size of an image
- _imgInterval = setInterval(function() {
- if(img.naturalWidth > 0) {
- mfp._onImageHasSize(item);
- return;
- }
-
- if(counter > 200) {
- clearInterval(_imgInterval);
- }
-
- counter++;
- if(counter === 3) {
- mfpSetInterval(10);
- } else if(counter === 40) {
- mfpSetInterval(50);
- } else if(counter === 100) {
- mfpSetInterval(500);
- }
- }, delay);
- };
-
- mfpSetInterval(1);
- },
-
- getImage: function(item, template) {
-
- var guard = 0,
-
- // image load complete handler
- onLoadComplete = function() {
- if(item) {
- if (item.img[0].complete) {
- item.img.off('.mfploader');
-
- if(item === mfp.currItem){
- mfp._onImageHasSize(item);
-
- mfp.updateStatus('ready');
- }
-
- item.hasSize = true;
- item.loaded = true;
-
- _mfpTrigger('ImageLoadComplete');
-
- }
- else {
- // if image complete check fails 200 times (20 sec), we assume that there was an error.
- guard++;
- if(guard < 200) {
- setTimeout(onLoadComplete,100);
- } else {
- onLoadError();
- }
- }
- }
- },
-
- // image error handler
- onLoadError = function() {
- if(item) {
- item.img.off('.mfploader');
- if(item === mfp.currItem){
- mfp._onImageHasSize(item);
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
- }
-
- item.hasSize = true;
- item.loaded = true;
- item.loadError = true;
- }
- },
- imgSt = mfp.st.image;
-
-
- var el = template.find('.mfp-img');
- if(el.length) {
- var img = document.createElement('img');
- img.className = 'mfp-img';
- if(item.el && item.el.find('img').length) {
- img.alt = item.el.find('img').attr('alt');
- }
- item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
- img.src = item.src;
-
- // without clone() "error" event is not firing when IMG is replaced by new IMG
- // TODO: find a way to avoid such cloning
- if(el.is('img')) {
- item.img = item.img.clone();
- }
-
- img = item.img[0];
- if(img.naturalWidth > 0) {
- item.hasSize = true;
- } else if(!img.width) {
- item.hasSize = false;
- }
- }
-
- mfp._parseMarkup(template, {
- title: _getTitle(item),
- img_replaceWith: item.img
- }, item);
-
- mfp.resizeImage();
-
- if(item.hasSize) {
- if(_imgInterval) clearInterval(_imgInterval);
-
- if(item.loadError) {
- template.addClass('mfp-loading');
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
- } else {
- template.removeClass('mfp-loading');
- mfp.updateStatus('ready');
- }
- return template;
- }
-
- mfp.updateStatus('loading');
- item.loading = true;
-
- if(!item.hasSize) {
- item.imgHidden = true;
- template.addClass('mfp-loading');
- mfp.findImageSize(item);
- }
-
- return template;
- }
- }
-});
-
-/*>>image*/
-
-/*>>zoom*/
-var hasMozTransform,
- getHasMozTransform = function() {
- if(hasMozTransform === undefined) {
- hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
- }
- return hasMozTransform;
- };
-
-$.magnificPopup.registerModule('zoom', {
-
- options: {
- enabled: false,
- easing: 'ease-in-out',
- duration: 300,
- opener: function(element) {
- return element.is('img') ? element : element.find('img');
- }
- },
-
- proto: {
-
- initZoom: function() {
- var zoomSt = mfp.st.zoom,
- ns = '.zoom',
- image;
-
- if(!zoomSt.enabled || !mfp.supportsTransition) {
- return;
- }
-
- var duration = zoomSt.duration,
- getElToAnimate = function(image) {
- var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
- transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
- cssObj = {
- position: 'fixed',
- zIndex: 9999,
- left: 0,
- top: 0,
- '-webkit-backface-visibility': 'hidden'
- },
- t = 'transition';
-
- cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
-
- newImg.css(cssObj);
- return newImg;
- },
- showMainContent = function() {
- mfp.content.css('visibility', 'visible');
- },
- openTimeout,
- animatedImg;
-
- _mfpOn('BuildControls'+ns, function() {
- if(mfp._allowZoom()) {
-
- clearTimeout(openTimeout);
- mfp.content.css('visibility', 'hidden');
-
- // Basically, all code below does is clones existing image, puts in on top of the current one and animated it
-
- image = mfp._getItemToZoom();
-
- if(!image) {
- showMainContent();
- return;
- }
-
- animatedImg = getElToAnimate(image);
-
- animatedImg.css( mfp._getOffset() );
-
- mfp.wrap.append(animatedImg);
-
- openTimeout = setTimeout(function() {
- animatedImg.css( mfp._getOffset( true ) );
- openTimeout = setTimeout(function() {
-
- showMainContent();
-
- setTimeout(function() {
- animatedImg.remove();
- image = animatedImg = null;
- _mfpTrigger('ZoomAnimationEnded');
- }, 16); // avoid blink when switching images
-
- }, duration); // this timeout equals animation duration
-
- }, 16); // by adding this timeout we avoid short glitch at the beginning of animation
-
-
- // Lots of timeouts...
- }
- });
- _mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
- if(mfp._allowZoom()) {
-
- clearTimeout(openTimeout);
-
- mfp.st.removalDelay = duration;
-
- if(!image) {
- image = mfp._getItemToZoom();
- if(!image) {
- return;
- }
- animatedImg = getElToAnimate(image);
- }
-
- animatedImg.css( mfp._getOffset(true) );
- mfp.wrap.append(animatedImg);
- mfp.content.css('visibility', 'hidden');
-
- setTimeout(function() {
- animatedImg.css( mfp._getOffset() );
- }, 16);
- }
-
- });
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- if(mfp._allowZoom()) {
- showMainContent();
- if(animatedImg) {
- animatedImg.remove();
- }
- image = null;
- }
- });
- },
-
- _allowZoom: function() {
- return mfp.currItem.type === 'image';
- },
-
- _getItemToZoom: function() {
- if(mfp.currItem.hasSize) {
- return mfp.currItem.img;
- } else {
- return false;
- }
- },
-
- // Get element postion relative to viewport
- _getOffset: function(isLarge) {
- var el;
- if(isLarge) {
- el = mfp.currItem.img;
- } else {
- el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
- }
-
- var offset = el.offset();
- var paddingTop = parseInt(el.css('padding-top'),10);
- var paddingBottom = parseInt(el.css('padding-bottom'),10);
- offset.top -= ( $(window).scrollTop() - paddingTop );
-
-
- /*
-
- Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
-
- */
- var obj = {
- width: el.width(),
- // fix Zepto height+padding issue
- height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
- };
-
- // I hate to do this, but there is no another option
- if( getHasMozTransform() ) {
- obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
- } else {
- obj.left = offset.left;
- obj.top = offset.top;
- }
- return obj;
- }
-
- }
-});
-
-
-
-/*>>zoom*/
-
-/*>>iframe*/
-
-var IFRAME_NS = 'iframe',
- _emptyPage = '//about:blank',
-
- _fixIframeBugs = function(isShowing) {
- if(mfp.currTemplate[IFRAME_NS]) {
- var el = mfp.currTemplate[IFRAME_NS].find('iframe');
- if(el.length) {
- // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
- if(!isShowing) {
- el[0].src = _emptyPage;
- }
-
- // IE8 black screen bug fix
- if(mfp.isIE8) {
- el.css('display', isShowing ? 'block' : 'none');
- }
- }
- }
- };
-
-$.magnificPopup.registerModule(IFRAME_NS, {
-
- 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',
-
- // we don't care and support only one default type of URL by default
- 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() {
- mfp.types.push(IFRAME_NS);
-
- _mfpOn('BeforeChange', function(e, prevType, newType) {
- if(prevType !== newType) {
- if(prevType === IFRAME_NS) {
- _fixIframeBugs(); // iframe if removed
- } else if(newType === IFRAME_NS) {
- _fixIframeBugs(true); // iframe is showing
- }
- }// else {
- // iframe source is switched, don't do anything
- //}
- });
-
- _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
- _fixIframeBugs();
- });
- },
-
- getIframe: function(item, template) {
- var embedSrc = item.src;
- var iframeSt = mfp.st.iframe;
-
- $.each(iframeSt.patterns, function() {
- if(embedSrc.indexOf( this.index ) > -1) {
- if(this.id) {
- if(typeof this.id === 'string') {
- embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
- } else {
- embedSrc = this.id.call( this, embedSrc );
- }
- }
- embedSrc = this.src.replace('%id%', embedSrc );
- return false; // break;
- }
- });
-
- var dataObj = {};
- if(iframeSt.srcAction) {
- dataObj[iframeSt.srcAction] = embedSrc;
- }
- mfp._parseMarkup(template, dataObj, item);
-
- mfp.updateStatus('ready');
-
- return template;
- }
- }
-});
-
-
-
-/*>>iframe*/
-
-/*>>gallery*/
-/**
- * Get looped index depending on number of slides
- */
-var _getLoopedId = function(index) {
- var numSlides = mfp.items.length;
- if(index > numSlides - 1) {
- return index - numSlides;
- } else if(index < 0) {
- return numSlides + index;
- }
- return index;
- },
- _replaceCurrTotal = function(text, curr, total) {
- return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
- };
-
-$.magnificPopup.registerModule('gallery', {
-
- options: {
- enabled: false,
- arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
- preload: [0,2],
- navigateByImgClick: true,
- arrows: true,
-
- tPrev: 'Previous (Left arrow key)',
- tNext: 'Next (Right arrow key)',
- tCounter: '%curr% of %total%'
- },
-
- proto: {
- initGallery: function() {
-
- var gSt = mfp.st.gallery,
- ns = '.mfp-gallery';
-
- mfp.direction = true; // true - next, false - prev
-
- if(!gSt || !gSt.enabled ) return false;
-
- _wrapClasses += ' mfp-gallery';
-
- _mfpOn(OPEN_EVENT+ns, function() {
-
- if(gSt.navigateByImgClick) {
- mfp.wrap.on('click'+ns, '.mfp-img', function() {
- if(mfp.items.length > 1) {
- mfp.next();
- return false;
- }
- });
- }
-
- _document.on('keydown'+ns, function(e) {
- if (e.keyCode === 37) {
- mfp.prev();
- } else if (e.keyCode === 39) {
- mfp.next();
- }
- });
- });
-
- _mfpOn('UpdateStatus'+ns, function(e, data) {
- if(data.text) {
- data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
- }
- });
-
- _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
- var l = mfp.items.length;
- values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
- });
-
- _mfpOn('BuildControls' + ns, function() {
- if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
- var markup = gSt.arrowMarkup,
- arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
- arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
-
- arrowLeft.click(function() {
- mfp.prev();
- });
- arrowRight.click(function() {
- mfp.next();
- });
-
- mfp.container.append(arrowLeft.add(arrowRight));
- }
- });
-
- _mfpOn(CHANGE_EVENT+ns, function() {
- if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
-
- mfp._preloadTimeout = setTimeout(function() {
- mfp.preloadNearbyImages();
- mfp._preloadTimeout = null;
- }, 16);
- });
-
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- _document.off(ns);
- mfp.wrap.off('click'+ns);
- mfp.arrowRight = mfp.arrowLeft = null;
- });
-
- },
- next: function() {
- mfp.direction = true;
- mfp.index = _getLoopedId(mfp.index + 1);
- mfp.updateItemHTML();
- },
- prev: function() {
- mfp.direction = false;
- mfp.index = _getLoopedId(mfp.index - 1);
- mfp.updateItemHTML();
- },
- goTo: function(newIndex) {
- mfp.direction = (newIndex >= mfp.index);
- mfp.index = newIndex;
- mfp.updateItemHTML();
- },
- preloadNearbyImages: function() {
- var p = mfp.st.gallery.preload,
- preloadBefore = Math.min(p[0], mfp.items.length),
- preloadAfter = Math.min(p[1], mfp.items.length),
- i;
-
- for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
- mfp._preloadItem(mfp.index+i);
- }
- for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
- mfp._preloadItem(mfp.index-i);
- }
- },
- _preloadItem: function(index) {
- index = _getLoopedId(index);
-
- if(mfp.items[index].preloaded) {
- return;
- }
-
- var item = mfp.items[index];
- if(!item.parsed) {
- item = mfp.parseEl( index );
- }
-
- _mfpTrigger('LazyLoad', item);
-
- if(item.type === 'image') {
- item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
- item.hasSize = true;
- }).on('error.mfploader', function() {
- item.hasSize = true;
- item.loadError = true;
- _mfpTrigger('LazyLoadError', item);
- }).attr('src', item.src);
- }
-
-
- item.preloaded = true;
- }
- }
-});
-
-/*>>gallery*/
-
-/*>>retina*/
-
-var RETINA_NS = 'retina';
-
-$.magnificPopup.registerModule(RETINA_NS, {
- options: {
- replaceSrc: function(item) {
- return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
- },
- ratio: 1 // Function or number. Set to 1 to disable.
- },
- proto: {
- initRetina: function() {
- if(window.devicePixelRatio > 1) {
-
- var st = mfp.st.retina,
- ratio = st.ratio;
-
- ratio = !isNaN(ratio) ? ratio : ratio();
-
- if(ratio > 1) {
- _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
- item.img.css({
- 'max-width': item.img[0].naturalWidth / ratio,
- 'width': '100%'
- });
- });
- _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
- item.src = st.replaceSrc(item, ratio);
- });
- }
- }
-
- }
- }
-});
-
-/*>>retina*/
- _checkInstance(); })); \ No newline at end of file
diff --git a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js
deleted file mode 100644
index 6ee3a3b..0000000
--- a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! Magnific Popup - v1.1.0 - 2016-02-20
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2016 Dmitry Semenov; */
-!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.isLowIE=b.isIE8=document.all&&!document.addEventListener,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="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=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.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({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.st.autoFocusLast&&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),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!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||c.altKey||c.shiftKey)){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(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_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">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},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";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);e.click(function(){b.prev()}),f.click(function(){b.next()}),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.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)}))}}}}),A()}); \ No newline at end of file
diff --git a/build/js/jsxc/lib/otr/lib/ake.js b/build/js/jsxc/lib/otr/lib/ake.js
new file mode 100644
index 0000000..c76c2a4
--- /dev/null
+++ b/build/js/jsxc/lib/otr/lib/ake.js
@@ -0,0 +1,399 @@
+;(function () {
+ "use strict";
+
+ var root = this
+
+ var CryptoJS, BigInt, CONST, HLP, DSA
+ if (typeof module !== 'undefined' && 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')
+ } else {
+ root.OTR.AKE = AKE
+ CryptoJS = root.CryptoJS
+ BigInt = root.BigInt
+ CONST = root.OTR.CONST
+ HLP = root.OTR.HLP
+ DSA = root.DSA
+ }
+
+ // diffie-hellman modulus
+ // see group 5, RFC 3526
+ var N = BigInt.str2bigInt(CONST.N, 16)
+ var N_MINUS_2 = BigInt.sub(N, BigInt.str2bigInt('2', 10))
+
+ function hMac(gx, gy, pk, kid, m) {
+ var pass = CryptoJS.enc.Latin1.parse(m)
+ var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, pass)
+ 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))
+ return (hmac.finalize()).toString(CryptoJS.enc.Latin1)
+ }
+
+ // AKE constructor
+ function AKE(otr) {
+ if (!(this instanceof AKE)) return new AKE(otr)
+
+ // otr instance
+ this.otr = otr
+
+ // our keys
+ this.our_dh = otr.our_old_dh
+ this.our_keyid = otr.our_keyid - 1
+
+ // their keys
+ this.their_y = null
+ this.their_keyid = null
+ this.their_priv_pk = null
+
+ // state
+ this.ssid = null
+ this.transmittedRS = false
+ this.r = null
+
+ // bind methods
+ var self = this
+ ;['sendMsg'].forEach(function (meth) {
+ self[meth] = self[meth].bind(self)
+ })
+ }
+
+ AKE.prototype = {
+
+ constructor: AKE,
+
+ createKeys: function(g) {
+ var s = BigInt.powMod(g, this.our_dh.privateKey, N)
+ var secbytes = HLP.packMPI(s)
+ this.ssid = HLP.mask(HLP.h2('\x00', secbytes), 0, 64) // first 64-bits
+ var tmp = HLP.h2('\x01', secbytes)
+ this.c = HLP.mask(tmp, 0, 128) // first 128-bits
+ this.c_prime = HLP.mask(tmp, 128, 128) // second 128-bits
+ this.m1 = HLP.h2('\x02', secbytes)
+ this.m2 = HLP.h2('\x03', secbytes)
+ this.m1_prime = HLP.h2('\x04', secbytes)
+ this.m2_prime = HLP.h2('\x05', secbytes)
+ },
+
+ verifySignMac: function (mac, aesctr, m2, c, their_y, our_dh_pk, m1, ctr) {
+ // verify mac
+ var vmac = HLP.makeMac(aesctr, m2)
+ if (!HLP.compare(mac, vmac))
+ return ['MACs do not match.']
+
+ // decrypt x
+ 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)
+ var pub = DSA.parsePublic(x[0])
+
+ var r = HLP.bits2bigInt(x[2].substring(0, 20))
+ var s = HLP.bits2bigInt(x[2].substring(20))
+
+ // verify sign m
+ if (!DSA.verify(pub, m, r, s)) return ['Cannot verify signature of m.']
+
+ return [null, HLP.readLen(x[1]), pub]
+ },
+
+ makeM: function (their_y, m1, c, m2) {
+ var pk = this.otr.priv.packPublic()
+ var kid = HLP.packINT(this.our_keyid)
+ var 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) // pad to 20 bytes
+ msg += BigInt.bigInt2bits(m[1], 20)
+ msg = CryptoJS.enc.Latin1.parse(msg)
+ var aesctr = HLP.packData(HLP.encryptAes(msg, c, HLP.packCtr(0)))
+ var mac = HLP.makeMac(aesctr, m2)
+ return aesctr + mac
+ },
+
+ akeSuccess: function (version) {
+ HLP.debug.call(this.otr, 'success')
+
+ if (BigInt.equals(this.their_y, this.our_dh.publicKey))
+ return 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
+
+ if (!(
+ (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
+
+ // rotate keys
+ 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 ]
+
+ }
+
+ // ake info
+ this.otr.ssid = this.ssid
+ this.otr.transmittedRS = this.transmittedRS
+ this.otr_version = version
+
+ // go encrypted
+ this.otr.authstate = CONST.AUTHSTATE_NONE
+ this.otr.msgstate = CONST.MSGSTATE_ENCRYPTED
+
+ // null out values
+ this.r = null
+ this.myhashed = null
+ this.dhcommit = null
+ this.encrypted = null
+ this.hashed = null
+
+ this.otr.trigger('status', [CONST.STATUS_AKE_SUCCESS])
+
+ // send stored msgs
+ this.otr.sendStored()
+ },
+
+ handleAKE: function (msg) {
+ var send, vsm, type
+ var version = msg.version
+
+ switch (msg.type) {
+
+ case '\x02':
+ HLP.debug.call(this.otr, 'd-h key message')
+
+ msg = HLP.splitype(['DATA', 'DATA'], msg.msg)
+
+ if (this.otr.authstate === CONST.AUTHSTATE_AWAITING_DHKEY) {
+ var ourHash = HLP.readMPI(this.myhashed)
+ var theirHash = HLP.readMPI(msg[1])
+ if (BigInt.greater(ourHash, theirHash)) {
+ type = '\x02'
+ send = this.dhcommit
+ break // ignore
+ } else {
+ // forget
+ this.our_dh = this.otr.dh()
+ this.otr.authstate = CONST.AUTHSTATE_NONE
+ this.r = null
+ this.myhashed = null
+ }
+ } else if (
+ 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 = '\x0a'
+ send = HLP.packMPI(this.our_dh.publicKey)
+ break
+
+ case '\x0a':
+ HLP.debug.call(this.otr, 'reveal signature message')
+
+ msg = HLP.splitype(['MPI'], msg.msg)
+
+ if (this.otr.authstate !== CONST.AUTHSTATE_AWAITING_DHKEY) {
+ if (this.otr.authstate === CONST.AUTHSTATE_AWAITING_SIG) {
+ if (!BigInt.equals(this.their_y, HLP.readMPI(msg[0]))) return
+ } else {
+ return // ignore
+ }
+ }
+
+ this.otr.authstate = CONST.AUTHSTATE_AWAITING_SIG
+
+ this.their_y = HLP.readMPI(msg[0])
+
+ // verify gy is legal 2 <= gy <= N-2
+ if (!HLP.checkGroup(this.their_y, N_MINUS_2))
+ return this.otr.error('Illegal g^y.')
+
+ this.createKeys(this.their_y)
+
+ type = '\x11'
+ 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 '\x11':
+ HLP.debug.call(this.otr, 'signature message')
+
+ if (this.otr.authstate !== CONST.AUTHSTATE_AWAITING_REVEALSIG)
+ return // ignore
+
+ msg = HLP.splitype(['DATA', 'DATA', 'MAC'], msg.msg)
+
+ this.r = HLP.readMPI(msg[0])
+
+ // decrypt their_y
+ 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)
+
+ // verify hash
+ var hash = CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi))
+
+ if (!HLP.compare(this.hashed, hash.toString(CryptoJS.enc.Latin1)))
+ return this.otr.error('Hashed g^x does not match.')
+
+ // verify gx is legal 2 <= g^x <= N-2
+ if (!HLP.checkGroup(this.their_y, N_MINUS_2))
+ return this.otr.error('Illegal g^x.')
+
+ 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)
+ )
+ if (vsm[0]) return this.otr.error(vsm[0])
+
+ // store their key
+ 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, '\x12', send)
+ this.akeSuccess(version)
+ return
+
+ case '\x12':
+ HLP.debug.call(this.otr, 'data message')
+
+ if (this.otr.authstate !== CONST.AUTHSTATE_AWAITING_SIG)
+ return // ignore
+
+ 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)
+ )
+ if (vsm[0]) return this.otr.error(vsm[0])
+
+ // store their key
+ 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 = true
+ this.akeSuccess(version)
+ return
+
+ default:
+ return // ignore
+
+ }
+
+ this.sendMsg(version, type, send)
+ },
+
+ sendMsg: function (version, type, msg) {
+ var send = version + type
+ var v3 = (version === CONST.OTR_VERSION_3)
+
+ // instance tags for v3
+ if (v3) {
+ HLP.debug.call(this.otr, 'instance tags')
+ send += this.otr.our_instance_tag
+ send += this.otr.their_instance_tag
+ }
+
+ send += msg
+
+ // fragment message if necessary
+ send = HLP.wrapMsg(
+ send
+ , this.otr.fragment_size
+ , v3
+ , this.otr.our_instance_tag
+ , this.otr.their_instance_tag
+ )
+ if (send[0]) return this.otr.error(send[0])
+
+ 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, '\x02', this.dhcommit)
+ }
+
+ }
+
+}).call(this) \ No newline at end of file
diff --git a/build/js/jsxc/lib/otr/lib/otr.js b/build/js/jsxc/lib/otr/lib/otr.js
new file mode 100644
index 0000000..ca4705d
--- /dev/null
+++ b/build/js/jsxc/lib/otr/lib/otr.js
@@ -0,0 +1,746 @@
+;(function () {
+ "use strict";
+
+ var root = this
+
+ var CryptoJS, BigInt, EventEmitter, Worker, SMWPath
+ , CONST, HLP, Parse, AKE, SM, DSA
+ if (typeof module !== 'undefined' && 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')
+ // expose CONST for consistency with docs
+ OTR.CONST = CONST
+ } else {
+ // copy over and expose internals
+ 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
+ }
+
+ // diffie-hellman modulus and generator
+ // see group 5, RFC 3526
+ var G = BigInt.str2bigInt(CONST.G, 10)
+ var N = BigInt.str2bigInt(CONST.N, 16)
+
+ // JavaScript integers
+ var MAX_INT = Math.pow(2, 53) - 1 // doubles
+ var MAX_UINT = Math.pow(2, 31) - 1 // bitwise operators
+
+ // an internal callback
+ function OTRCB(cb) {
+ this.cb = cb
+ }
+
+ // OTR contructor
+ function OTR(options) {
+ if (!(this instanceof OTR)) return new OTR(options)
+
+ // options
+ options = options || {}
+
+ // private keys
+ if (options.priv && !(options.priv instanceof DSA))
+ throw new Error('Requires long-lived DSA key.')
+
+ this.priv = options.priv ? options.priv : new DSA()
+
+ this.fragment_size = options.fragment_size || 0
+ if (this.fragment_size < 0)
+ throw new Error('Fragment size must be a positive integer.')
+
+ this.send_interval = options.send_interval || 0
+ if (this.send_interval < 0)
+ throw new Error('Send interval must be a positive integer.')
+
+ this.outgoing = []
+
+ // instance tag
+ this.our_instance_tag = options.instance_tag || OTR.makeInstanceTag()
+
+ // debug
+ this.debug = !!options.debug
+
+ // smp in webworker options
+ // this is still experimental and undocumented
+ this.smw = options.smw
+
+ // init vals
+ this.init()
+
+ // bind methods
+ var self = this
+ ;['sendMsg', 'receiveMsg'].forEach(function (meth) {
+ self[meth] = self[meth].bind(self)
+ })
+
+ EventEmitter.call(this)
+ }
+
+ // inherit from EE
+ HLP.extend(OTR, EventEmitter)
+
+ // add to prototype
+ OTR.prototype.init = function () {
+
+ this.msgstate = CONST.MSGSTATE_PLAINTEXT
+ this.authstate = CONST.AUTHSTATE_NONE
+
+ this.ALLOW_V2 = true
+ this.ALLOW_V3 = true
+
+ this.REQUIRE_ENCRYPTION = false
+ this.SEND_WHITESPACE_TAG = false
+ this.WHITESPACE_START_AKE = false
+ this.ERROR_START_AKE = false
+
+ Parse.initFragment(this)
+
+ // their keys
+ 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'
+
+ // our keys
+ this.our_dh = this.dh()
+ this.our_old_dh = this.dh()
+ this.our_keyid = 2
+
+ // session keys
+ this.sessKeys = [ new Array(2), new Array(2) ]
+
+ // saved
+ this.storedMgs = []
+ this.oldMacKeys = []
+
+ // smp
+ this.sm = null // initialized after AKE
+
+ // when ake is complete
+ // save their keys and the session
+ this._akeInit()
+
+ // receive plaintext message since switching to plaintext
+ // used to decide when to stop sending pt tags when SEND_WHITESPACE_TAG
+ this.receivedPlaintext = false
+
+ }
+
+ OTR.prototype._akeInit = function () {
+ this.ake = new AKE(this)
+ this.transmittedRS = false
+ this.ssid = null
+ }
+
+ // smp over webworker
+ OTR.prototype._SMW = function (otr, reqs) {
+ this.otr = otr
+ var opts = {
+ path: SMWPath
+ , seed: BigInt.getSeed
+ }
+ if (typeof otr.smw === 'object')
+ Object.keys(otr.smw).forEach(function (k) {
+ opts[k] = otr.smw[k]
+ })
+
+ // load optional dep. in node
+ if (typeof module !== 'undefined' && 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
+ if (!d) return
+ self.trigger(d.method, d.args)
+ }
+ this.worker.postMessage({
+ type: 'seed'
+ , seed: opts.seed()
+ , imports: opts.imports
+ })
+ this.worker.postMessage({
+ type: 'init'
+ , reqs: reqs
+ })
+ }
+
+ // inherit from EE
+ HLP.extend(OTR.prototype._SMW, EventEmitter)
+
+ // shim sm methods
+ ;['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
+ }
+ if (this.smw) {
+ if (this.sm) this.sm.worker.terminate() // destroy prev webworker
+ this.sm = new this._SMW(this, reqs)
+ } else {
+ 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) {
+ if (self.ssid === ssid) {
+ send = self.prepareMsg(send)
+ self.io(send)
+ }
+ })
+ }
+
+ OTR.prototype.io = function (msg, meta) {
+
+ // buffer
+ msg = ([].concat(msg)).map(function(m, i, arr) {
+ var obj = { msg: m }
+ if (!(meta instanceof OTRCB) ||
+ i === (arr.length - 1) // only cb after last fragment is sent
+ ) obj.meta = meta
+ return 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
+ if (elem.meta instanceof OTRCB) {
+ cb = elem.meta.cb
+ elem.meta = null
+ }
+ self.trigger('io', [elem.msg, elem.meta])
+ if (cb) cb()
+ }
+ setTimeout(send, first ? 0 : self.send_interval)
+ }(true))
+
+ }
+
+ OTR.prototype.dh = function dh() {
+ var keys = { privateKey: BigInt.randBigInt(320) }
+ keys.publicKey = BigInt.powMod(G, keys.privateKey, N)
+ return keys
+ }
+
+ // session constructor
+ OTR.prototype.DHSession = function DHSession(our_dh, their_y) {
+ if (!(this instanceof DHSession)) return new DHSession(our_dh, their_y)
+
+ // shared secret
+ var s = BigInt.powMod(their_y, our_dh.privateKey, N)
+ var secbytes = HLP.packMPI(s)
+
+ // session id
+ this.id = HLP.mask(HLP.h2('\x00', secbytes), 0, 64) // first 64-bits
+
+ // are we the high or low end of the connection?
+ var sq = BigInt.greater(our_dh.publicKey, their_y)
+ var sendbyte = sq ? '\x01' : '\x02'
+ var rcvbyte = sq ? '\x02' : '\x01'
+
+ // sending and receiving keys
+ this.sendenc = HLP.mask(HLP.h1(sendbyte, secbytes), 0, 128) // f16 bytes
+ 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 = false
+
+ // extra symmetric key
+ this.extra_symkey = HLP.h2('\xff', secbytes)
+
+ // counters
+ this.send_counter = 0
+ this.rcv_counter = 0
+ }
+
+ OTR.prototype.rotateOurKeys = function () {
+
+ // reveal old mac keys
+ var self = this
+ this.sessKeys[1].forEach(function (sk) {
+ if (sk && sk.rcvmacused) self.oldMacKeys.push(sk.rcvmac)
+ })
+
+ // rotate our keys
+ 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) {
+
+ // increment their keyid
+ this.their_keyid += 1
+
+ // reveal old mac keys
+ var self = this
+ this.sessKeys.forEach(function (sk) {
+ if (sk[1] && sk[1].rcvmacused) self.oldMacKeys.push(sk[1].rcvmac)
+ })
+
+ // rotate their keys / session
+ this.their_old_y = this.their_y
+ this.sessKeys[0][1] = this.sessKeys[0][0]
+ this.sessKeys[1][1] = this.sessKeys[1][0]
+
+ // new keys / sessions
+ 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 || this.their_keyid === 0)
+ 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)
+
+ var send = this.ake.otr_version + '\x03' // version and type
+ var v3 = (this.ake.otr_version === CONST.OTR_VERSION_3)
+
+ if (v3) {
+ send += this.our_instance_tag
+ send += this.their_instance_tag
+ }
+
+ send += '\x00' // flag
+ 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)
+
+ if (Math.ceil(msg.length / 8) >= MAX_UINT) // * 16 / 128
+ return this.notify('Message is too long.')
+
+ var aes = HLP.encryptAes(
+ CryptoJS.enc.Latin1.parse(msg)
+ , sessKeys.sendenc
+ , ctr
+ )
+
+ 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
+ )
+ if (send[0]) return this.notify(send[0])
+
+ // emit extra symmetric key
+ if (esk) this.trigger('file', ['send', sessKeys.extra_symkey, esk])
+
+ return send[1]
+ }
+
+ OTR.prototype.handleDataMsg = function (msg) {
+ var vt = msg.version + msg.type
+
+ if (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)
+
+ // ignore flag
+ var ign = (msg[0] === '\x01')
+
+ if (this.msgstate !== CONST.MSGSTATE_ENCRYPTED || msg.length !== 8) {
+ if (!ign) this.error('Received an unreadable encrypted message.')
+ return
+ }
+
+ var our_keyid = this.our_keyid - HLP.readLen(msg[2])
+ var their_keyid = this.their_keyid - HLP.readLen(msg[1])
+
+ if (our_keyid < 0 || our_keyid > 1) {
+ if (!ign) this.error('Not of our latest keys.')
+ return
+ }
+
+ if (their_keyid < 0 || their_keyid > 1) {
+ if (!ign) this.error('Not of your latest keys.')
+ return
+ }
+
+ var their_y = their_keyid ? this.their_old_y : this.their_y
+
+ if (their_keyid === 1 && !their_y) {
+ if (!ign) this.error('Do not have that key.')
+ return
+ }
+
+ var sessKeys = this.sessKeys[our_keyid][their_keyid]
+
+ var ctr = HLP.unpackCtr(msg[4])
+ if (ctr <= sessKeys.rcv_counter) {
+ if (!ign) this.error('Counter in message is not larger.')
+ return
+ }
+ sessKeys.rcv_counter = ctr
+
+ // verify mac
+ vt += msg.slice(0, 6).join('')
+ var vmac = HLP.make1Mac(vt, sessKeys.rcvmac)
+
+ if (!HLP.compare(msg[6], vmac)) {
+ if (!ign) this.error('MACs do not match.')
+ return
+ }
+ sessKeys.rcvmacused = true
+
+ var out = HLP.decryptAes(
+ msg[5].substring(4)
+ , sessKeys.rcvenc
+ , HLP.padCtr(msg[4])
+ )
+ out = out.toString(CryptoJS.enc.Latin1)
+
+ if (!our_keyid) this.rotateOurKeys()
+ if (!their_keyid) this.rotateTheirKeys(HLP.readMPI(msg[3]))
+
+ // parse TLVs
+ var ind = out.indexOf('\x00')
+ if (~ind) {
+ this.handleTLVs(out.substring(ind + 1), sessKeys)
+ out = out.substring(0, ind)
+ }
+
+ out = CryptoJS.enc.Latin1.parse(out)
+ return out.toString(CryptoJS.enc.Utf8)
+ }
+
+ OTR.prototype.handleTLVs = function (tlvs, sessKeys) {
+ var type, len, msg
+ for (; tlvs.length; ) {
+ type = HLP.unpackSHORT(tlvs.substr(0, 2))
+ len = HLP.unpackSHORT(tlvs.substr(2, 2))
+
+ msg = tlvs.substr(4, len)
+
+ // TODO: handle pathological cases better
+ if (msg.length < len) break
+
+ switch (type) {
+ case 1:
+ // Disconnected
+ 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:
+ // SMP
+ if (this.msgstate !== CONST.MSGSTATE_ENCRYPTED) {
+ if (this.sm) this.sm.abort()
+ return
+ }
+ if (!this.sm) this._smInit()
+ this.sm.handleSM({ msg: msg, type: type })
+ break
+ case 8:
+ // utf8 filenames
+ msg = msg.substring(4) // remove 4-byte indication
+ msg = CryptoJS.enc.Latin1.parse(msg)
+ msg = msg.toString(CryptoJS.enc.Utf8)
+
+ // Extra Symkey
+ this.trigger('file', ['receive', sessKeys.extra_symkey, msg])
+ break
+ }
+
+ tlvs = tlvs.substring(4 + len)
+ }
+ }
+
+ OTR.prototype.smpSecret = function (secret, question) {
+ if (this.msgstate !== CONST.MSGSTATE_ENCRYPTED)
+ return this.notify('Must be encrypted for SMP.')
+
+ if (typeof secret !== 'string' || secret.length < 1)
+ return this.notify('Secret is required.')
+
+ if (!this.sm) this._smInit()
+
+ // utf8 inputs
+ secret = CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1)
+ if (question)
+ question = CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)
+
+ this.sm.rcvSecret(secret, question)
+ }
+
+ OTR.prototype.sendQueryMsg = function () {
+ var versions = {}
+ , msg = CONST.OTR_TAG
+
+ if (this.ALLOW_V2) versions['2'] = true
+ if (this.ALLOW_V3) versions['3'] = true
+
+ // but we don't allow v1
+ // if (versions['1']) msg += '?'
+
+ var vs = Object.keys(versions)
+ if (vs.length) {
+ msg += 'v'
+ vs.forEach(function (v) {
+ if (v !== '1') msg += v
+ })
+ msg += '?'
+ }
+
+ this.io(msg)
+ this.trigger('status', [CONST.STATUS_SEND_QUERY])
+ }
+
+ OTR.prototype.sendMsg = function (msg, meta) {
+ if ( this.REQUIRE_ENCRYPTION ||
+ this.msgstate !== CONST.MSGSTATE_PLAINTEXT
+ ) {
+ msg = CryptoJS.enc.Utf8.parse(msg)
+ msg = msg.toString(CryptoJS.enc.Latin1)
+ }
+
+ switch (this.msgstate) {
+ case CONST.MSGSTATE_PLAINTEXT:
+ if (this.REQUIRE_ENCRYPTION) {
+ this.storedMgs.push({msg: msg, meta: meta})
+ this.sendQueryMsg()
+ return
+ }
+ if (this.SEND_WHITESPACE_TAG && !this.receivedPlaintext) {
+ msg += CONST.WHITESPACE_TAG // 16 byte tag
+ if (this.ALLOW_V3) msg += CONST.WHITESPACE_TAG_V3
+ if (this.ALLOW_V2) msg += CONST.WHITESPACE_TAG_V2
+ }
+ break
+ case CONST.MSGSTATE_FINISHED:
+ this.storedMgs.push({msg: msg, meta: meta})
+ this.notify('Message cannot be sent at this time.', 'warn')
+ return
+ case CONST.MSGSTATE_ENCRYPTED:
+ msg = this.prepareMsg(msg)
+ break
+ default:
+ throw new Error('Unknown message state.')
+ }
+
+ if (msg) this.io(msg, meta)
+ }
+
+ OTR.prototype.receiveMsg = function (msg, meta) {
+
+ // parse type
+ msg = Parse.parseMsg(this, msg)
+
+ if (!msg) return
+
+ switch (msg.cls) {
+ case 'error':
+ this.notify(msg.msg)
+ return
+ case 'ake':
+ if ( msg.version === CONST.OTR_VERSION_3 &&
+ this.checkInstanceTags(msg.instance_tags)
+ ) {
+ this.notify(
+ 'Received a message intended for a different session.', 'warn')
+ return // ignore
+ }
+ this.ake.handleAKE(msg)
+ return
+ case 'data':
+ if ( msg.version === CONST.OTR_VERSION_3 &&
+ this.checkInstanceTags(msg.instance_tags)
+ ) {
+ this.notify(
+ 'Received a message intended for a different session.', 'warn')
+ return // ignore
+ }
+ msg.msg = this.handleDataMsg(msg)
+ msg.encrypted = true
+ break
+ case 'query':
+ if (this.msgstate === CONST.MSGSTATE_ENCRYPTED) this._akeInit()
+ this.doAKE(msg)
+ break
+ default:
+ // check for encrypted
+ if ( this.REQUIRE_ENCRYPTION ||
+ this.msgstate !== CONST.MSGSTATE_PLAINTEXT
+ ) this.notify('Received an unencrypted message.', 'warn')
+
+ // received a plaintext message
+ // stop sending the whitespace tag
+ this.receivedPlaintext = true
+
+ // received a whitespace tag
+ if (this.WHITESPACE_START_AKE && msg.ver.length > 0)
+ this.doAKE(msg)
+ }
+
+ if (msg.msg) this.trigger('ui', [msg.msg, !!msg.encrypted, meta])
+ }
+
+ OTR.prototype.checkInstanceTags = function (it) {
+ var their_it = HLP.readLen(it.substr(0, 4))
+ var our_it = HLP.readLen(it.substr(4, 4))
+
+ if (our_it && our_it !== HLP.readLen(this.our_instance_tag))
+ return true
+
+ if (HLP.readLen(this.their_instance_tag)) {
+ if (HLP.readLen(this.their_instance_tag) !== their_it) return true
+ } else {
+ if (their_it < 100) return true
+ this.their_instance_tag = HLP.packINT(their_it)
+ }
+ }
+
+ OTR.prototype.doAKE = function (msg) {
+ if (this.ALLOW_V3 && ~msg.ver.indexOf(CONST.OTR_VERSION_3)) {
+ this.ake.initiateAKE(CONST.OTR_VERSION_3)
+ } else if (this.ALLOW_V2 && ~msg.ver.indexOf(CONST.OTR_VERSION_2)) {
+ this.ake.initiateAKE(CONST.OTR_VERSION_2)
+ } else {
+ this.notify('OTR conversation requested, ' +
+ 'but no compatible protocol version found.', 'warn')
+ }
+ }
+
+ OTR.prototype.error = function (err) {
+ if (!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.')
+
+ // utf8 filenames
+ var l1name = CryptoJS.enc.Utf8.parse(filename)
+ l1name = l1name.toString(CryptoJS.enc.Latin1)
+
+ if (l1name.length >= 65532) return this.notify('Filename is too long.')
+
+ var msg = '\x00' // null byte
+ msg += '\x00\x08' // type 8 tlv
+ msg += HLP.packSHORT(4 + l1name.length) // length of value
+ msg += '\x00\x00\x00\x01' // four bytes indicating file
+ msg += l1name
+
+ msg = this.prepareMsg(msg, filename)
+ this.io(msg)
+ }
+
+ OTR.prototype.endOtr = function (cb) {
+ if (this.msgstate === CONST.MSGSTATE_ENCRYPTED) {
+ if (typeof cb === 'function')
+ cb = new OTRCB(cb)
+ this.sendMsg('\x00\x00\x01\x00\x00', cb)
+ if (this.sm) {
+ if (this.smw) this.sm.worker.terminate() // destroy webworker
+ this.sm = null
+ }
+ } else if (typeof cb === 'function')
+ setTimeout(cb, 0)
+
+ this.msgstate = CONST.MSGSTATE_PLAINTEXT
+ this.receivedPlaintext = false
+ this.trigger('status', [CONST.STATUS_END_OTR])
+ }
+
+ // attach methods
+
+ OTR.makeInstanceTag = function () {
+ var num = BigInt.randBigInt(32)
+ if (BigInt.greater(BigInt.str2bigInt('100', 16), num))
+ return OTR.makeInstanceTag()
+ return HLP.packINT(parseInt(BigInt.bigInt2str(num, 10), 10))
+ }
+
+}).call(this)
diff --git a/build/js/jsxc/lib/otr/lib/parse.js b/build/js/jsxc/lib/otr/lib/parse.js
new file mode 100644
index 0000000..228b77f
--- /dev/null
+++ b/build/js/jsxc/lib/otr/lib/parse.js
@@ -0,0 +1,206 @@
+;(function () {
+ "use strict";
+
+ var root = this
+
+ var Parse = {}, CryptoJS, CONST, HLP
+ if (typeof module !== 'undefined' && module.exports) {
+ module.exports = Parse
+ CryptoJS = require('../vendor/crypto.js')
+ CONST = require('./const.js')
+ HLP = require('./helpers.js')
+ } else {
+ root.OTR.Parse = Parse
+ CryptoJS = root.CryptoJS
+ CONST = root.OTR.CONST
+ HLP = root.OTR.HLP
+ }
+
+ // whitespace tags
+ 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 = []
+
+ // is this otr?
+ var start = msg.indexOf(CONST.OTR_TAG)
+ if (!~start) {
+
+ // restart fragments
+ this.initFragment(otr)
+
+ // whitespace tags
+ ind = msg.indexOf(CONST.WHITESPACE_TAG)
+
+ if (~ind) {
+
+ msg = msg.split('')
+ msg.splice(ind, 16)
+
+ var tag, len = msg.length
+ for (; ind < len;) {
+ tag = msg.slice(ind, ind + 8).join('')
+ if (Object.hasOwnProperty.call(tags, tag)) {
+ msg.splice(ind, 8)
+ ver.push(tags[tag])
+ continue
+ }
+ ind += 8
+ }
+
+ msg = msg.join('')
+
+ }
+
+ return { msg: msg, ver: ver }
+ }
+
+ var ind = start + CONST.OTR_TAG.length
+ var com = msg[ind]
+
+ // message fragment
+ if (com === ',' || com === '|') {
+ return this.msgFragment(otr, msg.substring(ind + 1), (com === '|'))
+ }
+
+ this.initFragment(otr)
+
+ // query message
+ if (~['?', 'v'].indexOf(com)) {
+
+ // version 1
+ if (msg[ind] === '?') {
+ ver.push(CONST.OTR_VERSION_1)
+ ind += 1
+ }
+
+ // other versions
+ var vers = {
+ '2': CONST.OTR_VERSION_2
+ , '3': CONST.OTR_VERSION_3
+ }
+ var qs = msg.substring(ind + 1)
+ var qi = qs.indexOf('?')
+
+ if (qi >= 1) {
+ qs = qs.substring(0, qi).split('')
+ if (msg[ind] === 'v') {
+ qs.forEach(function (q) {
+ if (Object.hasOwnProperty.call(vers, q)) ver.push(vers[q])
+ })
+ }
+ }
+
+ return { cls: 'query', ver: ver }
+ }
+
+ // otr message
+ 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)
+ var type = info.substring(2)
+
+ // supporting otr versions 2 and 3
+ 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)
+
+ // instance tags
+ var instance_tags
+ if (version === CONST.OTR_VERSION_3) {
+ instance_tags = msg.substring(0, 8)
+ msg = msg.substring(8)
+ }
+
+ var cls
+ if (~['\x02', '\x0a', '\x11', '\x12'].indexOf(type)) {
+ cls = 'ake'
+ } else if (type === '\x03') {
+ cls = 'data'
+ }
+
+ return {
+ version: version
+ , type: type
+ , msg: msg
+ , cls: cls
+ , instance_tags: instance_tags
+ }
+ }
+
+ // error message
+ if (msg.substring(ind, ind + 7) === ' Error:') {
+ if (otr.ERROR_START_AKE) {
+ otr.sendQueryMsg()
+ }
+ return { msg: msg.substring(ind + 7), cls: 'error' }
+ }
+
+ return { msg: msg }
+ }
+
+ Parse.initFragment = function (otr) {
+ otr.fragment = { s: '', j: 0, k: 0 }
+ }
+
+ Parse.msgFragment = function (otr, msg, v3) {
+
+ msg = msg.split(',')
+
+ // instance tags
+ if (v3) {
+ var its = msg.shift().split('|')
+ var their_it = HLP.packINT(parseInt(its[0], 16))
+ var our_it = HLP.packINT(parseInt(its[1], 16))
+ if (otr.checkInstanceTags(their_it + our_it)) return // ignore
+ }
+
+ if (msg.length < 4 ||
+ isNaN(parseInt(msg[0], 10)) ||
+ isNaN(parseInt(msg[1], 10))
+ ) return
+
+ var k = parseInt(msg[0], 10)
+ var n = parseInt(msg[1], 10)
+ msg = msg[2]
+
+ if (n < k || n === 0 || k === 0) {
+ this.initFragment(otr)
+ return
+ }
+
+ if (k === 1) {
+ this.initFragment(otr)
+ otr.fragment = { k: 1, n: n, s: msg }
+ } else if (n === otr.fragment.n && k === (otr.fragment.k + 1)) {
+ otr.fragment.s += msg
+ otr.fragment.k += 1
+ } else {
+ this.initFragment(otr)
+ }
+
+ if (n === k) {
+ msg = otr.fragment.s
+ this.initFragment(otr)
+ return this.parseMsg(otr, msg)
+ }
+
+ return
+ }
+
+}).call(this) \ No newline at end of file
diff --git a/build/js/jsxc/lib/otr/lib/sm.js b/build/js/jsxc/lib/otr/lib/sm.js
new file mode 100644
index 0000000..39ff88d
--- /dev/null
+++ b/build/js/jsxc/lib/otr/lib/sm.js
@@ -0,0 +1,436 @@
+;(function () {
+ "use strict";
+
+ var root = this
+
+ var CryptoJS, BigInt, EventEmitter, CONST, HLP
+ if (typeof module !== 'undefined' && 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')
+ } else {
+ root.OTR.SM = SM
+ CryptoJS = root.CryptoJS
+ BigInt = root.BigInt
+ EventEmitter = root.EventEmitter
+ CONST = root.OTR.CONST
+ HLP = root.OTR.HLP
+ }
+
+ // diffie-hellman modulus and generator
+ // see group 5, RFC 3526
+ var G = BigInt.str2bigInt(CONST.G, 10)
+ var N = BigInt.str2bigInt(CONST.N, 16)
+ var N_MINUS_2 = BigInt.sub(N, BigInt.str2bigInt('2', 10))
+
+ // to calculate D's for zero-knowledge proofs
+ var Q = BigInt.sub(N, BigInt.str2bigInt('1', 10))
+ BigInt.divInt_(Q, 2) // meh
+
+ function SM(reqs) {
+ if (!(this instanceof SM)) return new SM(reqs)
+
+ this.version = 1
+
+ this.our_fp = reqs.our_fp
+ this.their_fp = reqs.their_fp
+ this.ssid = reqs.ssid
+
+ this.debug = !!reqs.debug
+
+ // initial state
+ this.init()
+ }
+
+ // inherit from EE
+ HLP.extend(SM, EventEmitter)
+
+ // set the initial values
+ // also used when aborting
+ 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)
+ if ( !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)
+ }
+
+ // the bulk of the work
+ SM.prototype.handleSM = function (msg) {
+ var send, r2, r3, r7, t1, t2, t3, t4, rab, tmp2, cR, d7, ms, trust
+
+ var expectStates = {
+ 2: CONST.SMPSTATE_EXPECT1
+ , 3: CONST.SMPSTATE_EXPECT2
+ , 4: CONST.SMPSTATE_EXPECT3
+ , 5: CONST.SMPSTATE_EXPECT4
+ , 7: CONST.SMPSTATE_EXPECT1
+ }
+
+ if (msg.type === 6) {
+ this.init()
+ this.trigger('abort')
+ return
+ }
+
+ // abort! there was an error
+ if (this.smpstate !== expectStates[msg.type])
+ return this.abort()
+
+ switch (this.smpstate) {
+
+ case CONST.SMPSTATE_EXPECT1:
+ HLP.debug.call(this, 'smp tlv 2')
+
+ // user specified question
+ var ind, question
+ if (msg.type === 7) {
+ ind = msg.msg.indexOf('\x00')
+ question = msg.msg.substring(0, ind)
+ msg.msg = msg.msg.substring(ind + 1)
+ }
+
+ // 0:g2a, 1:c2, 2:d2, 3:g3a, 4:c3, 5:d3
+ ms = HLP.readLen(msg.msg.substr(0, 4))
+ if (ms !== 6) return this.abort()
+ msg = HLP.unpackMPIs(6, msg.msg.substring(4))
+
+ if ( !HLP.checkGroup(msg[0], N_MINUS_2) ||
+ !HLP.checkGroup(msg[3], N_MINUS_2)
+ ) return this.abort()
+
+ // verify znp's
+ if (!HLP.ZKP(1, msg[1], HLP.multPowMod(G, msg[2], msg[0], msg[1], N)))
+ return this.abort()
+
+ if (!HLP.ZKP(2, msg[4], HLP.multPowMod(G, msg[5], msg[3], msg[4], N)))
+ return this.abort()
+
+ this.g3ao = msg[3] // save for later
+
+ this.makeG2s()
+
+ // zero-knowledge proof that the exponents
+ // associated with g2a & g3a are known
+ 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
+
+ if (question) {
+ // assume utf8 question
+ question = CryptoJS.enc.Latin1
+ .parse(question)
+ .toString(CryptoJS.enc.Utf8)
+ }
+
+ // invoke question
+ this.trigger('question', [question])
+ return
+
+ case CONST.SMPSTATE_EXPECT2:
+ HLP.debug.call(this, 'smp tlv 3')
+
+ // 0:g2a, 1:c2, 2:d2, 3:g3a, 4:c3, 5:d3, 6:p, 7:q, 8:cP, 9:d5, 10:d6
+ ms = HLP.readLen(msg.msg.substr(0, 4))
+ if (ms !== 11) return this.abort()
+ msg = HLP.unpackMPIs(11, msg.msg.substring(4))
+
+ if ( !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()
+
+ // verify znp of c3 / c3
+ 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()
+
+ this.g3ao = msg[3] // save for later
+
+ this.computeGs(msg[0], msg[3])
+
+ // verify znp of cP
+ 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)
+
+ if (!HLP.ZKP(5, msg[8], t1, t2))
+ return this.abort()
+
+ var r4 = HLP.randomExponent()
+ this.computePQ(r4)
+
+ // zero-knowledge proof that P & Q
+ // were generated according to the protocol
+ var r5 = HLP.randomExponent()
+ var r6 = HLP.randomExponent()
+ var tmp = HLP.multPowMod(G, r5, this.g2, r6, N)
+ var cP = HLP.smpHash(6, BigInt.powMod(this.g3, r5, N), tmp)
+ var d5 = this.computeD(r5, r4, cP)
+ var d6 = this.computeD(r6, this.secret, cP)
+
+ // store these
+ this.QoQ = BigInt.divMod(this.q, msg[7], N)
+ this.PoP = BigInt.divMod(this.p, msg[6], N)
+
+ this.computeR()
+
+ // zero-knowledge proof that R
+ // was generated according to the protocol
+ 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
+ ])
+
+ // TLV
+ send = HLP.packTLV(4, send)
+ break
+
+ case CONST.SMPSTATE_EXPECT3:
+ HLP.debug.call(this, 'smp tlv 4')
+
+ // 0:p, 1:q, 2:cP, 3:d5, 4:d6, 5:r, 6:cR, 7:d7
+ ms = HLP.readLen(msg.msg.substr(0, 4))
+ if (ms !== 8) return this.abort()
+ msg = HLP.unpackMPIs(8, msg.msg.substring(4))
+
+ if ( !HLP.checkGroup(msg[0], N_MINUS_2) ||
+ !HLP.checkGroup(msg[1], N_MINUS_2) ||
+ !HLP.checkGroup(msg[5], N_MINUS_2)
+ ) return this.abort()
+
+ // verify znp of cP
+ 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)
+
+ if (!HLP.ZKP(6, msg[2], t1, t2))
+ return this.abort()
+
+ // verify znp of cR
+ t3 = HLP.multPowMod(G, msg[7], this.g3ao, msg[6], N)
+ this.QoQ = BigInt.divMod(msg[1], this.q, N) // save Q over Q
+ t4 = HLP.multPowMod(this.QoQ, msg[7], msg[5], msg[6], N)
+
+ if (!HLP.ZKP(7, msg[6], t3, t4))
+ return this.abort()
+
+ this.computeR()
+
+ // zero-knowledge proof that R
+ // was generated according to the protocol
+ 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:
+ HLP.debug.call(this, 'smp tlv 5')
+
+ // 0:r, 1:cR, 2:d7
+ ms = HLP.readLen(msg.msg.substr(0, 4))
+ if (ms !== 3) return this.abort()
+ msg = HLP.unpackMPIs(3, msg.msg.substring(4))
+
+ if (!HLP.checkGroup(msg[0], N_MINUS_2)) return this.abort()
+
+ // verify znp of cR
+ t3 = HLP.multPowMod(G, msg[2], this.g3ao, msg[1], N)
+ t4 = HLP.multPowMod(this.QoQ, msg[2], msg[0], msg[1], N)
+ if (!HLP.ZKP(8, msg[1], t3, t4))
+ return this.abort()
+
+ rab = this.computeRab(msg[0])
+ trust = !!BigInt.equals(rab, this.PoP)
+
+ this.trigger('trust', [trust, 'asked'])
+ this.init()
+ return
+
+ }
+
+ this.sendMsg(send)
+ }
+
+ // send a message
+ 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 = false
+ if (this.smpstate === CONST.SMPSTATE_EXPECT0) {
+ fn = this.answer
+ } else {
+ fn = this.initiate
+ our = true
+ }
+
+ 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)
+
+ // zero-knowledge proof that P & Q
+ // were generated according to the protocol
+ var r5 = HLP.randomExponent()
+ var r6 = HLP.randomExponent()
+ var tmp = HLP.multPowMod(G, r5, this.g2, r6, N)
+ var cP = HLP.smpHash(5, BigInt.powMod(this.g3, r5, N), tmp)
+ var d5 = this.computeD(r5, r4, cP)
+ var 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')
+
+ if (this.smpstate !== CONST.SMPSTATE_EXPECT1)
+ this.abort() // abort + restart
+
+ this.makeG2s()
+
+ // zero-knowledge proof that the exponents
+ // associated with g2a & g3a are known
+ var r2 = HLP.randomExponent()
+ var 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)
+
+ // set the next expected state
+ this.smpstate = CONST.SMPSTATE_EXPECT2
+
+ var send = ''
+ var type = 2
+
+ if (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) \ No newline at end of file
diff --git a/build/js/jsxc/lib/strophe.bookmarks/index.js b/build/js/jsxc/lib/strophe.bookmarks/index.js
deleted file mode 100644
index f8f6b24..0000000
--- a/build/js/jsxc/lib/strophe.bookmarks/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-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');
-
- },
- /**
- * Create private bookmark node.
- *
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- */
- createBookmarksNode : function(success, error) {
- // We do this instead of using publish-options because this is not
- // mandatory to implement according to XEP-0060
- 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);
-
- return true;
- },
- /**
- * Add bookmark to storage.
- *
- * @param {string} roomJid - The JabberID of the chat roomJid
- * @param {string} [alias] - A friendly name for the bookmark
- * @param {string} [nick] - The users's preferred roomnick for the chatroom
- * @param {boolean} [autojoin=false] - Whether the client should automatically join
- * the conference room on login.
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- */
- add : function(roomJid, alias, nick, autojoin, success, error) {
- var conferenceAttr = {
- jid: roomJid,
- autojoin: autojoin || false
- };
-
- if (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);
-
- if (nick) {
- stanza.c('nick').t(nick);
- }
-
- this.connection.sendIQ(stanza, success, error);
- },
- /**
- * Retrieve all stored bookmarks.
- *
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after 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 the given entry for roomJid.
- *
- * @param {string} roomJid - The JabberID of the chat roomJid you want to remove
- * @param {function} [success] - Callback after success
- * @param {function} [error] - Callback after error
- * @param {boolean} [notify=false] - True: notify all subscribers
- */
- 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 || false
- }).c('item', {
- id: roomJid
- }), success, error);
- }
-
-});
diff --git a/build/js/jsxc/lib/strophe.chatstates/index.js b/build/js/jsxc/lib/strophe.chatstates/index.js
deleted file mode 100644
index 4343b58..0000000
--- a/build/js/jsxc/lib/strophe.chatstates/index.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Chat state notifications (XEP 0085) plugin
- * @see http://xmpp.org/extensions/xep-0085.html
- */
-Strophe.addConnectionPlugin('chatstates',
-{
- init: function (connection)
- {
- this._connection = connection;
-
- Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates');
- },
-
- statusChanged: function (status)
- {
- if (status === Strophe.Status.CONNECTED
- || status === Strophe.Status.ATTACHED)
- {
- this._connection.addHandler(this._notificationReceived.bind(this),
- Strophe.NS.CHATSTATES, "message");
- }
- },
-
- addActive: function(message)
- {
- return message.c('active', {xmlns: Strophe.NS.CHATSTATES}).up();
- },
-
- _notificationReceived: function(message)
- {
- var composing = $(message).find('composing'),
- paused = $(message).find('paused'),
- active = $(message).find('active'),
- jid = $(message).attr('from');
-
- if (composing.length > 0)
- {
- $(document).trigger('composing.chatstates', jid);
- }
-
- if (paused.length > 0)
- {
- $(document).trigger('paused.chatstates', jid);
- }
-
- if (active.length > 0)
- {
- $(document).trigger('active.chatstates', jid);
- }
-
- return true;
- },
-
- sendActive: function(jid, type)
- {
- this._sendNotification(jid, type, 'active');
- },
-
- sendComposing: function(jid, type)
- {
- this._sendNotification(jid, type, 'composing');
- },
-
- sendPaused: function(jid, type)
- {
- this._sendNotification(jid, type, 'paused');
- },
-
- _sendNotification: function(jid, type, notification)
- {
- if (!type) type = 'chat';
-
- this._connection.send($msg(
- {
- to: jid,
- type: type
- })
- .c(notification, {xmlns: Strophe.NS.CHATSTATES}));
- }
-});
diff --git a/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js b/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js
deleted file mode 100644
index 94c8766..0000000
--- a/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js
+++ /dev/null
@@ -1,31668 +0,0 @@
-/*!
- * strophe.jinglejs v0.1.2 - 2017-01-12
- *
- * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
- * Released under the MIT license
- *
- * Please see https://github.com/sualko/strophe.jinglejs/
- *
- * @author Klaus Herberth <klaus@jsxc.org>
- * @version 0.1.2
- * @license MIT
- */
-
-(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&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}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
-},{"core-js/library/fn/object/assign":8}],2:[function(require,module,exports){
-"use strict";
-
-exports["default"] = function (obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-};
-
-exports.__esModule = true;
-},{}],3:[function(require,module,exports){
-'use strict'
-
-exports.byteLength = byteLength
-exports.toByteArray = toByteArray
-exports.fromByteArray = fromByteArray
-
-var lookup = []
-var revLookup = []
-var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
-
-var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
-for (var i = 0, len = code.length; i < len; ++i) {
- lookup[i] = code[i]
- revLookup[code.charCodeAt(i)] = i
-}
-
-revLookup['-'.charCodeAt(0)] = 62
-revLookup['_'.charCodeAt(0)] = 63
-
-function placeHoldersCount (b64) {
- var len = b64.length
- if (len % 4 > 0) {
- throw new Error('Invalid string. Length must be a multiple of 4')
- }
-
- // the number of equal signs (place holders)
- // if there are two placeholders, than the two characters before it
- // represent one byte
- // if there is only one, then the three characters before it represent 2 bytes
- // this is just a cheap hack to not do indexOf twice
- return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
-}
-
-function byteLength (b64) {
- // base64 is 4/3 + up to two characters of the original data
- return b64.length * 3 / 4 - placeHoldersCount(b64)
-}
-
-function toByteArray (b64) {
- var i, j, l, tmp, placeHolders, arr
- var len = b64.length
- placeHolders = placeHoldersCount(b64)
-
- arr = new Arr(len * 3 / 4 - placeHolders)
-
- // if there are placeholders, only get up to the last complete 4 chars
- l = placeHolders > 0 ? len - 4 : len
-
- var L = 0
-
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
- tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
- arr[L++] = (tmp >> 16) & 0xFF
- arr[L++] = (tmp >> 8) & 0xFF
- arr[L++] = tmp & 0xFF
- }
-
- if (placeHolders === 2) {
- tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
- arr[L++] = tmp & 0xFF
- } else if (placeHolders === 1) {
- tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
- arr[L++] = (tmp >> 8) & 0xFF
- arr[L++] = tmp & 0xFF
- }
-
- return arr
-}
-
-function tripletToBase64 (num) {
- return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
-}
-
-function encodeChunk (uint8, start, end) {
- var tmp
- var output = []
- for (var i = start; i < end; i += 3) {
- tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
- output.push(tripletToBase64(tmp))
- }
- return output.join('')
-}
-
-function fromByteArray (uint8) {
- var tmp
- var len = uint8.length
- var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
- var output = ''
- var parts = []
- var maxChunkLength = 16383 // must be multiple of 3
-
- // go through the array every three bytes, we'll deal with trailing stuff later
- for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
- parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
- }
-
- // pad the end with zeros, but make sure to not forget the extra bytes
- if (extraBytes === 1) {
- tmp = uint8[len - 1]
- output += lookup[tmp >> 2]
- output += lookup[(tmp << 4) & 0x3F]
- output += '=='
- } else if (extraBytes === 2) {
- tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
- output += lookup[tmp >> 10]
- output += lookup[(tmp >> 4) & 0x3F]
- output += lookup[(tmp << 2) & 0x3F]
- output += '='
- }
-
- parts.push(output)
-
- return parts.join('')
-}
-
-},{}],4:[function(require,module,exports){
-
-},{}],5:[function(require,module,exports){
-(function (global){
-'use strict';
-
-var buffer = require('buffer');
-var Buffer = buffer.Buffer;
-var SlowBuffer = buffer.SlowBuffer;
-var MAX_LEN = buffer.kMaxLength || 2147483647;
-exports.alloc = function alloc(size, fill, encoding) {
- if (typeof Buffer.alloc === 'function') {
- return Buffer.alloc(size, fill, encoding);
- }
- if (typeof encoding === 'number') {
- throw new TypeError('encoding must not be number');
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- var enc = encoding;
- var _fill = fill;
- if (_fill === undefined) {
- enc = undefined;
- _fill = 0;
- }
- var buf = new Buffer(size);
- if (typeof _fill === 'string') {
- var fillBuf = new Buffer(_fill, enc);
- var flen = fillBuf.length;
- var i = -1;
- while (++i < size) {
- buf[i] = fillBuf[i % flen];
- }
- } else {
- buf.fill(_fill);
- }
- return buf;
-}
-exports.allocUnsafe = function allocUnsafe(size) {
- if (typeof Buffer.allocUnsafe === 'function') {
- return Buffer.allocUnsafe(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new Buffer(size);
-}
-exports.from = function from(value, encodingOrOffset, length) {
- if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
- return Buffer.from(value, encodingOrOffset, length);
- }
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number');
- }
- if (typeof value === 'string') {
- return new Buffer(value, encodingOrOffset);
- }
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- var offset = encodingOrOffset;
- if (arguments.length === 1) {
- return new Buffer(value);
- }
- if (typeof offset === 'undefined') {
- offset = 0;
- }
- var len = length;
- if (typeof len === 'undefined') {
- len = value.byteLength - offset;
- }
- if (offset >= value.byteLength) {
- throw new RangeError('\'offset\' is out of bounds');
- }
- if (len > value.byteLength - offset) {
- throw new RangeError('\'length\' is out of bounds');
- }
- return new Buffer(value.slice(offset, offset + len));
- }
- if (Buffer.isBuffer(value)) {
- var out = new Buffer(value.length);
- value.copy(out, 0, 0, value.length);
- return out;
- }
- if (value) {
- if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
- return new Buffer(value);
- }
- if (value.type === 'Buffer' && Array.isArray(value.data)) {
- return new Buffer(value.data);
- }
- }
-
- throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
-}
-exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
- if (typeof Buffer.allocUnsafeSlow === 'function') {
- return Buffer.allocUnsafeSlow(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size >= MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new SlowBuffer(size);
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"buffer":6}],6:[function(require,module,exports){
-(function (global){
-/*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * @license MIT
- */
-/* eslint-disable no-proto */
-
-'use strict'
-
-var base64 = require('base64-js')
-var ieee754 = require('ieee754')
-var isArray = require('isarray')
-
-exports.Buffer = Buffer
-exports.SlowBuffer = SlowBuffer
-exports.INSPECT_MAX_BYTES = 50
-
-/**
- * If `Buffer.TYPED_ARRAY_SUPPORT`:
- * === true Use Uint8Array implementation (fastest)
- * === false Use Object implementation (most compatible, even IE6)
- *
- * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
- * Opera 11.6+, iOS 4.2+.
- *
- * Due to various browser bugs, sometimes the Object implementation will be used even
- * when the browser supports typed arrays.
- *
- * Note:
- *
- * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
- * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
- *
- * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
- *
- * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
- * incorrect length in some situations.
-
- * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
- * get the Object implementation, which is slower but behaves correctly.
- */
-Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
- ? global.TYPED_ARRAY_SUPPORT
- : typedArraySupport()
-
-/*
- * Export kMaxLength after typed array support is determined.
- */
-exports.kMaxLength = kMaxLength()
-
-function typedArraySupport () {
- try {
- var arr = new Uint8Array(1)
- arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
- return arr.foo() === 42 && // typed array instances can be augmented
- typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
- arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
- } catch (e) {
- return false
- }
-}
-
-function kMaxLength () {
- return Buffer.TYPED_ARRAY_SUPPORT
- ? 0x7fffffff
- : 0x3fffffff
-}
-
-function createBuffer (that, length) {
- if (kMaxLength() < length) {
- throw new RangeError('Invalid typed array length')
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = new Uint8Array(length)
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- if (that === null) {
- that = new Buffer(length)
- }
- that.length = length
- }
-
- return that
-}
-
-/**
- * The Buffer constructor returns instances of `Uint8Array` that have their
- * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
- * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
- * and the `Uint8Array` methods. Square bracket notation works as expected -- it
- * returns a single octet.
- *
- * The `Uint8Array` prototype remains unmodified.
- */
-
-function Buffer (arg, encodingOrOffset, length) {
- if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
- return new Buffer(arg, encodingOrOffset, length)
- }
-
- // Common case.
- if (typeof arg === 'number') {
- if (typeof encodingOrOffset === 'string') {
- throw new Error(
- 'If encoding is specified then the first argument must be a string'
- )
- }
- return allocUnsafe(this, arg)
- }
- return from(this, arg, encodingOrOffset, length)
-}
-
-Buffer.poolSize = 8192 // not used by this implementation
-
-// TODO: Legacy, not needed anymore. Remove in next major version.
-Buffer._augment = function (arr) {
- arr.__proto__ = Buffer.prototype
- return arr
-}
-
-function from (that, value, encodingOrOffset, length) {
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number')
- }
-
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- return fromArrayBuffer(that, value, encodingOrOffset, length)
- }
-
- if (typeof value === 'string') {
- return fromString(that, value, encodingOrOffset)
- }
-
- return fromObject(that, value)
-}
-
-/**
- * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
- * if value is a number.
- * Buffer.from(str[, encoding])
- * Buffer.from(array)
- * Buffer.from(buffer)
- * Buffer.from(arrayBuffer[, byteOffset[, length]])
- **/
-Buffer.from = function (value, encodingOrOffset, length) {
- return from(null, value, encodingOrOffset, length)
-}
-
-if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
- if (typeof Symbol !== 'undefined' && Symbol.species &&
- Buffer[Symbol.species] === Buffer) {
- // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
- Object.defineProperty(Buffer, Symbol.species, {
- value: null,
- configurable: true
- })
- }
-}
-
-function assertSize (size) {
- if (typeof size !== 'number') {
- throw new TypeError('"size" argument must be a number')
- } else if (size < 0) {
- throw new RangeError('"size" argument must not be negative')
- }
-}
-
-function alloc (that, size, fill, encoding) {
- assertSize(size)
- if (size <= 0) {
- return createBuffer(that, size)
- }
- if (fill !== undefined) {
- // Only pay attention to encoding if it's a string. This
- // prevents accidentally sending in a number that would
- // be interpretted as a start offset.
- return typeof encoding === 'string'
- ? createBuffer(that, size).fill(fill, encoding)
- : createBuffer(that, size).fill(fill)
- }
- return createBuffer(that, size)
-}
-
-/**
- * Creates a new filled Buffer instance.
- * alloc(size[, fill[, encoding]])
- **/
-Buffer.alloc = function (size, fill, encoding) {
- return alloc(null, size, fill, encoding)
-}
-
-function allocUnsafe (that, size) {
- assertSize(size)
- that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < size; ++i) {
- that[i] = 0
- }
- }
- return that
-}
-
-/**
- * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
- * */
-Buffer.allocUnsafe = function (size) {
- return allocUnsafe(null, size)
-}
-/**
- * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
- */
-Buffer.allocUnsafeSlow = function (size) {
- return allocUnsafe(null, size)
-}
-
-function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') {
- encoding = 'utf8'
- }
-
- if (!Buffer.isEncoding(encoding)) {
- throw new TypeError('"encoding" must be a valid string encoding')
- }
-
- var length = byteLength(string, encoding) | 0
- that = createBuffer(that, length)
-
- var actual = that.write(string, encoding)
-
- if (actual !== length) {
- // Writing a hex string, for example, that contains invalid characters will
- // cause everything after the first invalid character to be ignored. (e.g.
- // 'abxxcd' will be treated as 'ab')
- that = that.slice(0, actual)
- }
-
- return that
-}
-
-function fromArrayLike (that, array) {
- var length = array.length < 0 ? 0 : checked(array.length) | 0
- that = createBuffer(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
-}
-
-function fromArrayBuffer (that, array, byteOffset, length) {
- array.byteLength // this throws if `array` is not a valid ArrayBuffer
-
- if (byteOffset < 0 || array.byteLength < byteOffset) {
- throw new RangeError('\'offset\' is out of bounds')
- }
-
- if (array.byteLength < byteOffset + (length || 0)) {
- throw new RangeError('\'length\' is out of bounds')
- }
-
- if (byteOffset === undefined && length === undefined) {
- array = new Uint8Array(array)
- } else if (length === undefined) {
- array = new Uint8Array(array, byteOffset)
- } else {
- array = new Uint8Array(array, byteOffset, length)
- }
-
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = array
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromArrayLike(that, array)
- }
- return that
-}
-
-function fromObject (that, obj) {
- if (Buffer.isBuffer(obj)) {
- var len = checked(obj.length) | 0
- that = createBuffer(that, len)
-
- if (that.length === 0) {
- return that
- }
-
- obj.copy(that, 0, 0, len)
- return that
- }
-
- if (obj) {
- if ((typeof ArrayBuffer !== 'undefined' &&
- obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
- if (typeof obj.length !== 'number' || isnan(obj.length)) {
- return createBuffer(that, 0)
- }
- return fromArrayLike(that, obj)
- }
-
- if (obj.type === 'Buffer' && isArray(obj.data)) {
- return fromArrayLike(that, obj.data)
- }
- }
-
- throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
-}
-
-function checked (length) {
- // Note: cannot use `length < kMaxLength()` here because that fails when
- // length is NaN (which is otherwise coerced to zero.)
- if (length >= kMaxLength()) {
- throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
- 'size: 0x' + kMaxLength().toString(16) + ' bytes')
- }
- return length | 0
-}
-
-function SlowBuffer (length) {
- if (+length != length) { // eslint-disable-line eqeqeq
- length = 0
- }
- return Buffer.alloc(+length)
-}
-
-Buffer.isBuffer = function isBuffer (b) {
- return !!(b != null && b._isBuffer)
-}
-
-Buffer.compare = function compare (a, b) {
- if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
- throw new TypeError('Arguments must be Buffers')
- }
-
- if (a === b) return 0
-
- var x = a.length
- var y = b.length
-
- for (var i = 0, len = Math.min(x, y); i < len; ++i) {
- if (a[i] !== b[i]) {
- x = a[i]
- y = b[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-Buffer.isEncoding = function isEncoding (encoding) {
- switch (String(encoding).toLowerCase()) {
- case 'hex':
- case 'utf8':
- case 'utf-8':
- case 'ascii':
- case 'latin1':
- case 'binary':
- case 'base64':
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return true
- default:
- return false
- }
-}
-
-Buffer.concat = function concat (list, length) {
- if (!isArray(list)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
-
- if (list.length === 0) {
- return Buffer.alloc(0)
- }
-
- var i
- if (length === undefined) {
- length = 0
- for (i = 0; i < list.length; ++i) {
- length += list[i].length
- }
- }
-
- var buffer = Buffer.allocUnsafe(length)
- var pos = 0
- for (i = 0; i < list.length; ++i) {
- var buf = list[i]
- if (!Buffer.isBuffer(buf)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
- buf.copy(buffer, pos)
- pos += buf.length
- }
- return buffer
-}
-
-function byteLength (string, encoding) {
- if (Buffer.isBuffer(string)) {
- return string.length
- }
- if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
- (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
- return string.byteLength
- }
- if (typeof string !== 'string') {
- string = '' + string
- }
-
- var len = string.length
- if (len === 0) return 0
-
- // Use a for loop to avoid recursion
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'ascii':
- case 'latin1':
- case 'binary':
- return len
- case 'utf8':
- case 'utf-8':
- case undefined:
- return utf8ToBytes(string).length
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return len * 2
- case 'hex':
- return len >>> 1
- case 'base64':
- return base64ToBytes(string).length
- default:
- if (loweredCase) return utf8ToBytes(string).length // assume utf8
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
-}
-Buffer.byteLength = byteLength
-
-function slowToString (encoding, start, end) {
- var loweredCase = false
-
- // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
- // property of a typed array.
-
- // This behaves neither like String nor Uint8Array in that we set start/end
- // to their upper/lower bounds if the value passed is out of range.
- // undefined is handled specially as per ECMA-262 6th Edition,
- // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
- if (start === undefined || start < 0) {
- start = 0
- }
- // Return early if start > this.length. Done here to prevent potential uint32
- // coercion fail below.
- if (start > this.length) {
- return ''
- }
-
- if (end === undefined || end > this.length) {
- end = this.length
- }
-
- if (end <= 0) {
- return ''
- }
-
- // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
- end >>>= 0
- start >>>= 0
-
- if (end <= start) {
- return ''
- }
-
- if (!encoding) encoding = 'utf8'
-
- while (true) {
- 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 'latin1':
- case 'binary':
- return latin1Slice(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 = true
- }
- }
-}
-
-// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
-// Buffer instances.
-Buffer.prototype._isBuffer = true
-
-function swap (b, n, m) {
- var i = b[n]
- b[n] = b[m]
- b[m] = i
-}
-
-Buffer.prototype.swap16 = function swap16 () {
- var len = this.length
- if (len % 2 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 16-bits')
- }
- for (var i = 0; i < len; i += 2) {
- swap(this, i, i + 1)
- }
- return this
-}
-
-Buffer.prototype.swap32 = function swap32 () {
- var len = this.length
- if (len % 4 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 32-bits')
- }
- for (var i = 0; i < len; i += 4) {
- swap(this, i, i + 3)
- swap(this, i + 1, i + 2)
- }
- return this
-}
-
-Buffer.prototype.swap64 = function swap64 () {
- var len = this.length
- if (len % 8 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 64-bits')
- }
- for (var i = 0; i < len; i += 8) {
- swap(this, i, i + 7)
- swap(this, i + 1, i + 6)
- swap(this, i + 2, i + 5)
- swap(this, i + 3, i + 4)
- }
- return this
-}
-
-Buffer.prototype.toString = function toString () {
- var length = this.length | 0
- if (length === 0) return ''
- if (arguments.length === 0) return utf8Slice(this, 0, length)
- return slowToString.apply(this, arguments)
-}
-
-Buffer.prototype.equals = function equals (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return true
- return Buffer.compare(this, b) === 0
-}
-
-Buffer.prototype.inspect = function inspect () {
- var str = ''
- var max = exports.INSPECT_MAX_BYTES
- if (this.length > 0) {
- str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
- if (this.length > max) str += ' ... '
- }
- return '<Buffer ' + str + '>'
-}
-
-Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
- if (!Buffer.isBuffer(target)) {
- throw new TypeError('Argument must be a Buffer')
- }
-
- if (start === undefined) {
- start = 0
- }
- if (end === undefined) {
- end = target ? target.length : 0
- }
- if (thisStart === undefined) {
- thisStart = 0
- }
- if (thisEnd === undefined) {
- thisEnd = this.length
- }
-
- if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
- throw new RangeError('out of range index')
- }
-
- if (thisStart >= thisEnd && start >= end) {
- return 0
- }
- if (thisStart >= thisEnd) {
- return -1
- }
- if (start >= end) {
- return 1
- }
-
- start >>>= 0
- end >>>= 0
- thisStart >>>= 0
- thisEnd >>>= 0
-
- if (this === target) return 0
-
- var x = thisEnd - thisStart
- var y = end - start
- var len = Math.min(x, y)
-
- var thisCopy = this.slice(thisStart, thisEnd)
- var targetCopy = target.slice(start, end)
-
- for (var i = 0; i < len; ++i) {
- if (thisCopy[i] !== targetCopy[i]) {
- x = thisCopy[i]
- y = targetCopy[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
-// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
-//
-// Arguments:
-// - buffer - a Buffer to search
-// - val - a string, Buffer, or number
-// - byteOffset - an index into `buffer`; will be clamped to an int32
-// - encoding - an optional encoding, relevant is val is a string
-// - dir - true for indexOf, false for lastIndexOf
-function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
- // Empty buffer means no match
- if (buffer.length === 0) return -1
-
- // Normalize byteOffset
- if (typeof byteOffset === 'string') {
- encoding = byteOffset
- byteOffset = 0
- } else if (byteOffset > 0x7fffffff) {
- byteOffset = 0x7fffffff
- } else if (byteOffset < -0x80000000) {
- byteOffset = -0x80000000
- }
- byteOffset = +byteOffset // Coerce to Number.
- if (isNaN(byteOffset)) {
- // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
- byteOffset = dir ? 0 : (buffer.length - 1)
- }
-
- // Normalize byteOffset: negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = buffer.length + byteOffset
- if (byteOffset >= buffer.length) {
- if (dir) return -1
- else byteOffset = buffer.length - 1
- } else if (byteOffset < 0) {
- if (dir) byteOffset = 0
- else return -1
- }
-
- // Normalize val
- if (typeof val === 'string') {
- val = Buffer.from(val, encoding)
- }
-
- // Finally, search either indexOf (if dir is true) or lastIndexOf
- if (Buffer.isBuffer(val)) {
- // Special case: looking for empty string/buffer always fails
- if (val.length === 0) {
- return -1
- }
- return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
- } else if (typeof val === 'number') {
- val = val & 0xFF // Search for a byte value [0-255]
- if (Buffer.TYPED_ARRAY_SUPPORT &&
- typeof Uint8Array.prototype.indexOf === 'function') {
- if (dir) {
- return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
- } else {
- return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
- }
- }
- return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
- }
-
- throw new TypeError('val must be string, number or Buffer')
-}
-
-function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
- var indexSize = 1
- var arrLength = arr.length
- var valLength = val.length
-
- if (encoding !== undefined) {
- encoding = String(encoding).toLowerCase()
- if (encoding === 'ucs2' || encoding === 'ucs-2' ||
- encoding === 'utf16le' || encoding === 'utf-16le') {
- if (arr.length < 2 || val.length < 2) {
- return -1
- }
- indexSize = 2
- arrLength /= 2
- valLength /= 2
- byteOffset /= 2
- }
- }
-
- function read (buf, i) {
- if (indexSize === 1) {
- return buf[i]
- } else {
- return buf.readUInt16BE(i * indexSize)
- }
- }
-
- var i
- if (dir) {
- var foundIndex = -1
- for (i = byteOffset; i < arrLength; i++) {
- if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
- if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
- } else {
- if (foundIndex !== -1) i -= i - foundIndex
- foundIndex = -1
- }
- }
- } else {
- if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
- for (i = byteOffset; i >= 0; i--) {
- var found = true
- for (var j = 0; j < valLength; j++) {
- if (read(arr, i + j) !== read(val, j)) {
- found = false
- break
- }
- }
- if (found) return i
- }
- }
-
- return -1
-}
-
-Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
- return this.indexOf(val, byteOffset, encoding) !== -1
-}
-
-Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
-}
-
-Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
-}
-
-function hexWrite (buf, string, offset, length) {
- offset = Number(offset) || 0
- var remaining = buf.length - offset
- if (!length) {
- length = remaining
- } else {
- length = Number(length)
- if (length > remaining) {
- length = remaining
- }
- }
-
- // must be an even number of digits
- var strLen = string.length
- if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
-
- if (length > strLen / 2) {
- length = strLen / 2
- }
- for (var i = 0; i < length; ++i) {
- var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) return i
- 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 latin1Write (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)
-}
-
-Buffer.prototype.write = function write (string, offset, length, encoding) {
- // Buffer#write(string)
- if (offset === undefined) {
- encoding = 'utf8'
- length = this.length
- offset = 0
- // Buffer#write(string, encoding)
- } else if (length === undefined && typeof offset === 'string') {
- encoding = offset
- length = this.length
- offset = 0
- // Buffer#write(string, offset[, length][, encoding])
- } else if (isFinite(offset)) {
- offset = offset | 0
- if (isFinite(length)) {
- length = length | 0
- if (encoding === undefined) encoding = 'utf8'
- } else {
- encoding = length
- length = undefined
- }
- // legacy write(string, encoding, offset, length) - remove in v0.13
- } else {
- throw new Error(
- 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
- )
- }
-
- var remaining = this.length - offset
- if (length === undefined || length > remaining) length = remaining
-
- if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('Attempt to write outside buffer bounds')
- }
-
- if (!encoding) encoding = 'utf8'
-
- var loweredCase = false
- for (;;) {
- 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 'latin1':
- case 'binary':
- return latin1Write(this, string, offset, length)
-
- case 'base64':
- // Warning: maxLength not taken into account in base64Write
- 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 = true
- }
- }
-}
-
-Buffer.prototype.toJSON = function toJSON () {
- return {
- type: 'Buffer',
- data: Array.prototype.slice.call(this._arr || this, 0)
- }
-}
-
-function base64Slice (buf, start, end) {
- if (start === 0 && end === buf.length) {
- return base64.fromByteArray(buf)
- } else {
- return base64.fromByteArray(buf.slice(start, end))
- }
-}
-
-function utf8Slice (buf, start, end) {
- end = Math.min(buf.length, end)
- var res = []
-
- var i = start
- while (i < end) {
- var firstByte = buf[i]
- var codePoint = null
- var bytesPerSequence = (firstByte > 0xEF) ? 4
- : (firstByte > 0xDF) ? 3
- : (firstByte > 0xBF) ? 2
- : 1
-
- if (i + bytesPerSequence <= end) {
- var secondByte, thirdByte, fourthByte, tempCodePoint
-
- switch (bytesPerSequence) {
- case 1:
- if (firstByte < 0x80) {
- codePoint = firstByte
- }
- break
- case 2:
- secondByte = buf[i + 1]
- if ((secondByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
- if (tempCodePoint > 0x7F) {
- codePoint = tempCodePoint
- }
- }
- break
- case 3:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
- if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
- codePoint = tempCodePoint
- }
- }
- break
- case 4:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- fourthByte = buf[i + 3]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
- if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
- codePoint = tempCodePoint
- }
- }
- }
- }
-
- if (codePoint === null) {
- // we did not generate a valid codePoint so insert a
- // replacement char (U+FFFD) and advance only 1 byte
- codePoint = 0xFFFD
- bytesPerSequence = 1
- } else if (codePoint > 0xFFFF) {
- // encode to utf16 (surrogate pair dance)
- codePoint -= 0x10000
- res.push(codePoint >>> 10 & 0x3FF | 0xD800)
- codePoint = 0xDC00 | codePoint & 0x3FF
- }
-
- res.push(codePoint)
- i += bytesPerSequence
- }
-
- return decodeCodePointsArray(res)
-}
-
-// Based on http://stackoverflow.com/a/22747272/680742, the browser with
-// the lowest limit is Chrome, with 0x10000 args.
-// We go 1 magnitude less, for safety
-var MAX_ARGUMENTS_LENGTH = 0x1000
-
-function decodeCodePointsArray (codePoints) {
- var len = codePoints.length
- if (len <= MAX_ARGUMENTS_LENGTH) {
- return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
- }
-
- // Decode in chunks to avoid "call stack size exceeded".
- var res = ''
- var i = 0
- while (i < len) {
- res += String.fromCharCode.apply(
- String,
- codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
- )
- }
- return res
-}
-
-function asciiSlice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i] & 0x7F)
- }
- return ret
-}
-
-function latin1Slice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i])
- }
- return ret
-}
-
-function hexSlice (buf, start, end) {
- var len = buf.length
-
- if (!start || start < 0) start = 0
- if (!end || end < 0 || end > len) end = len
-
- var out = ''
- for (var i = start; i < end; ++i) {
- out += toHex(buf[i])
- }
- return out
-}
-
-function utf16leSlice (buf, start, end) {
- var bytes = buf.slice(start, end)
- var res = ''
- for (var i = 0; i < bytes.length; i += 2) {
- res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
- }
- return res
-}
-
-Buffer.prototype.slice = function slice (start, end) {
- var len = this.length
- start = ~~start
- end = end === undefined ? len : ~~end
-
- if (start < 0) {
- start += len
- if (start < 0) start = 0
- } else if (start > len) {
- start = len
- }
-
- if (end < 0) {
- end += len
- if (end < 0) end = 0
- } else if (end > len) {
- end = len
- }
-
- if (end < start) end = start
-
- var newBuf
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = this.subarray(start, end)
- newBuf.__proto__ = Buffer.prototype
- } else {
- var sliceLen = end - start
- newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; ++i) {
- newBuf[i] = this[i + start]
- }
- }
-
- return newBuf
-}
-
-/*
- * Need to make sure that buffer isn't trying to write out of bounds.
- */
-function checkOffset (offset, ext, length) {
- if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
- if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
-}
-
-Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- checkOffset(offset, byteLength, this.length)
- }
-
- var val = this[offset + --byteLength]
- var mul = 1
- while (byteLength > 0 && (mul *= 0x100)) {
- val += this[offset + --byteLength] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- return this[offset]
-}
-
-Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return this[offset] | (this[offset + 1] << 8)
-}
-
-Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return (this[offset] << 8) | this[offset + 1]
-}
-
-Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return ((this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16)) +
- (this[offset + 3] * 0x1000000)
-}
-
-Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] * 0x1000000) +
- ((this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- this[offset + 3])
-}
-
-Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var i = byteLength
- var mul = 1
- var val = this[offset + --i]
- while (i > 0 && (mul *= 0x100)) {
- val += this[offset + --i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- if (!(this[offset] & 0x80)) return (this[offset])
- return ((0xff - this[offset] + 1) * -1)
-}
-
-Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset] | (this[offset + 1] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset + 1] | (this[offset] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16) |
- (this[offset + 3] << 24)
-}
-
-Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] << 24) |
- (this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- (this[offset + 3])
-}
-
-Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, true, 23, 4)
-}
-
-Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, false, 23, 4)
-}
-
-Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, true, 52, 8)
-}
-
-Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, false, 52, 8)
-}
-
-function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
-}
-
-Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var mul = 1
- var i = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var i = byteLength - 1
- var mul = 1
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-function objectWriteUInt16 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
- buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
- (littleEndian ? i : 1 - i) * 8
- }
-}
-
-Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-function objectWriteUInt32 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
- buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
- }
-}
-
-Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset + 3] = (value >>> 24)
- this[offset + 2] = (value >>> 16)
- this[offset + 1] = (value >>> 8)
- this[offset] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = 0
- var mul = 1
- var sub = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = byteLength - 1
- var mul = 1
- var sub = 0
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- if (value < 0) value = 0xff + value + 1
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- this[offset + 2] = (value >>> 16)
- this[offset + 3] = (value >>> 24)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (value < 0) value = 0xffffffff + value + 1
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
- if (offset < 0) throw new RangeError('Index out of range')
-}
-
-function writeFloat (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
- }
- ieee754.write(buf, value, offset, littleEndian, 23, 4)
- return offset + 4
-}
-
-Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
- return writeFloat(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
- return writeFloat(this, value, offset, false, noAssert)
-}
-
-function writeDouble (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
- }
- ieee754.write(buf, value, offset, littleEndian, 52, 8)
- return offset + 8
-}
-
-Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
- return writeDouble(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
- return writeDouble(this, value, offset, false, noAssert)
-}
-
-// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
-Buffer.prototype.copy = function copy (target, targetStart, start, end) {
- if (!start) start = 0
- if (!end && end !== 0) end = this.length
- if (targetStart >= target.length) targetStart = target.length
- if (!targetStart) targetStart = 0
- if (end > 0 && end < start) end = start
-
- // Copy 0 bytes; we're done
- if (end === start) return 0
- if (target.length === 0 || this.length === 0) return 0
-
- // Fatal error conditions
- if (targetStart < 0) {
- throw new RangeError('targetStart out of bounds')
- }
- if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
- if (end < 0) throw new RangeError('sourceEnd out of bounds')
-
- // Are we oob?
- if (end > this.length) end = this.length
- if (target.length - targetStart < end - start) {
- end = target.length - targetStart + start
- }
-
- var len = end - start
- var i
-
- if (this === target && start < targetStart && targetStart < end) {
- // descending copy from end
- for (i = len - 1; i >= 0; --i) {
- target[i + targetStart] = this[i + start]
- }
- } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
- // ascending copy from start
- for (i = 0; i < len; ++i) {
- target[i + targetStart] = this[i + start]
- }
- } else {
- Uint8Array.prototype.set.call(
- target,
- this.subarray(start, start + len),
- targetStart
- )
- }
-
- return len
-}
-
-// Usage:
-// buffer.fill(number[, offset[, end]])
-// buffer.fill(buffer[, offset[, end]])
-// buffer.fill(string[, offset[, end]][, encoding])
-Buffer.prototype.fill = function fill (val, start, end, encoding) {
- // Handle string cases:
- if (typeof val === 'string') {
- if (typeof start === 'string') {
- encoding = start
- start = 0
- end = this.length
- } else if (typeof end === 'string') {
- encoding = end
- end = this.length
- }
- if (val.length === 1) {
- var code = val.charCodeAt(0)
- if (code < 256) {
- val = code
- }
- }
- if (encoding !== undefined && typeof encoding !== 'string') {
- throw new TypeError('encoding must be a string')
- }
- if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
- throw new TypeError('Unknown encoding: ' + encoding)
- }
- } else if (typeof val === 'number') {
- val = val & 255
- }
-
- // Invalid ranges are not set to a default, so can range check early.
- if (start < 0 || this.length < start || this.length < end) {
- throw new RangeError('Out of range index')
- }
-
- if (end <= start) {
- return this
- }
-
- start = start >>> 0
- end = end === undefined ? this.length : end >>> 0
-
- if (!val) val = 0
-
- var i
- if (typeof val === 'number') {
- for (i = start; i < end; ++i) {
- this[i] = val
- }
- } else {
- var bytes = Buffer.isBuffer(val)
- ? val
- : utf8ToBytes(new Buffer(val, encoding).toString())
- var len = bytes.length
- for (i = 0; i < end - start; ++i) {
- this[i + start] = bytes[i % len]
- }
- }
-
- return this
-}
-
-// HELPER FUNCTIONS
-// ================
-
-var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
-
-function base64clean (str) {
- // Node strips out invalid characters like \n and \t from the string, base64-js does not
- str = stringtrim(str).replace(INVALID_BASE64_RE, '')
- // Node converts strings with length < 2 to ''
- if (str.length < 2) return ''
- // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
- while (str.length % 4 !== 0) {
- str = str + '='
- }
- return str
-}
-
-function stringtrim (str) {
- if (str.trim) return str.trim()
- return str.replace(/^\s+|\s+$/g, '')
-}
-
-function toHex (n) {
- if (n < 16) return '0' + n.toString(16)
- return n.toString(16)
-}
-
-function utf8ToBytes (string, units) {
- units = units || Infinity
- var codePoint
- var length = string.length
- var leadSurrogate = null
- var bytes = []
-
- for (var i = 0; i < length; ++i) {
- codePoint = string.charCodeAt(i)
-
- // is surrogate component
- if (codePoint > 0xD7FF && codePoint < 0xE000) {
- // last char was a lead
- if (!leadSurrogate) {
- // no lead yet
- if (codePoint > 0xDBFF) {
- // unexpected trail
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- } else if (i + 1 === length) {
- // unpaired lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- }
-
- // valid lead
- leadSurrogate = codePoint
-
- continue
- }
-
- // 2 leads in a row
- if (codePoint < 0xDC00) {
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- leadSurrogate = codePoint
- continue
- }
-
- // valid surrogate pair
- codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
- } else if (leadSurrogate) {
- // valid bmp char, but last char was a lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- }
-
- leadSurrogate = null
-
- // encode utf8
- if (codePoint < 0x80) {
- if ((units -= 1) < 0) break
- bytes.push(codePoint)
- } else if (codePoint < 0x800) {
- if ((units -= 2) < 0) break
- bytes.push(
- codePoint >> 0x6 | 0xC0,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x10000) {
- if ((units -= 3) < 0) break
- bytes.push(
- codePoint >> 0xC | 0xE0,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x110000) {
- if ((units -= 4) < 0) break
- bytes.push(
- codePoint >> 0x12 | 0xF0,
- codePoint >> 0xC & 0x3F | 0x80,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else {
- throw new Error('Invalid code point')
- }
- }
-
- return bytes
-}
-
-function asciiToBytes (str) {
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- // Node's code seems to be doing this and not & 0x7F..
- byteArray.push(str.charCodeAt(i) & 0xFF)
- }
- return byteArray
-}
-
-function utf16leToBytes (str, units) {
- var c, hi, lo
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- if ((units -= 2) < 0) break
-
- 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; i < length; ++i) {
- if ((i + offset >= dst.length) || (i >= src.length)) break
- dst[i + offset] = src[i]
- }
- return i
-}
-
-function isnan (val) {
- return val !== val // eslint-disable-line no-self-compare
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"base64-js":3,"ieee754":44,"isarray":48}],7:[function(require,module,exports){
-(function (Buffer){
-var Transform = require('stream').Transform
-var inherits = require('inherits')
-var StringDecoder = require('string_decoder').StringDecoder
-module.exports = CipherBase
-inherits(CipherBase, Transform)
-function CipherBase (hashMode) {
- Transform.call(this)
- this.hashMode = typeof hashMode === 'string'
- if (this.hashMode) {
- this[hashMode] = this._finalOrDigest
- } else {
- this.final = this._finalOrDigest
- }
- this._decoder = null
- this._encoding = null
-}
-CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
- if (typeof data === 'string') {
- data = new Buffer(data, inputEnc)
- }
- var outData = this._update(data)
- if (this.hashMode) {
- return this
- }
- if (outputEnc) {
- outData = this._toString(outData, outputEnc)
- }
- return outData
-}
-
-CipherBase.prototype.setAutoPadding = function () {}
-
-CipherBase.prototype.getAuthTag = function () {
- throw new Error('trying to get auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAuthTag = function () {
- throw new Error('trying to set auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAAD = function () {
- throw new Error('trying to set aad in unsupported state')
-}
-
-CipherBase.prototype._transform = function (data, _, next) {
- var err
- try {
- if (this.hashMode) {
- this._update(data)
- } else {
- this.push(this._update(data))
- }
- } catch (e) {
- err = e
- } finally {
- next(err)
- }
-}
-CipherBase.prototype._flush = function (done) {
- var err
- try {
- this.push(this._final())
- } catch (e) {
- err = e
- } finally {
- done(err)
- }
-}
-CipherBase.prototype._finalOrDigest = function (outputEnc) {
- var outData = this._final() || new Buffer('')
- if (outputEnc) {
- outData = this._toString(outData, outputEnc, true)
- }
- return outData
-}
-
-CipherBase.prototype._toString = function (value, enc, fin) {
- if (!this._decoder) {
- this._decoder = new StringDecoder(enc)
- this._encoding = enc
- }
- if (this._encoding !== enc) {
- throw new Error('can\'t switch encodings')
- }
- var out = this._decoder.write(value)
- if (fin) {
- out += this._decoder.end()
- }
- return out
-}
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":6,"inherits":45,"stream":182,"string_decoder":183}],8:[function(require,module,exports){
-require('../../modules/es6.object.assign');
-module.exports = require('../../modules/$.core').Object.assign;
-},{"../../modules/$.core":11,"../../modules/es6.object.assign":21}],9:[function(require,module,exports){
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-};
-},{}],10:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-};
-},{}],11:[function(require,module,exports){
-var core = module.exports = {version: '1.2.6'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-},{}],12:[function(require,module,exports){
-// optional / simple context binding
-var aFunction = require('./$.a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-};
-},{"./$.a-function":9}],13:[function(require,module,exports){
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-};
-},{}],14:[function(require,module,exports){
-var global = require('./$.global')
- , core = require('./$.core')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export;
-},{"./$.core":11,"./$.ctx":12,"./$.global":16}],15:[function(require,module,exports){
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-};
-},{}],16:[function(require,module,exports){
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-},{}],17:[function(require,module,exports){
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./$.cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-};
-},{"./$.cof":10}],18:[function(require,module,exports){
-var $Object = Object;
-module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
-};
-},{}],19:[function(require,module,exports){
-// 19.1.2.1 Object.assign(target, source, ...)
-var $ = require('./$')
- , toObject = require('./$.to-object')
- , IObject = require('./$.iobject');
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = require('./$.fails')(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
-} : Object.assign;
-},{"./$":18,"./$.fails":15,"./$.iobject":17,"./$.to-object":20}],20:[function(require,module,exports){
-// 7.1.13 ToObject(argument)
-var defined = require('./$.defined');
-module.exports = function(it){
- return Object(defined(it));
-};
-},{"./$.defined":13}],21:[function(require,module,exports){
-// 19.1.3.1 Object.assign(target, source)
-var $export = require('./$.export');
-
-$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
-},{"./$.export":14,"./$.object-assign":19}],22:[function(require,module,exports){
-(function (Buffer){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-
-function isArray(arg) {
- if (Array.isArray) {
- return Array.isArray(arg);
- }
- return objectToString(arg) === '[object Array]';
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = Buffer.isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-
-}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
-},{"../../is-buffer/index.js":47}],23:[function(require,module,exports){
-(function (Buffer){
-'use strict';
-var inherits = require('inherits')
-var md5 = require('./md5')
-var rmd160 = require('ripemd160')
-var sha = require('sha.js')
-
-var Base = require('cipher-base')
-
-function HashNoConstructor(hash) {
- Base.call(this, 'digest')
-
- this._hash = hash
- this.buffers = []
-}
-
-inherits(HashNoConstructor, Base)
-
-HashNoConstructor.prototype._update = function (data) {
- this.buffers.push(data)
-}
-
-HashNoConstructor.prototype._final = function () {
- var buf = Buffer.concat(this.buffers)
- var r = this._hash(buf)
- this.buffers = null
-
- return r
-}
-
-function Hash(hash) {
- Base.call(this, 'digest')
-
- this._hash = hash
-}
-
-inherits(Hash, Base)
-
-Hash.prototype._update = function (data) {
- this._hash.update(data)
-}
-
-Hash.prototype._final = function () {
- return this._hash.digest()
-}
-
-module.exports = function createHash (alg) {
- alg = alg.toLowerCase()
- if ('md5' === alg) return new HashNoConstructor(md5)
- if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
-
- return new Hash(sha(alg))
-}
-
-}).call(this,require("buffer").Buffer)
-},{"./md5":25,"buffer":6,"cipher-base":7,"inherits":45,"ripemd160":166,"sha.js":175}],24:[function(require,module,exports){
-(function (Buffer){
-'use strict';
-var intSize = 4;
-var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(0);
-var chrsz = 8;
-
-function toArray(buf, bigEndian) {
- if ((buf.length % intSize) !== 0) {
- var len = buf.length + (intSize - (buf.length % intSize));
- buf = Buffer.concat([buf, zeroBuffer], len);
- }
-
- var arr = [];
- var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
- for (var i = 0; i < buf.length; i += intSize) {
- arr.push(fn.call(buf, i));
- }
- return arr;
-}
-
-function toBuffer(arr, size, bigEndian) {
- var buf = new Buffer(size);
- var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
- for (var i = 0; i < arr.length; i++) {
- fn.call(buf, arr[i], i * 4, true);
- }
- return buf;
-}
-
-function hash(buf, fn, hashSize, bigEndian) {
- if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
- var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
- return toBuffer(arr, hashSize, bigEndian);
-}
-exports.hash = hash;
-}).call(this,require("buffer").Buffer)
-},{"buffer":6}],25:[function(require,module,exports){
-'use strict';
-/*
- * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
- * Digest Algorithm, as defined in RFC 1321.
- * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for more info.
- */
-
-var helpers = require('./helpers');
-
-/*
- * Calculate the MD5 of an array of little-endian words, and a bit length
- */
-function core_md5(x, len)
-{
- /* append padding */
- x[len >> 5] |= 0x80 << ((len) % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
-
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
- var d = 271733878;
-
- for(var i = 0; i < x.length; i += 16)
- {
- var olda = a;
- var oldb = b;
- var oldc = c;
- var 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);
-
-}
-
-/*
- * These functions implement the four basic operations the algorithm uses.
- */
-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);
-}
-
-/*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */
-function safe_add(x, y)
-{
- var lsw = (x & 0xFFFF) + (y & 0xFFFF);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function bit_rol(num, cnt)
-{
- return (num << cnt) | (num >>> (32 - cnt));
-}
-
-module.exports = function md5(buf) {
- return helpers.hash(buf, core_md5, 16);
-};
-},{"./helpers":24}],26:[function(require,module,exports){
-(function (Buffer){
-'use strict';
-var createHash = require('create-hash/browser');
-var inherits = require('inherits')
-
-var Transform = require('stream').Transform
-
-var ZEROS = new Buffer(128)
-ZEROS.fill(0)
-
-function Hmac(alg, key) {
- Transform.call(this)
- alg = alg.toLowerCase()
- if (typeof key === 'string') {
- key = new Buffer(key)
- }
-
- var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
-
- this._alg = alg
- this._key = key
-
- if (key.length > blocksize) {
- key = createHash(alg).update(key).digest()
-
- } else if (key.length < blocksize) {
- key = Buffer.concat([key, ZEROS], blocksize)
- }
-
- var ipad = this._ipad = new Buffer(blocksize)
- var opad = this._opad = new Buffer(blocksize)
-
- for (var i = 0; i < blocksize; i++) {
- ipad[i] = key[i] ^ 0x36
- opad[i] = key[i] ^ 0x5C
- }
-
- this._hash = createHash(alg).update(ipad)
-}
-
-inherits(Hmac, Transform)
-
-Hmac.prototype.update = function (data, enc) {
- this._hash.update(data, enc)
-
- return 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 createHmac(alg, key) {
- return new Hmac(alg, key)
-}
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":6,"create-hash/browser":23,"inherits":45,"stream":182}],27:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-function EventEmitter() {
- this._events = this._events || {};
- this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
-
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
-
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
-
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-EventEmitter.defaultMaxListeners = 10;
-
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function(n) {
- if (!isNumber(n) || n < 0 || isNaN(n))
- throw TypeError('n must be a positive number');
- this._maxListeners = n;
- return this;
-};
-
-EventEmitter.prototype.emit = function(type) {
- var er, handler, len, args, i, listeners;
-
- if (!this._events)
- this._events = {};
-
- // If there is no 'error' event listener then throw.
- if (type === 'error') {
- if (!this._events.error ||
- (isObject(this._events.error) && !this._events.error.length)) {
- er = arguments[1];
- if (er instanceof Error) {
- throw er; // Unhandled 'error' event
- } else {
- // At least give some kind of context to the user
- var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
- err.context = er;
- throw err;
- }
- }
- }
-
- handler = this._events[type];
-
- if (isUndefined(handler))
- return false;
-
- if (isFunction(handler)) {
- switch (arguments.length) {
- // fast cases
- case 1:
- handler.call(this);
- break;
- case 2:
- handler.call(this, arguments[1]);
- break;
- case 3:
- handler.call(this, arguments[1], arguments[2]);
- break;
- // slower
- default:
- args = Array.prototype.slice.call(arguments, 1);
- handler.apply(this, args);
- }
- } else if (isObject(handler)) {
- args = Array.prototype.slice.call(arguments, 1);
- listeners = handler.slice();
- len = listeners.length;
- for (i = 0; i < len; i++)
- listeners[i].apply(this, args);
- }
-
- return true;
-};
-
-EventEmitter.prototype.addListener = function(type, listener) {
- var m;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events)
- this._events = {};
-
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (this._events.newListener)
- this.emit('newListener', type,
- isFunction(listener.listener) ?
- listener.listener : listener);
-
- if (!this._events[type])
- // Optimize the case of one listener. Don't need the extra array object.
- this._events[type] = listener;
- else if (isObject(this._events[type]))
- // If we've already got an array, just append.
- this._events[type].push(listener);
- else
- // Adding the second element, need to change to array.
- this._events[type] = [this._events[type], listener];
-
- // Check for listener leak
- if (isObject(this._events[type]) && !this._events[type].warned) {
- if (!isUndefined(this._maxListeners)) {
- m = this._maxListeners;
- } else {
- m = EventEmitter.defaultMaxListeners;
- }
-
- if (m && m > 0 && this._events[type].length > m) {
- this._events[type].warned = true;
- console.error('(node) warning: possible EventEmitter memory ' +
- 'leak detected. %d listeners added. ' +
- 'Use emitter.setMaxListeners() to increase limit.',
- this._events[type].length);
- if (typeof console.trace === 'function') {
- // not supported in IE 10
- console.trace();
- }
- }
- }
-
- return this;
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.once = function(type, listener) {
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- var fired = false;
-
- function g() {
- this.removeListener(type, g);
-
- if (!fired) {
- fired = true;
- listener.apply(this, arguments);
- }
- }
-
- g.listener = listener;
- this.on(type, g);
-
- return this;
-};
-
-// emits a 'removeListener' event iff the listener was removed
-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;
-
- list = this._events[type];
- length = list.length;
- position = -1;
-
- if (list === listener ||
- (isFunction(list.listener) && list.listener === listener)) {
- delete this._events[type];
- if (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 (position < 0)
- return this;
-
- if (list.length === 1) {
- list.length = 0;
- delete this._events[type];
- } else {
- list.splice(position, 1);
- }
-
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
- }
-
- return this;
-};
-
-EventEmitter.prototype.removeAllListeners = function(type) {
- var key, listeners;
-
- if (!this._events)
- return this;
-
- // not listening for removeListener, no need to emit
- if (!this._events.removeListener) {
- if (arguments.length === 0)
- this._events = {};
- else if (this._events[type])
- delete this._events[type];
- return this;
- }
-
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- for (key in this._events) {
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = {};
- return this;
- }
-
- listeners = this._events[type];
-
- if (isFunction(listeners)) {
- this.removeListener(type, listeners);
- } else if (listeners) {
- // LIFO order
- while (listeners.length)
- this.removeListener(type, listeners[listeners.length - 1]);
- }
- delete this._events[type];
-
- return this;
-};
-
-EventEmitter.prototype.listeners = function(type) {
- var ret;
- if (!this._events || !this._events[type])
- ret = [];
- else if (isFunction(this._events[type]))
- ret = [this._events[type]];
- else
- ret = this._events[type].slice();
- return ret;
-};
-
-EventEmitter.prototype.listenerCount = function(type) {
- if (this._events) {
- var evlistener = this._events[type];
-
- if (isFunction(evlistener))
- return 1;
- else if (evlistener)
- return evlistener.length;
- }
- return 0;
-};
-
-EventEmitter.listenerCount = function(emitter, type) {
- return emitter.listenerCount(type);
-};
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-
-},{}],28:[function(require,module,exports){
-var arr = [];
-var each = arr.forEach;
-var slice = arr.slice;
-
-
-module.exports = function(obj) {
- each.call(slice.call(arguments, 1), function(source) {
- if (source) {
- for (var prop in source) {
- obj[prop] = source[prop];
- }
- }
- });
- return obj;
-};
-
-},{}],29:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-
-function Sender(opts) {
- WildEmitter.call(this);
- var options = opts || {};
- this.config = {
- chunksize: 16384,
- pacing: 0
- };
- // set our config from options
- var item;
- for (item in options) {
- this.config[item] = options[item];
- }
-
- this.file = null;
- this.channel = null;
-}
-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);
- if (file.size > offset + e.target.result.byteLength) {
- window.setTimeout(sliceFile, self.config.pacing, offset + self.config.chunksize);
- } else {
- 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);
-};
-
-function Receiver() {
- WildEmitter.call(this);
-
- this.receiveBuffer = [];
- this.received = 0;
- this.metadata = {};
- this.channel = null;
-}
-util.inherits(Receiver, WildEmitter);
-
-Receiver.prototype.receive = function (metadata, channel) {
- var self = this;
-
- if (metadata) {
- this.metadata = metadata;
- }
- this.channel = channel;
- // chrome only supports arraybuffers and those make it easier to calc the hash
- 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);
- if (self.received === self.metadata.size) {
- self.emit('receivedFile', new window.Blob(self.receiveBuffer), self.metadata);
- self.receiveBuffer = []; // discard receivebuffer
- } else if (self.received > self.metadata.size) {
- // FIXME
- console.error('received more than expected, discarding...');
- self.receiveBuffer = []; // just discard...
-
- }
- };
-};
-
-module.exports = {};
-module.exports.support = typeof window !== 'undefined' && window && window.File && window.FileReader && window.Blob;
-module.exports.Sender = Sender;
-module.exports.Receiver = Receiver;
-
-},{"util":197,"wildemitter":211}],30:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-var hashes = require('iana-hashes');
-var base = require('./filetransfer');
-
-// drop-in replacement for filetransfer which also calculates hashes
-function Sender(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Sender(opts);
-
- var options = opts || {};
- if (!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);
- if (data) {
- self.hash.update(new Uint8Array(data));
- }
- });
- this.base.on('sentFile', function () {
- self.emit('sentFile', {hash: self.hash.digest('hex'), algo: options.hash });
- });
-}
-util.inherits(Sender, WildEmitter);
-Sender.prototype.send = function () {
- this.base.send.apply(this.base, arguments);
-};
-
-function Receiver(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Receiver(opts);
-
- var options = opts || {};
- if (!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);
- if (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);
- });
-}
-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":42,"util":197,"wildemitter":211}],31:[function(require,module,exports){
-// getScreenMedia helper by @HenrikJoreteg
-var getUserMedia = require('getusermedia');
-
-// cache for constraints and callback
-var cache = {};
-
-module.exports = function (constraints, cb) {
- var hasConstraints = arguments.length === 2;
- var callback = hasConstraints ? cb : constraints;
- var error;
-
- if (typeof window === 'undefined' || window.location.protocol === 'http:') {
- error = new Error('NavigatorUserMediaError');
- error.name = 'HTTPS_REQUIRED';
- return callback(error);
- }
-
- if (window.navigator.userAgent.match('Chrome')) {
- var chromever = parseInt(window.navigator.userAgent.match(/Chrome\/(.*) /)[1], 10);
- var maxver = 33;
- var isCef = !window.chrome.webstore;
- // "known" crash in chrome 34 and 35 on linux
- if (window.navigator.userAgent.match('Linux')) maxver = 35;
-
- // check that the extension is installed by looking for a
- // sessionStorage variable that contains the extension id
- // this has to be set after installation unless the contest
- // script does that
- if (sessionStorage.getScreenMediaJSExtensionId) {
- chrome.runtime.sendMessage(sessionStorage.getScreenMediaJSExtensionId,
- {type:'getScreen', id: 1}, null,
- function (data) {
- if (!data || data.sourceId === '') { // user canceled
- var error = new Error('NavigatorUserMediaError');
- error.name = 'PERMISSION_DENIED';
- callback(error);
- } else {
- constraints = (hasConstraints && constraints) || {audio: false, video: {
- mandatory: {
- chromeMediaSource: 'desktop',
- maxWidth: window.screen.width,
- maxHeight: window.screen.height,
- maxFrameRate: 3
- }
- }};
- constraints.video.mandatory.chromeMediaSourceId = data.sourceId;
- getUserMedia(constraints, callback);
- }
- }
- );
- } else if (window.cefGetScreenMedia) {
- //window.cefGetScreenMedia is experimental - may be removed without notice
- window.cefGetScreenMedia(function(sourceId) {
- if (!sourceId) {
- var error = new Error('cefGetScreenMediaError');
- error.name = 'CEF_GETSCREENMEDIA_CANCELED';
- callback(error);
- } else {
- constraints = (hasConstraints && constraints) || {audio: false, video: {
- mandatory: {
- chromeMediaSource: 'desktop',
- maxWidth: window.screen.width,
- maxHeight: window.screen.height,
- maxFrameRate: 3
- },
- optional: [
- {googLeakyBucket: true},
- {googTemporalLayeredScreencast: true}
- ]
- }};
- constraints.video.mandatory.chromeMediaSourceId = sourceId;
- getUserMedia(constraints, callback);
- }
- });
- } else if (isCef || (chromever >= 26 && chromever <= maxver)) {
- // chrome 26 - chrome 33 way to do it -- requires bad chrome://flags
- // note: this is basically in maintenance mode and will go away soon
- constraints = (hasConstraints && constraints) || {
- video: {
- mandatory: {
- googLeakyBucket: true,
- maxWidth: window.screen.width,
- maxHeight: window.screen.height,
- maxFrameRate: 3,
- chromeMediaSource: 'screen'
- }
- }
- };
- getUserMedia(constraints, callback);
- } else {
- // chrome 34+ way requiring an extension
- var pending = window.setTimeout(function () {
- error = new Error('NavigatorUserMediaError');
- error.name = 'EXTENSION_UNAVAILABLE';
- return callback(error);
- }, 1000);
- cache[pending] = [callback, hasConstraints ? constraints : null];
- window.postMessage({ type: 'getScreen', id: pending }, '*');
- }
- } else if (window.navigator.userAgent.match('Firefox')) {
- var ffver = parseInt(window.navigator.userAgent.match(/Firefox\/(.*)/)[1], 10);
- if (ffver >= 33) {
- constraints = (hasConstraints && constraints) || {
- video: {
- mozMediaSource: 'window',
- mediaSource: 'window'
- }
- };
- getUserMedia(constraints, function (err, stream) {
- callback(err, stream);
- // workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1045810
- if (!err) {
- var lastTime = stream.currentTime;
- var polly = window.setInterval(function () {
- if (!stream) window.clearInterval(polly);
- if (stream.currentTime == lastTime) {
- window.clearInterval(polly);
- if (stream.onended) {
- stream.onended();
- }
- }
- lastTime = stream.currentTime;
- }, 500);
- }
- });
- } else {
- error = new Error('NavigatorUserMediaError');
- error.name = 'EXTENSION_UNAVAILABLE'; // does not make much sense but...
- }
- }
-};
-
-window.addEventListener('message', function (event) {
- if (event.origin != window.location.origin) {
- return;
- }
- if (event.data.type == 'gotScreen' && cache[event.data.id]) {
- var data = cache[event.data.id];
- var constraints = data[1];
- var callback = data[0];
- delete cache[event.data.id];
-
- if (event.data.sourceId === '') { // user canceled
- var error = new Error('NavigatorUserMediaError');
- error.name = 'PERMISSION_DENIED';
- callback(error);
- } else {
- constraints = constraints || {audio: false, video: {
- mandatory: {
- chromeMediaSource: 'desktop',
- maxWidth: window.screen.width,
- maxHeight: window.screen.height,
- maxFrameRate: 3
- },
- optional: [
- {googLeakyBucket: true},
- {googTemporalLayeredScreencast: true}
- ]
- }};
- constraints.video.mandatory.chromeMediaSourceId = event.data.sourceId;
- getUserMedia(constraints, callback);
- }
- } else if (event.data.type == 'getScreenPending') {
- window.clearTimeout(event.data.id);
- }
-});
-
-},{"getusermedia":32}],32:[function(require,module,exports){
-// getUserMedia helper by @HenrikJoreteg used for navigator.getUserMedia shim
-var adapter = require('webrtc-adapter');
-
-module.exports = function (constraints, cb) {
- var error;
- var haveOpts = arguments.length === 2;
- var defaultOpts = {video: true, audio: true};
-
- var denied = 'PermissionDeniedError';
- var altDenied = 'PERMISSION_DENIED';
- var notSatisfied = 'ConstraintNotSatisfiedError';
-
- // make constraints optional
- if (!haveOpts) {
- cb = constraints;
- constraints = defaultOpts;
- }
-
- // treat lack of browser support like an error
- if (typeof navigator === 'undefined' || !navigator.getUserMedia) {
- // throw proper error per spec
- error = new Error('MediaStreamError');
- error.name = 'NotSupportedError';
-
- // keep all callbacks async
- return setTimeout(function () {
- cb(error);
- }, 0);
- }
-
- // normalize error handling when no media types are requested
- if (!constraints.audio && !constraints.video) {
- error = new Error('MediaStreamError');
- error.name = 'NoMediaRequestedError';
-
- // keep all callbacks async
- return setTimeout(function () {
- cb(error);
- }, 0);
- }
-
- navigator.mediaDevices.getUserMedia(constraints)
- .then(function (stream) {
- cb(null, stream);
- }).catch(function (err) {
- var error;
- // coerce into an error object since FF gives us a string
- // there are only two valid names according to the spec
- // we coerce all non-denied to "constraint not satisfied".
- if (typeof err === 'string') {
- error = new Error('MediaStreamError');
- if (err === denied || err === altDenied) {
- error.name = denied;
- } else {
- error.name = notSatisfied;
- }
- } else {
- // if we get an error object make sure '.name' property is set
- // according to spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermediaerror-and-navigatorusermediaerrorcallback
- error = err;
- if (!error.name) {
- // this is likely chrome which
- // sets a property called "ERROR_DENIED" on the error object
- // if so we make sure to set a name
- if (error[denied]) {
- err.name = denied;
- } else {
- err.name = notSatisfied;
- }
- }
- }
-
- cb(error);
- });
-};
-
-},{"webrtc-adapter":33}],33:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-
-'use strict';
-
-// Shimming starts here.
-(function() {
- // Utils.
- var logging = require('./utils').log;
- var browserDetails = require('./utils').browserDetails;
- // Export to the adapter global object visible in the browser.
- module.exports.browserDetails = browserDetails;
- module.exports.extractVersion = require('./utils').extractVersion;
- module.exports.disableLog = require('./utils').disableLog;
-
- // Uncomment the line below if you want logging to occur, including logging
- // for the switch statement below. Can also be turned on in the browser via
- // adapter.disableLog(false), but then logging from the switch statement below
- // will not appear.
- // require('./utils').disableLog(false);
-
- // Browser shims.
- var chromeShim = require('./chrome/chrome_shim') || null;
- var edgeShim = require('./edge/edge_shim') || null;
- var firefoxShim = require('./firefox/firefox_shim') || null;
- var safariShim = require('./safari/safari_shim') || null;
-
- // Shim browser if found.
- switch (browserDetails.browser) {
- case 'opera': // fallthrough as it uses chrome shims
- case 'chrome':
- if (!chromeShim || !chromeShim.shimPeerConnection) {
- logging('Chrome shim is not included in this adapter release.');
- return;
- }
- logging('adapter.js shimming chrome.');
- // Export to the adapter global object visible in the browser.
- module.exports.browserShim = chromeShim;
-
- chromeShim.shimGetUserMedia();
- chromeShim.shimMediaStream();
- chromeShim.shimSourceObject();
- chromeShim.shimPeerConnection();
- chromeShim.shimOnTrack();
- break;
- case 'firefox':
- if (!firefoxShim || !firefoxShim.shimPeerConnection) {
- logging('Firefox shim is not included in this adapter release.');
- return;
- }
- logging('adapter.js shimming firefox.');
- // Export to the adapter global object visible in the browser.
- module.exports.browserShim = firefoxShim;
-
- firefoxShim.shimGetUserMedia();
- firefoxShim.shimSourceObject();
- firefoxShim.shimPeerConnection();
- firefoxShim.shimOnTrack();
- break;
- case 'edge':
- if (!edgeShim || !edgeShim.shimPeerConnection) {
- logging('MS edge shim is not included in this adapter release.');
- return;
- }
- logging('adapter.js shimming edge.');
- // Export to the adapter global object visible in the browser.
- module.exports.browserShim = edgeShim;
-
- edgeShim.shimGetUserMedia();
- edgeShim.shimPeerConnection();
- break;
- case 'safari':
- if (!safariShim) {
- logging('Safari shim is not included in this adapter release.');
- return;
- }
- logging('adapter.js shimming safari.');
- // Export to the adapter global object visible in the browser.
- module.exports.browserShim = safariShim;
-
- safariShim.shimGetUserMedia();
- break;
- default:
- logging('Unsupported browser!');
- }
-})();
-
-},{"./chrome/chrome_shim":34,"./edge/edge_shim":36,"./firefox/firefox_shim":38,"./safari/safari_shim":40,"./utils":41}],34:[function(require,module,exports){
-
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-var logging = require('../utils.js').log;
-var browserDetails = require('../utils.js').browserDetails;
-
-var chromeShim = {
- shimMediaStream: function() {
- window.MediaStream = window.MediaStream || window.webkitMediaStream;
- },
-
- shimOnTrack: function() {
- if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
- window.RTCPeerConnection.prototype)) {
- Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
- get: function() {
- return this._ontrack;
- },
- set: function(f) {
- var self = this;
- if (this._ontrack) {
- this.removeEventListener('track', this._ontrack);
- this.removeEventListener('addstream', this._ontrackpoly);
- }
- this.addEventListener('track', this._ontrack = f);
- this.addEventListener('addstream', this._ontrackpoly = function(e) {
- // onaddstream does not fire when a track is added to an existing
- // stream. But stream.onaddtrack is implemented so we use that.
- e.stream.addEventListener('addtrack', function(te) {
- var event = new Event('track');
- event.track = te.track;
- event.receiver = {track: te.track};
- event.streams = [e.stream];
- self.dispatchEvent(event);
- });
- e.stream.getTracks().forEach(function(track) {
- var event = new Event('track');
- event.track = track;
- event.receiver = {track: track};
- event.streams = [e.stream];
- this.dispatchEvent(event);
- }.bind(this));
- }.bind(this));
- }
- });
- }
- },
-
- shimSourceObject: function() {
- if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- return this._srcObject;
- },
- set: function(stream) {
- var self = this;
- // Use _srcObject as a private property for this shim
- this._srcObject = stream;
- if (this.src) {
- URL.revokeObjectURL(this.src);
- }
-
- if (!stream) {
- this.src = '';
- return;
- }
- this.src = URL.createObjectURL(stream);
- // We need to recreate the blob url when a track is added or
- // removed. Doing it manually since we want to avoid a recursion.
- stream.addEventListener('addtrack', function() {
- if (self.src) {
- URL.revokeObjectURL(self.src);
- }
- self.src = URL.createObjectURL(stream);
- });
- stream.addEventListener('removetrack', function() {
- if (self.src) {
- URL.revokeObjectURL(self.src);
- }
- self.src = URL.createObjectURL(stream);
- });
- }
- });
- }
- }
- },
-
- shimPeerConnection: function() {
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- // Translate iceTransportPolicy to iceTransports,
- // see https://code.google.com/p/webrtc/issues/detail?id=4869
- logging('PeerConnection');
- if (pcConfig && pcConfig.iceTransportPolicy) {
- pcConfig.iceTransports = pcConfig.iceTransportPolicy;
- }
-
- var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
- var origGetStats = pc.getStats.bind(pc);
- pc.getStats = function(selector, successCallback, errorCallback) {
- var self = this;
- var args = arguments;
-
- // If selector is a function then we are in the old style stats so just
- // pass back the original getStats format to avoid breaking old users.
- if (arguments.length > 0 && typeof selector === 'function') {
- return origGetStats(selector, successCallback);
- }
-
- var fixChromeStats_ = function(response) {
- var standardReport = {};
- var reports = response.result();
- 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;
- });
-
- return standardReport;
- };
-
- // shim getStats with maplike support
- var makeMapStats = function(stats, legacyStats) {
- var map = new Map(Object.keys(stats).map(function(key) {
- return[key, stats[key]];
- }));
- legacyStats = legacyStats || stats;
- Object.keys(legacyStats).forEach(function(key) {
- map[key] = legacyStats[key];
- });
- return map;
- };
-
- if (arguments.length >= 2) {
- var successCallbackWrapper_ = function(response) {
- args[1](makeMapStats(fixChromeStats_(response)));
- };
-
- return origGetStats.apply(this, [successCallbackWrapper_,
- arguments[0]]);
- }
-
- // promise-support
- return new Promise(function(resolve, reject) {
- if (args.length === 1 && typeof selector === 'object') {
- origGetStats.apply(self, [
- function(response) {
- resolve(makeMapStats(fixChromeStats_(response)));
- }, reject]);
- } else {
- // Preserve legacy chrome stats only on legacy access of stats obj
- origGetStats.apply(self, [
- function(response) {
- resolve(makeMapStats(fixChromeStats_(response),
- response.result()));
- }, reject]);
- }
- }).then(successCallback, errorCallback);
- };
-
- return pc;
- };
- window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (webkitRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- return webkitRTCPeerConnection.generateCertificate;
- }
- });
- }
-
- ['createOffer', 'createAnswer'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var self = this;
- if (arguments.length < 1 || (arguments.length === 1 &&
- typeof arguments[0] === 'object')) {
- var opts = arguments.length === 1 ? arguments[0] : undefined;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [resolve, reject, opts]);
- });
- }
- return nativeMethod.apply(this, arguments);
- };
- });
-
- // add promise support -- natively available in Chrome 51
- if (browserDetails.version < 51) {
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var args = arguments;
- var self = this;
- var promise = new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [args[0], resolve, reject]);
- });
- if (args.length < 2) {
- return promise;
- }
- return promise.then(function() {
- args[1].apply(null, []);
- },
- function(err) {
- if (args.length >= 3) {
- args[2].apply(null, [err]);
- }
- });
- };
- });
- }
-
- // support for addIceCandidate(null)
- var nativeAddIceCandidate =
- RTCPeerConnection.prototype.addIceCandidate;
- RTCPeerConnection.prototype.addIceCandidate = function() {
- return arguments[0] === null ? Promise.resolve()
- : nativeAddIceCandidate.apply(this, arguments);
- };
-
- // shim implicit creation of RTCSessionDescription/RTCIceCandidate
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- arguments[0] = new ((method === 'addIceCandidate') ?
- RTCIceCandidate : RTCSessionDescription)(arguments[0]);
- return nativeMethod.apply(this, arguments);
- };
- });
- },
-
- // Attach a media stream to an element.
- attachMediaStream: function(element, stream) {
- logging('DEPRECATED, attachMediaStream will soon be removed.');
- if (browserDetails.version >= 43) {
- element.srcObject = stream;
- } else if (typeof element.src !== 'undefined') {
- element.src = URL.createObjectURL(stream);
- } else {
- logging('Error attaching stream to element.');
- }
- },
-
- reattachMediaStream: function(to, from) {
- logging('DEPRECATED, reattachMediaStream will soon be removed.');
- if (browserDetails.version >= 43) {
- to.srcObject = from.srcObject;
- } else {
- to.src = from.src;
- }
- }
-};
-
-
-// Expose public methods.
-module.exports = {
- shimMediaStream: chromeShim.shimMediaStream,
- shimOnTrack: chromeShim.shimOnTrack,
- shimSourceObject: chromeShim.shimSourceObject,
- shimPeerConnection: chromeShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia'),
- attachMediaStream: chromeShim.attachMediaStream,
- reattachMediaStream: chromeShim.reattachMediaStream
-};
-
-},{"../utils.js":41,"./getusermedia":35}],35:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-var logging = require('../utils.js').log;
-
-// Expose public methods.
-module.exports = function() {
- var constraintsToChrome_ = function(c) {
- if (typeof c !== 'object' || c.mandatory || c.optional) {
- return c;
- }
- var cc = {};
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
- if (r.exact !== undefined && typeof r.exact === 'number') {
- r.min = r.max = r.exact;
- }
- var oldname_ = function(prefix, name) {
- if (prefix) {
- return prefix + name.charAt(0).toUpperCase() + name.slice(1);
- }
- return (name === 'deviceId') ? 'sourceId' : name;
- };
- if (r.ideal !== undefined) {
- cc.optional = cc.optional || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[oldname_('min', key)] = r.ideal;
- cc.optional.push(oc);
- oc = {};
- oc[oldname_('max', key)] = r.ideal;
- cc.optional.push(oc);
- } else {
- oc[oldname_('', key)] = r.ideal;
- cc.optional.push(oc);
- }
- }
- if (r.exact !== undefined && typeof r.exact !== 'number') {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname_('', key)] = r.exact;
- } else {
- ['min', 'max'].forEach(function(mix) {
- if (r[mix] !== undefined) {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname_(mix, key)] = r[mix];
- }
- });
- }
- });
- if (c.advanced) {
- cc.optional = (cc.optional || []).concat(c.advanced);
- }
- return cc;
- };
-
- var shimConstraints_ = function(constraints, func) {
- constraints = JSON.parse(JSON.stringify(constraints));
- if (constraints && constraints.audio) {
- constraints.audio = constraintsToChrome_(constraints.audio);
- }
- if (constraints && typeof constraints.video === 'object') {
- // Shim facingMode for mobile, where it defaults to "user".
- var face = constraints.video.facingMode;
- face = face && ((typeof face === 'object') ? face : {ideal: face});
-
- if ((face && (face.exact === 'user' || face.exact === 'environment' ||
- face.ideal === 'user' || face.ideal === 'environment')) &&
- !(navigator.mediaDevices.getSupportedConstraints &&
- navigator.mediaDevices.getSupportedConstraints().facingMode)) {
- delete constraints.video.facingMode;
- if (face.exact === 'environment' || face.ideal === 'environment') {
- // Look for "back" in label, or use last cam (typically back cam).
- return navigator.mediaDevices.enumerateDevices()
- .then(function(devices) {
- devices = devices.filter(function(d) {
- return d.kind === 'videoinput';
- });
- var back = devices.find(function(d) {
- return d.label.toLowerCase().indexOf('back') !== -1;
- }) || (devices.length && devices[devices.length - 1]);
- if (back) {
- constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
- {ideal: back.deviceId};
- }
- constraints.video = constraintsToChrome_(constraints.video);
- logging('chrome: ' + JSON.stringify(constraints));
- return func(constraints);
- });
- }
- }
- constraints.video = constraintsToChrome_(constraints.video);
- }
- logging('chrome: ' + JSON.stringify(constraints));
- return func(constraints);
- };
-
- var shimError_ = function(e) {
- return {
- name: {
- PermissionDeniedError: 'NotAllowedError',
- ConstraintNotSatisfiedError: 'OverconstrainedError'
- }[e.name] || e.name,
- message: e.message,
- constraint: e.constraintName,
- toString: function() {
- return this.name + (this.message && ': ') + this.message;
- }
- };
- };
-
- var getUserMedia_ = function(constraints, onSuccess, onError) {
- shimConstraints_(constraints, function(c) {
- navigator.webkitGetUserMedia(c, onSuccess, function(e) {
- onError(shimError_(e));
- });
- });
- };
-
- navigator.getUserMedia = getUserMedia_;
-
- // Returns the result of getUserMedia as a Promise.
- var getUserMediaPromise_ = function(constraints) {
- return new Promise(function(resolve, reject) {
- navigator.getUserMedia(constraints, resolve, reject);
- });
- };
-
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {
- getUserMedia: getUserMediaPromise_,
- 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: ''};
- }));
- });
- });
- }
- };
- }
-
- // A shim for getUserMedia method on the mediaDevices object.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (!navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia = function(constraints) {
- return getUserMediaPromise_(constraints);
- };
- } else {
- // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
- // function which returns a Promise, it does not accept spec-style
- // constraints.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(cs) {
- return shimConstraints_(cs, function(c) {
- return origGetUserMedia(c).catch(function(e) {
- return Promise.reject(shimError_(e));
- });
- });
- };
- }
-
- // Dummy devicechange event methods.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
- navigator.mediaDevices.addEventListener = function() {
- logging('Dummy mediaDevices.addEventListener called.');
- };
- }
- if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
- navigator.mediaDevices.removeEventListener = function() {
- logging('Dummy mediaDevices.removeEventListener called.');
- };
- }
-};
-
-},{"../utils.js":41}],36:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var SDPUtils = require('sdp');
-var logging = require('../utils').log;
-
-var edgeShim = {
- shimPeerConnection: function() {
- if (window.RTCIceGatherer) {
- // ORTC defines an RTCIceCandidate object but no constructor.
- // Not implemented in Edge.
- if (!window.RTCIceCandidate) {
- window.RTCIceCandidate = function(args) {
- return args;
- };
- }
- // ORTC does not have a session description object but
- // other browsers (i.e. Chrome) that will support both PC and ORTC
- // in the future might have this defined already.
- if (!window.RTCSessionDescription) {
- window.RTCSessionDescription = function(args) {
- return args;
- };
- }
- }
-
- window.RTCPeerConnection = function(config) {
- var self = this;
-
- var _eventTarget = document.createDocumentFragment();
- ['addEventListener', 'removeEventListener', 'dispatchEvent']
- .forEach(function(method) {
- self[method] = _eventTarget[method].bind(_eventTarget);
- });
-
- this.onicecandidate = null;
- this.onaddstream = null;
- this.ontrack = null;
- this.onremovestream = null;
- this.onsignalingstatechange = null;
- this.oniceconnectionstatechange = null;
- this.onnegotiationneeded = null;
- this.ondatachannel = null;
-
- this.localStreams = [];
- this.remoteStreams = [];
- this.getLocalStreams = function() {
- return self.localStreams;
- };
- this.getRemoteStreams = function() {
- return self.remoteStreams;
- };
-
- this.localDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.remoteDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.signalingState = 'stable';
- this.iceConnectionState = 'new';
- this.iceGatheringState = 'new';
-
- this.iceOptions = {
- gatherPolicy: 'all',
- iceServers: []
- };
- if (config && config.iceTransportPolicy) {
- switch (config.iceTransportPolicy) {
- case 'all':
- case 'relay':
- this.iceOptions.gatherPolicy = config.iceTransportPolicy;
- break;
- case 'none':
- // FIXME: remove once implementation and spec have added this.
- throw new TypeError('iceTransportPolicy "none" not supported');
- default:
- // don't set iceTransportPolicy.
- break;
- }
- }
- this.usingBundle = config && config.bundlePolicy === 'max-bundle';
-
- if (config && config.iceServers) {
- // Edge does not like
- // 1) stun:
- // 2) turn: that does not have all of turn:host:port?transport=udp
- var iceServers = JSON.parse(JSON.stringify(config.iceServers));
- this.iceOptions.iceServers = iceServers.filter(function(server) {
- if (server && server.urls) {
- var urls = server.urls;
- if (typeof urls === 'string') {
- urls = [urls];
- }
- urls = urls.filter(function(url) {
- return url.indexOf('turn:') === 0 &&
- url.indexOf('transport=udp') !== -1;
- })[0];
- return !!urls;
- }
- return false;
- });
- }
-
- // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
- // everything that is needed to describe a SDP m-line.
- this.transceivers = [];
-
- // since the iceGatherer is currently created in createOffer but we
- // must not emit candidates until after setLocalDescription we buffer
- // them in this array.
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
- var self = this;
- var sections = SDPUtils.splitSections(self.localDescription.sdp);
- // FIXME: need to apply ice candidates in a way which is async but
- // in-order
- this._localIceCandidatesBuffer.forEach(function(event) {
- var end = !event.candidate || Object.keys(event.candidate).length === 0;
- if (end) {
- for (var j = 1; j < sections.length; j++) {
- if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
- sections[j] += 'a=end-of-candidates\r\n';
- }
- }
- } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
- === -1) {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=' + event.candidate.candidate + '\r\n';
- }
- self.localDescription.sdp = sections.join('');
- self.dispatchEvent(event);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- if (!event.candidate && self.iceGatheringState !== 'complete') {
- var complete = self.transceivers.every(function(transceiver) {
- return transceiver.iceGatherer &&
- transceiver.iceGatherer.state === 'completed';
- });
- if (complete) {
- self.iceGatheringState = 'complete';
- }
- }
- });
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype.addStream = function(stream) {
- // Clone is necessary for local demos mostly, attaching directly
- // to two different senders does not work (build 10547).
- this.localStreams.push(stream.clone());
- this._maybeFireNegotiationNeeded();
- };
-
- window.RTCPeerConnection.prototype.removeStream = function(stream) {
- var idx = this.localStreams.indexOf(stream);
- if (idx > -1) {
- this.localStreams.splice(idx, 1);
- this._maybeFireNegotiationNeeded();
- }
- };
-
- window.RTCPeerConnection.prototype.getSenders = function() {
- return this.transceivers.filter(function(transceiver) {
- return !!transceiver.rtpSender;
- })
- .map(function(transceiver) {
- return transceiver.rtpSender;
- });
- };
-
- window.RTCPeerConnection.prototype.getReceivers = function() {
- return this.transceivers.filter(function(transceiver) {
- return !!transceiver.rtpReceiver;
- })
- .map(function(transceiver) {
- return transceiver.rtpReceiver;
- });
- };
-
- // Determines the intersection of local and remote capabilities.
- window.RTCPeerConnection.prototype._getCommonCapabilities =
- function(localCapabilities, remoteCapabilities) {
- var commonCapabilities = {
- codecs: [],
- headerExtensions: [],
- fecMechanisms: []
- };
- localCapabilities.codecs.forEach(function(lCodec) {
- for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
- var rCodec = remoteCapabilities.codecs[i];
- if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
- lCodec.clockRate === rCodec.clockRate &&
- lCodec.numChannels === rCodec.numChannels) {
- // push rCodec so we reply with offerer payload type
- commonCapabilities.codecs.push(rCodec);
-
- // FIXME: also need to determine intersection between
- // .rtcpFeedback and .parameters
- break;
- }
- }
- });
-
- localCapabilities.headerExtensions
- .forEach(function(lHeaderExtension) {
- for (var i = 0; i < remoteCapabilities.headerExtensions.length;
- i++) {
- var rHeaderExtension = remoteCapabilities.headerExtensions[i];
- if (lHeaderExtension.uri === rHeaderExtension.uri) {
- commonCapabilities.headerExtensions.push(rHeaderExtension);
- break;
- }
- }
- });
-
- // FIXME: fecMechanisms
- return commonCapabilities;
- };
-
- // Create ICE gatherer, ICE transport and DTLS transport.
- window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
- function(mid, sdpMLineIndex) {
- var self = this;
- var iceGatherer = new RTCIceGatherer(self.iceOptions);
- var iceTransport = new RTCIceTransport(iceGatherer);
- iceGatherer.onlocalcandidate = function(evt) {
- var event = new Event('icecandidate');
- event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
-
- var cand = evt.candidate;
- var end = !cand || Object.keys(cand).length === 0;
- // Edge emits an empty object for RTCIceCandidateComplete‥
- if (end) {
- // polyfill since RTCIceGatherer.state is not implemented in
- // Edge 10547 yet.
- if (iceGatherer.state === undefined) {
- iceGatherer.state = 'completed';
- }
-
- // Emit a candidate with type endOfCandidates to make the samples
- // work. Edge requires addIceCandidate with this empty candidate
- // to start checking. The real solution is to signal
- // end-of-candidates to the other side when getting the null
- // candidate but some apps (like the samples) don't do that.
- event.candidate.candidate =
- 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
- } else {
- // RTCIceCandidate doesn't have a component, needs to be added
- cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
- event.candidate.candidate = SDPUtils.writeCandidate(cand);
- }
-
- // update local description.
- var sections = SDPUtils.splitSections(self.localDescription.sdp);
- if (event.candidate.candidate.indexOf('typ endOfCandidates')
- === -1) {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=' + event.candidate.candidate + '\r\n';
- } else {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=end-of-candidates\r\n';
- }
- self.localDescription.sdp = sections.join('');
-
- var complete = self.transceivers.every(function(transceiver) {
- return transceiver.iceGatherer &&
- transceiver.iceGatherer.state === 'completed';
- });
-
- // Emit candidate if localDescription is set.
- // Also emits null candidate when all gatherers are complete.
- switch (self.iceGatheringState) {
- case 'new':
- self._localIceCandidatesBuffer.push(event);
- if (end && complete) {
- self._localIceCandidatesBuffer.push(
- new Event('icecandidate'));
- }
- break;
- case 'gathering':
- self._emitBufferedCandidates();
- self.dispatchEvent(event);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- if (complete) {
- self.dispatchEvent(new Event('icecandidate'));
- if (self.onicecandidate !== null) {
- self.onicecandidate(new Event('icecandidate'));
- }
- self.iceGatheringState = 'complete';
- }
- break;
- case 'complete':
- // should not happen... currently!
- break;
- default: // no-op.
- break;
- }
- };
- iceTransport.onicestatechange = function() {
- self._updateConnectionState();
- };
-
- var dtlsTransport = new RTCDtlsTransport(iceTransport);
- dtlsTransport.ondtlsstatechange = function() {
- self._updateConnectionState();
- };
- dtlsTransport.onerror = function() {
- // onerror does not set state to failed by itself.
- dtlsTransport.state = 'failed';
- self._updateConnectionState();
- };
-
- return {
- iceGatherer: iceGatherer,
- iceTransport: iceTransport,
- dtlsTransport: dtlsTransport
- };
- };
-
- // Start the RTP Sender and Receiver for a transceiver.
- window.RTCPeerConnection.prototype._transceive = function(transceiver,
- send, recv) {
- var params = this._getCommonCapabilities(transceiver.localCapabilities,
- transceiver.remoteCapabilities);
- if (send && transceiver.rtpSender) {
- params.encodings = transceiver.sendEncodingParameters;
- params.rtcp = {
- cname: SDPUtils.localCName
- };
- if (transceiver.recvEncodingParameters.length) {
- params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
- }
- transceiver.rtpSender.send(params);
- }
- if (recv && transceiver.rtpReceiver) {
- params.encodings = transceiver.recvEncodingParameters;
- params.rtcp = {
- cname: transceiver.cname
- };
- if (transceiver.sendEncodingParameters.length) {
- params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
- }
- transceiver.rtpReceiver.receive(params);
- }
- };
-
- window.RTCPeerConnection.prototype.setLocalDescription =
- function(description) {
- var self = this;
- var sections;
- var sessionpart;
- if (description.type === 'offer') {
- // FIXME: What was the purpose of this empty if statement?
- // if (!this._pendingOffer) {
- // } else {
- if (this._pendingOffer) {
- // VERY limited support for SDP munging. Limited to:
- // * changing the order of codecs
- sections = SDPUtils.splitSections(description.sdp);
- sessionpart = sections.shift();
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var caps = SDPUtils.parseRtpParameters(mediaSection);
- self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
- });
- this.transceivers = this._pendingOffer;
- delete this._pendingOffer;
- }
- } else if (description.type === 'answer') {
- sections = SDPUtils.splitSections(self.remoteDescription.sdp);
- sessionpart = sections.shift();
- var isIceLite = SDPUtils.matchPrefix(sessionpart,
- 'a=ice-lite').length > 0;
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var transceiver = self.transceivers[sdpMLineIndex];
- var iceGatherer = transceiver.iceGatherer;
- var iceTransport = transceiver.iceTransport;
- var dtlsTransport = transceiver.dtlsTransport;
- var localCapabilities = transceiver.localCapabilities;
- var remoteCapabilities = transceiver.remoteCapabilities;
- var rejected = mediaSection.split('\n', 1)[0]
- .split(' ', 2)[1] === '0';
-
- if (!rejected) {
- var remoteIceParameters = SDPUtils.getIceParameters(
- mediaSection, sessionpart);
- if (isIceLite) {
- var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
- .map(function(cand) {
- return SDPUtils.parseCandidate(cand);
- })
- .filter(function(cand) {
- return cand.component === '1';
- });
- // ice-lite only includes host candidates in the SDP so we can
- // use setRemoteCandidates (which implies an
- // RTCIceCandidateComplete)
- if (cands.length) {
- iceTransport.setRemoteCandidates(cands);
- }
- }
- var remoteDtlsParameters = SDPUtils.getDtlsParameters(
- mediaSection, sessionpart);
- if (isIceLite) {
- remoteDtlsParameters.role = 'server';
- }
-
- if (!self.usingBundle || sdpMLineIndex === 0) {
- iceTransport.start(iceGatherer, remoteIceParameters,
- isIceLite ? 'controlling' : 'controlled');
- dtlsTransport.start(remoteDtlsParameters);
- }
-
- // Calculate intersection of capabilities.
- var params = self._getCommonCapabilities(localCapabilities,
- remoteCapabilities);
-
- // Start the RTCRtpSender. The RTCRtpReceiver for this
- // transceiver has already been started in setRemoteDescription.
- self._transceive(transceiver,
- params.codecs.length > 0,
- false);
- }
- });
- }
-
- this.localDescription = {
- type: description.type,
- sdp: description.sdp
- };
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-local-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type +
- '"');
- }
-
- // If a success callback was provided, emit ICE candidates after it
- // has been executed. Otherwise, emit callback after the Promise is
- // resolved.
- var hasCallback = arguments.length > 1 &&
- typeof arguments[1] === 'function';
- if (hasCallback) {
- var cb = arguments[1];
- window.setTimeout(function() {
- cb();
- if (self.iceGatheringState === 'new') {
- self.iceGatheringState = 'gathering';
- }
- self._emitBufferedCandidates();
- }, 0);
- }
- var p = Promise.resolve();
- p.then(function() {
- if (!hasCallback) {
- if (self.iceGatheringState === 'new') {
- self.iceGatheringState = 'gathering';
- }
- // Usually candidates will be emitted earlier.
- window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
- }
- });
- return p;
- };
-
- window.RTCPeerConnection.prototype.setRemoteDescription =
- function(description) {
- var self = this;
- var stream = new MediaStream();
- var receiverList = [];
- var sections = SDPUtils.splitSections(description.sdp);
- var sessionpart = sections.shift();
- var isIceLite = SDPUtils.matchPrefix(sessionpart,
- 'a=ice-lite').length > 0;
- this.usingBundle = SDPUtils.matchPrefix(sessionpart,
- 'a=group:BUNDLE ').length > 0;
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var lines = SDPUtils.splitLines(mediaSection);
- var mline = lines[0].substr(2).split(' ');
- var kind = mline[0];
- var rejected = mline[1] === '0';
- var direction = SDPUtils.getDirection(mediaSection, sessionpart);
-
- var transceiver;
- var iceGatherer;
- var iceTransport;
- var dtlsTransport;
- var rtpSender;
- var rtpReceiver;
- var sendEncodingParameters;
- var recvEncodingParameters;
- var localCapabilities;
-
- var track;
- // FIXME: ensure the mediaSection has rtcp-mux set.
- var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
- var remoteIceParameters;
- var remoteDtlsParameters;
- if (!rejected) {
- remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
- sessionpart);
- remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
- sessionpart);
- remoteDtlsParameters.role = 'client';
- }
- recvEncodingParameters =
- SDPUtils.parseRtpEncodingParameters(mediaSection);
-
- var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
- if (mid.length) {
- mid = mid[0].substr(6);
- } else {
- mid = SDPUtils.generateIdentifier();
- }
-
- var cname;
- // Gets the first SSRC. Note that with RTX there might be multiple
- // SSRCs.
- var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
- .map(function(line) {
- return SDPUtils.parseSsrcMedia(line);
- })
- .filter(function(obj) {
- return obj.attribute === 'cname';
- })[0];
- if (remoteSsrc) {
- cname = remoteSsrc.value;
- }
-
- var isComplete = SDPUtils.matchPrefix(mediaSection,
- 'a=end-of-candidates').length > 0;
- var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
- .map(function(cand) {
- return SDPUtils.parseCandidate(cand);
- })
- .filter(function(cand) {
- return cand.component === '1';
- });
- if (description.type === 'offer' && !rejected) {
- var transports = self.usingBundle && sdpMLineIndex > 0 ? {
- iceGatherer: self.transceivers[0].iceGatherer,
- iceTransport: self.transceivers[0].iceTransport,
- dtlsTransport: self.transceivers[0].dtlsTransport
- } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- if (isComplete) {
- transports.iceTransport.setRemoteCandidates(cands);
- }
-
- localCapabilities = RTCRtpReceiver.getCapabilities(kind);
- sendEncodingParameters = [{
- ssrc: (2 * sdpMLineIndex + 2) * 1001
- }];
-
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
-
- track = rtpReceiver.track;
- receiverList.push([track, rtpReceiver]);
- // FIXME: not correct when there are multiple streams but that is
- // not currently supported in this shim.
- stream.addTrack(track);
-
- // FIXME: look at direction.
- if (self.localStreams.length > 0 &&
- self.localStreams[0].getTracks().length >= sdpMLineIndex) {
- // FIXME: actually more complicated, needs to match types etc
- var localtrack = self.localStreams[0]
- .getTracks()[sdpMLineIndex];
- rtpSender = new RTCRtpSender(localtrack,
- transports.dtlsTransport);
- }
-
- self.transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: remoteCapabilities,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- cname: cname,
- sendEncodingParameters: sendEncodingParameters,
- recvEncodingParameters: recvEncodingParameters
- };
- // Start the RTCRtpReceiver now. The RTPSender is started in
- // setLocalDescription.
- self._transceive(self.transceivers[sdpMLineIndex],
- false,
- direction === 'sendrecv' || direction === 'sendonly');
- } else if (description.type === 'answer' && !rejected) {
- transceiver = self.transceivers[sdpMLineIndex];
- iceGatherer = transceiver.iceGatherer;
- iceTransport = transceiver.iceTransport;
- dtlsTransport = transceiver.dtlsTransport;
- rtpSender = transceiver.rtpSender;
- rtpReceiver = transceiver.rtpReceiver;
- sendEncodingParameters = transceiver.sendEncodingParameters;
- localCapabilities = transceiver.localCapabilities;
-
- self.transceivers[sdpMLineIndex].recvEncodingParameters =
- recvEncodingParameters;
- self.transceivers[sdpMLineIndex].remoteCapabilities =
- remoteCapabilities;
- self.transceivers[sdpMLineIndex].cname = cname;
-
- if ((isIceLite || isComplete) && cands.length) {
- iceTransport.setRemoteCandidates(cands);
- }
- if (!self.usingBundle || sdpMLineIndex === 0) {
- iceTransport.start(iceGatherer, remoteIceParameters,
- 'controlling');
- dtlsTransport.start(remoteDtlsParameters);
- }
-
- self._transceive(transceiver,
- direction === 'sendrecv' || direction === 'recvonly',
- direction === 'sendrecv' || direction === 'sendonly');
-
- if (rtpReceiver &&
- (direction === 'sendrecv' || direction === 'sendonly')) {
- track = rtpReceiver.track;
- receiverList.push([track, rtpReceiver]);
- stream.addTrack(track);
- } else {
- // FIXME: actually the receiver should be created later.
- delete transceiver.rtpReceiver;
- }
- }
- });
-
- this.remoteDescription = {
- type: description.type,
- sdp: description.sdp
- };
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-remote-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type +
- '"');
- }
- if (stream.getTracks().length) {
- self.remoteStreams.push(stream);
- window.setTimeout(function() {
- var event = new Event('addstream');
- event.stream = stream;
- self.dispatchEvent(event);
- if (self.onaddstream !== null) {
- window.setTimeout(function() {
- self.onaddstream(event);
- }, 0);
- }
-
- receiverList.forEach(function(item) {
- var track = item[0];
- var receiver = item[1];
- var trackEvent = new Event('track');
- trackEvent.track = track;
- trackEvent.receiver = receiver;
- trackEvent.streams = [stream];
- self.dispatchEvent(event);
- if (self.ontrack !== null) {
- window.setTimeout(function() {
- self.ontrack(trackEvent);
- }, 0);
- }
- });
- }, 0);
- }
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.close = function() {
- this.transceivers.forEach(function(transceiver) {
- /* not yet
- if (transceiver.iceGatherer) {
- transceiver.iceGatherer.close();
- }
- */
- if (transceiver.iceTransport) {
- transceiver.iceTransport.stop();
- }
- if (transceiver.dtlsTransport) {
- transceiver.dtlsTransport.stop();
- }
- if (transceiver.rtpSender) {
- transceiver.rtpSender.stop();
- }
- if (transceiver.rtpReceiver) {
- transceiver.rtpReceiver.stop();
- }
- });
- // FIXME: clean up tracks, local streams, remote streams, etc
- this._updateSignalingState('closed');
- };
-
- // Update the signaling state.
- window.RTCPeerConnection.prototype._updateSignalingState =
- function(newState) {
- this.signalingState = newState;
- var event = new Event('signalingstatechange');
- this.dispatchEvent(event);
- if (this.onsignalingstatechange !== null) {
- this.onsignalingstatechange(event);
- }
- };
-
- // Determine whether to fire the negotiationneeded event.
- window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
- function() {
- // Fire away (for now).
- var event = new Event('negotiationneeded');
- this.dispatchEvent(event);
- if (this.onnegotiationneeded !== null) {
- this.onnegotiationneeded(event);
- }
- };
-
- // Update the connection state.
- window.RTCPeerConnection.prototype._updateConnectionState = function() {
- var self = this;
- var newState;
- var states = {
- 'new': 0,
- closed: 0,
- connecting: 0,
- checking: 0,
- connected: 0,
- completed: 0,
- failed: 0
- };
- this.transceivers.forEach(function(transceiver) {
- states[transceiver.iceTransport.state]++;
- states[transceiver.dtlsTransport.state]++;
- });
- // ICETransport.completed and connected are the same for this purpose.
- states.connected += states.completed;
-
- newState = 'new';
- if (states.failed > 0) {
- newState = 'failed';
- } else if (states.connecting > 0 || states.checking > 0) {
- newState = 'connecting';
- } else if (states.disconnected > 0) {
- newState = 'disconnected';
- } else if (states.new > 0) {
- newState = 'new';
- } else if (states.connected > 0 || states.completed > 0) {
- newState = 'connected';
- }
-
- if (newState !== self.iceConnectionState) {
- self.iceConnectionState = newState;
- var event = new Event('iceconnectionstatechange');
- this.dispatchEvent(event);
- if (this.oniceconnectionstatechange !== null) {
- this.oniceconnectionstatechange(event);
- }
- }
- };
-
- window.RTCPeerConnection.prototype.createOffer = function() {
- var self = this;
- if (this._pendingOffer) {
- throw new Error('createOffer called while there is a pending offer.');
- }
- var offerOptions;
- if (arguments.length === 1 && typeof arguments[0] !== 'function') {
- offerOptions = arguments[0];
- } else if (arguments.length === 3) {
- offerOptions = arguments[2];
- }
-
- var tracks = [];
- var numAudioTracks = 0;
- var numVideoTracks = 0;
- // Default to sendrecv.
- if (this.localStreams.length) {
- numAudioTracks = this.localStreams[0].getAudioTracks().length;
- numVideoTracks = this.localStreams[0].getVideoTracks().length;
- }
- // Determine number of audio and video tracks we need to send/recv.
- if (offerOptions) {
- // Reject Chrome legacy constraints.
- if (offerOptions.mandatory || offerOptions.optional) {
- throw new TypeError(
- 'Legacy mandatory/optional constraints not supported.');
- }
- if (offerOptions.offerToReceiveAudio !== undefined) {
- numAudioTracks = offerOptions.offerToReceiveAudio;
- }
- if (offerOptions.offerToReceiveVideo !== undefined) {
- numVideoTracks = offerOptions.offerToReceiveVideo;
- }
- }
- if (this.localStreams.length) {
- // Push local streams.
- this.localStreams[0].getTracks().forEach(function(track) {
- tracks.push({
- kind: track.kind,
- track: track,
- wantReceive: track.kind === 'audio' ?
- numAudioTracks > 0 : numVideoTracks > 0
- });
- if (track.kind === 'audio') {
- numAudioTracks--;
- } else if (track.kind === 'video') {
- numVideoTracks--;
- }
- });
- }
- // Create M-lines for recvonly streams.
- while (numAudioTracks > 0 || numVideoTracks > 0) {
- if (numAudioTracks > 0) {
- tracks.push({
- kind: 'audio',
- wantReceive: true
- });
- numAudioTracks--;
- }
- if (numVideoTracks > 0) {
- tracks.push({
- kind: 'video',
- wantReceive: true
- });
- numVideoTracks--;
- }
- }
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- var transceivers = [];
- tracks.forEach(function(mline, sdpMLineIndex) {
- // For each track, create an ice gatherer, ice transport,
- // dtls transport, potentially rtpsender and rtpreceiver.
- var track = mline.track;
- var kind = mline.kind;
- var mid = SDPUtils.generateIdentifier();
-
- var transports = self.usingBundle && sdpMLineIndex > 0 ? {
- iceGatherer: transceivers[0].iceGatherer,
- iceTransport: transceivers[0].iceTransport,
- dtlsTransport: transceivers[0].dtlsTransport
- } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- var localCapabilities = RTCRtpSender.getCapabilities(kind);
- var rtpSender;
- var rtpReceiver;
-
- // generate an ssrc now, to be used later in rtpSender.send
- var sendEncodingParameters = [{
- ssrc: (2 * sdpMLineIndex + 1) * 1001
- }];
- if (track) {
- rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
- }
-
- if (mline.wantReceive) {
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
- }
-
- transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: null,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- sendEncodingParameters: sendEncodingParameters,
- recvEncodingParameters: null
- };
- });
- if (this.usingBundle) {
- sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
- return t.mid;
- }).join(' ') + '\r\n';
- }
- tracks.forEach(function(mline, sdpMLineIndex) {
- var transceiver = transceivers[sdpMLineIndex];
- sdp += SDPUtils.writeMediaSection(transceiver,
- transceiver.localCapabilities, 'offer', self.localStreams[0]);
- });
-
- this._pendingOffer = transceivers;
- var desc = new RTCSessionDescription({
- type: 'offer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.createAnswer = function() {
- var self = this;
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- if (this.usingBundle) {
- sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
- return t.mid;
- }).join(' ') + '\r\n';
- }
- this.transceivers.forEach(function(transceiver) {
- // Calculate intersection of capabilities.
- var commonCapabilities = self._getCommonCapabilities(
- transceiver.localCapabilities,
- transceiver.remoteCapabilities);
-
- sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
- 'answer', self.localStreams[0]);
- });
-
- var desc = new RTCSessionDescription({
- type: 'answer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
- if (candidate === null) {
- this.transceivers.forEach(function(transceiver) {
- transceiver.iceTransport.addRemoteCandidate({});
- });
- } else {
- var mLineIndex = candidate.sdpMLineIndex;
- if (candidate.sdpMid) {
- for (var i = 0; i < this.transceivers.length; i++) {
- if (this.transceivers[i].mid === candidate.sdpMid) {
- mLineIndex = i;
- break;
- }
- }
- }
- var transceiver = this.transceivers[mLineIndex];
- if (transceiver) {
- var cand = Object.keys(candidate.candidate).length > 0 ?
- SDPUtils.parseCandidate(candidate.candidate) : {};
- // Ignore Chrome's invalid candidates since Edge does not like them.
- if (cand.protocol === 'tcp' && cand.port === 0) {
- return;
- }
- // Ignore RTCP candidates, we assume RTCP-MUX.
- if (cand.component !== '1') {
- return;
- }
- // A dirty hack to make samples work.
- if (cand.type === 'endOfCandidates') {
- cand = {};
- }
- transceiver.iceTransport.addRemoteCandidate(cand);
-
- // update the remoteDescription.
- var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
- sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
- : 'a=end-of-candidates') + '\r\n';
- this.remoteDescription.sdp = sections.join('');
- }
- }
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.getStats = function() {
- var promises = [];
- this.transceivers.forEach(function(transceiver) {
- ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
- 'dtlsTransport'].forEach(function(method) {
- if (transceiver[method]) {
- promises.push(transceiver[method].getStats());
- }
- });
- });
- var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
- arguments[1];
- return new Promise(function(resolve) {
- // shim getStats with maplike support
- var results = new Map();
- Promise.all(promises).then(function(res) {
- res.forEach(function(result) {
- Object.keys(result).forEach(function(id) {
- results.set(id, result[id]);
- results[id] = result[id];
- });
- });
- if (cb) {
- window.setTimeout(cb, 0, results);
- }
- resolve(results);
- });
- });
- };
- },
-
- // Attach a media stream to an element.
- attachMediaStream: function(element, stream) {
- logging('DEPRECATED, attachMediaStream will soon be removed.');
- element.srcObject = stream;
- },
-
- reattachMediaStream: function(to, from) {
- logging('DEPRECATED, reattachMediaStream will soon be removed.');
- to.srcObject = from.srcObject;
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimPeerConnection: edgeShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia'),
- attachMediaStream: edgeShim.attachMediaStream,
- reattachMediaStream: edgeShim.reattachMediaStream
-};
-
-},{"../utils":41,"./getusermedia":37,"sdp":173}],37:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-// Expose public methods.
-module.exports = function() {
- var shimError_ = function(e) {
- return {
- name: {PermissionDeniedError: 'NotAllowedError'}[e.name] || e.name,
- message: e.message,
- constraint: e.constraint,
- toString: function() {
- return this.name;
- }
- };
- };
-
- // getUserMedia error shim.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- return origGetUserMedia(c).catch(function(e) {
- return Promise.reject(shimError_(e));
- });
- };
-};
-
-},{}],38:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var logging = require('../utils').log;
-var browserDetails = require('../utils').browserDetails;
-
-var firefoxShim = {
- shimOnTrack: function() {
- if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
- window.RTCPeerConnection.prototype)) {
- Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
- get: function() {
- return this._ontrack;
- },
- set: function(f) {
- if (this._ontrack) {
- this.removeEventListener('track', this._ontrack);
- this.removeEventListener('addstream', this._ontrackpoly);
- }
- this.addEventListener('track', this._ontrack = f);
- this.addEventListener('addstream', this._ontrackpoly = function(e) {
- e.stream.getTracks().forEach(function(track) {
- var event = new Event('track');
- event.track = track;
- event.receiver = {track: track};
- event.streams = [e.stream];
- this.dispatchEvent(event);
- }.bind(this));
- }.bind(this));
- }
- });
- }
- },
-
- shimSourceObject: function() {
- // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
- if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- return this.mozSrcObject;
- },
- set: function(stream) {
- this.mozSrcObject = stream;
- }
- });
- }
- }
- },
-
- shimPeerConnection: function() {
- if (typeof window !== 'object' || !(window.RTCPeerConnection ||
- window.mozRTCPeerConnection)) {
- return; // probably media.peerconnection.enabled=false in about:config
- }
- // The RTCPeerConnection object.
- if (!window.RTCPeerConnection) {
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- if (browserDetails.version < 38) {
- // .urls is not supported in FF < 38.
- // create RTCIceServers with a single url.
- if (pcConfig && pcConfig.iceServers) {
- var newIceServers = [];
- for (var 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]
- };
- if (server.urls[j].indexOf('turn') === 0) {
- 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.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (mozRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- return mozRTCPeerConnection.generateCertificate;
- }
- });
- }
-
- window.RTCSessionDescription = mozRTCSessionDescription;
- window.RTCIceCandidate = mozRTCIceCandidate;
- }
-
- // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = RTCPeerConnection.prototype[method];
- RTCPeerConnection.prototype[method] = function() {
- arguments[0] = new ((method === 'addIceCandidate') ?
- RTCIceCandidate : RTCSessionDescription)(arguments[0]);
- return nativeMethod.apply(this, arguments);
- };
- });
-
- // support for addIceCandidate(null)
- var nativeAddIceCandidate =
- RTCPeerConnection.prototype.addIceCandidate;
- RTCPeerConnection.prototype.addIceCandidate = function() {
- return arguments[0] === null ? Promise.resolve()
- : nativeAddIceCandidate.apply(this, arguments);
- };
-
- // shim getStats with maplike support
- var makeMapStats = function(stats) {
- var map = new Map();
- Object.keys(stats).forEach(function(key) {
- map.set(key, stats[key]);
- map[key] = stats[key];
- });
- return map;
- };
-
- var nativeGetStats = RTCPeerConnection.prototype.getStats;
- RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
- return nativeGetStats.apply(this, [selector || null])
- .then(function(stats) {
- return makeMapStats(stats);
- })
- .then(onSucc, onErr);
- };
- },
-
- // Attach a media stream to an element.
- attachMediaStream: function(element, stream) {
- logging('DEPRECATED, attachMediaStream will soon be removed.');
- element.srcObject = stream;
- },
-
- reattachMediaStream: function(to, from) {
- logging('DEPRECATED, reattachMediaStream will soon be removed.');
- to.srcObject = from.srcObject;
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimOnTrack: firefoxShim.shimOnTrack,
- shimSourceObject: firefoxShim.shimSourceObject,
- shimPeerConnection: firefoxShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia'),
- attachMediaStream: firefoxShim.attachMediaStream,
- reattachMediaStream: firefoxShim.reattachMediaStream
-};
-
-},{"../utils":41,"./getusermedia":39}],39:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var logging = require('../utils').log;
-var browserDetails = require('../utils').browserDetails;
-
-// Expose public methods.
-module.exports = function() {
- var shimError_ = function(e) {
- return {
- name: {
- SecurityError: 'NotAllowedError',
- PermissionDeniedError: 'NotAllowedError'
- }[e.name] || e.name,
- message: {
- 'The operation is insecure.': 'The request is not allowed by the ' +
- 'user agent or the platform in the current context.'
- }[e.message] || e.message,
- constraint: e.constraint,
- toString: function() {
- return this.name + (this.message && ': ') + this.message;
- }
- };
- };
-
- // getUserMedia constraints shim.
- var getUserMedia_ = function(constraints, onSuccess, onError) {
- var constraintsToFF37_ = function(c) {
- if (typeof c !== 'object' || c.require) {
- return c;
- }
- var require = [];
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = c[key] = (typeof c[key] === 'object') ?
- c[key] : {ideal: c[key]};
- if (r.min !== undefined ||
- r.max !== undefined || r.exact !== undefined) {
- require.push(key);
- }
- if (r.exact !== undefined) {
- if (typeof r.exact === 'number') {
- r. min = r.max = r.exact;
- } else {
- c[key] = r.exact;
- }
- delete r.exact;
- }
- if (r.ideal !== undefined) {
- c.advanced = c.advanced || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[key] = {min: r.ideal, max: r.ideal};
- } else {
- oc[key] = r.ideal;
- }
- c.advanced.push(oc);
- delete r.ideal;
- if (!Object.keys(r).length) {
- delete c[key];
- }
- }
- });
- if (require.length) {
- c.require = require;
- }
- return c;
- };
- constraints = JSON.parse(JSON.stringify(constraints));
- if (browserDetails.version < 38) {
- logging('spec: ' + JSON.stringify(constraints));
- if (constraints.audio) {
- constraints.audio = constraintsToFF37_(constraints.audio);
- }
- if (constraints.video) {
- constraints.video = constraintsToFF37_(constraints.video);
- }
- logging('ff37: ' + JSON.stringify(constraints));
- }
- return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
- onError(shimError_(e));
- });
- };
-
- // Returns the result of getUserMedia as a Promise.
- var getUserMediaPromise_ = function(constraints) {
- return new Promise(function(resolve, reject) {
- getUserMedia_(constraints, resolve, reject);
- });
- };
-
- // Shim for mediaDevices on older versions.
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
- 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);
- });
- };
-
- if (browserDetails.version < 41) {
- // Work around http://bugzil.la/1169665
- var orgEnumerateDevices =
- navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
- navigator.mediaDevices.enumerateDevices = function() {
- return orgEnumerateDevices().then(undefined, function(e) {
- if (e.name === 'NotFoundError') {
- return [];
- }
- throw e;
- });
- };
- }
- if (browserDetails.version < 49) {
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- return origGetUserMedia(c).catch(function(e) {
- return Promise.reject(shimError_(e));
- });
- };
- }
- navigator.getUserMedia = function(constraints, onSuccess, onError) {
- if (browserDetails.version < 44) {
- return getUserMedia_(constraints, onSuccess, onError);
- }
- // Replace Firefox 44+'s deprecation warning with unprefixed version.
- console.warn('navigator.getUserMedia has been replaced by ' +
- 'navigator.mediaDevices.getUserMedia');
- navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
- };
-};
-
-},{"../utils":41}],40:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
-'use strict';
-var safariShim = {
- // TODO: DrAlex, should be here, double check against LayoutTests
- // shimOnTrack: function() { },
-
- // TODO: DrAlex
- // attachMediaStream: function(element, stream) { },
- // reattachMediaStream: function(to, from) { },
-
- // TODO: once the back-end for the mac port is done, add.
- // TODO: check for webkitGTK+
- // shimPeerConnection: function() { },
-
- shimGetUserMedia: function() {
- navigator.getUserMedia = navigator.webkitGetUserMedia;
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimGetUserMedia: safariShim.shimGetUserMedia
- // TODO
- // shimOnTrack: safariShim.shimOnTrack,
- // shimPeerConnection: safariShim.shimPeerConnection,
- // attachMediaStream: safariShim.attachMediaStream,
- // reattachMediaStream: safariShim.reattachMediaStream
-};
-
-},{}],41:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var logDisabled_ = true;
-
-// Utility methods.
-var utils = {
- disableLog: function(bool) {
- if (typeof bool !== 'boolean') {
- return new Error('Argument type: ' + typeof bool +
- '. Please use a boolean.');
- }
- logDisabled_ = bool;
- return (bool) ? 'adapter.js logging disabled' :
- 'adapter.js logging enabled';
- },
-
- log: function() {
- if (typeof window === 'object') {
- if (logDisabled_) {
- return;
- }
- if (typeof console !== 'undefined' && typeof console.log === 'function') {
- console.log.apply(console, arguments);
- }
- }
- },
-
- /**
- * Extract browser version out of the provided user agent string.
- *
- * @param {!string} uastring userAgent string.
- * @param {!string} expr Regular expression used as match criteria.
- * @param {!number} pos position in the version string to be returned.
- * @return {!number} browser version.
- */
- extractVersion: function(uastring, expr, pos) {
- var match = uastring.match(expr);
- return match && match.length >= pos && parseInt(match[pos], 10);
- },
-
- /**
- * Browser detector.
- *
- * @return {object} result containing browser, version and minVersion
- * properties.
- */
- detectBrowser: function() {
- // Returned result object.
- var result = {};
- result.browser = null;
- result.version = null;
- result.minVersion = null;
-
- // Fail early if it's not a browser
- if (typeof window === 'undefined' || !window.navigator) {
- result.browser = 'Not a browser.';
- return result;
- }
-
- // Firefox.
- if (navigator.mozGetUserMedia) {
- result.browser = 'firefox';
- result.version = this.extractVersion(navigator.userAgent,
- /Firefox\/([0-9]+)\./, 1);
- result.minVersion = 31;
-
- // all webkit-based browsers
- } else if (navigator.webkitGetUserMedia) {
- // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
- if (window.webkitRTCPeerConnection) {
- result.browser = 'chrome';
- result.version = this.extractVersion(navigator.userAgent,
- /Chrom(e|ium)\/([0-9]+)\./, 2);
- result.minVersion = 38;
-
- // Safari or unknown webkit-based
- // for the time being Safari has support for MediaStreams but not webRTC
- } else {
- // Safari UA substrings of interest for reference:
- // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
- // - safari UI version: Version/9.0.3 (unique to Safari)
- // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
- //
- // if the webkit version and safari UI webkit versions are equals,
- // ... this is a stable version.
- //
- // only the internal webkit version is important today to know if
- // media streams are supported
- //
- if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
- result.browser = 'safari';
- result.version = this.extractVersion(navigator.userAgent,
- /AppleWebKit\/([0-9]+)\./, 1);
- result.minVersion = 602;
-
- // unknown webkit-based browser
- } else {
- result.browser = 'Unsupported webkit-based browser ' +
- 'with GUM support but no WebRTC support.';
- return result;
- }
- }
-
- // Edge.
- } else if (navigator.mediaDevices &&
- navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
- result.browser = 'edge';
- result.version = this.extractVersion(navigator.userAgent,
- /Edge\/(\d+).(\d+)$/, 2);
- result.minVersion = 10547;
-
- // Default fallthrough: not supported.
- } else {
- result.browser = 'Not a supported browser.';
- return result;
- }
-
- // Warn if version is less than minVersion.
- if (result.version < result.minVersion) {
- utils.log('Browser: ' + result.browser + ' Version: ' + result.version +
- ' < minimum supported version: ' + result.minVersion +
- '\n some things might not work!');
- }
-
- return result;
- }
-};
-
-// Export.
-module.exports = {
- log: utils.log,
- disableLog: utils.disableLog,
- browserDetails: utils.detectBrowser(),
- extractVersion: utils.extractVersion
-};
-
-},{}],42:[function(require,module,exports){
-var createHash = require('create-hash');
-var createHmac = require('create-hmac');
-var getHashes = require('./lib/get-hashes');
-
-var mapping = {
- md2: 'md2',
- md5: 'md5',
- 'sha-1': 'sha1',
- 'sha-224': 'sha224',
- 'sha-256': 'sha256',
- 'sha-384': 'sha384',
- 'sha-512': 'sha512'
-};
-
-var names = Object.keys(mapping);
-
-
-exports.getHashes = function () {
- var result = [];
- var available = getHashes();
- for (var i = 0, len = names.length; i < len; i++) {
- if (available.indexOf(mapping[names[i]]) >= 0) {
- result.push(names[i]);
- }
- }
- return result;
-};
-
-exports.createHash = function (algorithm) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHash(algorithm);
-};
-
-exports.createHmac = function (algorithm, key) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHmac(algorithm, key);
-};
-
-},{"./lib/get-hashes":43,"create-hash":23,"create-hmac":26}],43:[function(require,module,exports){
-module.exports = function () {
- return ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'];
-};
-
-},{}],44:[function(require,module,exports){
-exports.read = function (buffer, offset, isLE, mLen, nBytes) {
- var e, m
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var nBits = -7
- var i = isLE ? (nBytes - 1) : 0
- var d = isLE ? -1 : 1
- var s = buffer[offset + i]
-
- i += d
-
- e = s & ((1 << (-nBits)) - 1)
- s >>= (-nBits)
- nBits += eLen
- for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- m = e & ((1 << (-nBits)) - 1)
- e >>= (-nBits)
- nBits += mLen
- for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- if (e === 0) {
- e = 1 - eBias
- } else if (e === eMax) {
- return m ? NaN : ((s ? -1 : 1) * Infinity)
- } else {
- m = m + Math.pow(2, mLen)
- e = 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
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
- var i = isLE ? 0 : (nBytes - 1)
- var d = isLE ? 1 : -1
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
-
- value = Math.abs(value)
-
- if (isNaN(value) || value === Infinity) {
- m = isNaN(value) ? 1 : 0
- e = eMax
- } else {
- e = Math.floor(Math.log(value) / Math.LN2)
- if (value * (c = Math.pow(2, -e)) < 1) {
- e--
- c *= 2
- }
- if (e + eBias >= 1) {
- value += rt / c
- } else {
- value += rt * Math.pow(2, 1 - eBias)
- }
- if (value * c >= 2) {
- e++
- c /= 2
- }
-
- if (e + eBias >= eMax) {
- m = 0
- e = eMax
- } else if (e + eBias >= 1) {
- m = (value * c - 1) * Math.pow(2, mLen)
- e = e + eBias
- } else {
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
- e = 0
- }
- }
-
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
-
- e = (e << mLen) | m
- eLen += mLen
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
-
- buffer[offset + i - d] |= s * 128
-}
-
-},{}],45:[function(require,module,exports){
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
-},{}],46:[function(require,module,exports){
-module.exports = intersect;
-
-function intersect (a, b) {
- var res = [];
- for (var i = 0; i < a.length; i++) {
- if (indexOf(b, a[i]) > -1) res.push(a[i]);
- }
- return res;
-}
-
-intersect.big = function(a, b) {
- var ret = [];
- var temp = {};
-
- for (var i = 0; i < b.length; i++) {
- temp[b[i]] = true;
- }
- for (var i = 0; i < a.length; i++) {
- if (temp[a[i]]) ret.push(a[i]);
- }
-
- return ret;
-}
-
-function indexOf(arr, el) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === el) return i;
- }
- return -1;
-}
-
-},{}],47:[function(require,module,exports){
-/*!
- * Determine if an object is a Buffer
- *
- * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * @license MIT
- */
-
-// The _isBuffer check is for Safari 5-7 support, because it's missing
-// Object.prototype.constructor. Remove this eventually
-module.exports = function (obj) {
- return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
-}
-
-function isBuffer (obj) {
- return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
-}
-
-// For Node v0.10 support. Remove this eventually.
-function isSlowBuffer (obj) {
- return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
-}
-
-},{}],48:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = Array.isArray || function (arr) {
- return toString.call(arr) == '[object Array]';
-};
-
-},{}],49:[function(require,module,exports){
-var util = require('util');
-var extend = require('extend-object');
-var BaseSession = require('jingle-session');
-var RTCPeerConnection = require('rtcpeerconnection');
-var FileTransfer = require('filetransfer/hashed');
-
-
-function FileTransferSession(opts) {
- BaseSession.call(this, opts);
-
- this.pc = new RTCPeerConnection({
- iceServers: opts.iceServers || [],
- useJingle: true
- }, 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;
-}
-
-
-util.inherits(FileTransferSession, BaseSession);
-
-
-FileTransferSession.prototype = extend(FileTransferSession.prototype, {
-
- // ----------------------------------------------------------------
- // Session control methods
- // ----------------------------------------------------------------
-
- start: function (file) {
- var self = this;
- this.state = 'pending';
-
- this.pc.isInitiator = true;
-
- 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.application = {
- applicationType: '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: false,
- OfferToReceiveVideo: false
- }
- };
-
- this.pc.offer(constraints, function (err, offer) {
- if (err) {
- self._log('error', 'Could not create WebRTC offer', err);
- return self.end('failed-application', true);
- }
-
- offer.jingle.contents[0].application = {
- applicationType: 'filetransfer',
- offer: {
- date: file.lastModifiedDate,
- name: file.name,
- size: file.size,
- hash: {
- algo: 'sha-1',
- value: ''
- }
- }
- };
-
- 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) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer', err);
- return self.end('failed-application');
- }
- self.send('session-accept', answer.jingle);
- });
- },
-
- end: function (reason, silent) {
- this.pc.close();
- BaseSession.prototype.end.call(this, reason, silent);
- },
-
- maybeReceivedFile: function () {
- if (!this.receiver.metadata.hash.value) {
- // unknown hash, file transfer not completed
- } else if (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');
- } else {
- this._log('error', 'File hash does not match');
- this.end('media-error');
- }
- },
-
- // ----------------------------------------------------------------
- // ICE action handers
- // ----------------------------------------------------------------
-
- 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':
- if (this.pc.signalingState === 'stable') {
- this.connectionState = 'interrupted';
- } else {
- this.connectionState = 'disconnected';
- }
- break;
- case 'failed':
- this.connectionState = 'failed';
- this.end('failed-transport');
- break;
- case 'closed':
- this.connectionState = 'disconnected';
- break;
- }
- },
-
- onChannelAdded: function (channel) {
- this.receiver.receive(null, channel);
- },
-
- // ----------------------------------------------------------------
- // Jingle action handers
- // ----------------------------------------------------------------
-
- onSessionInitiate: function (changes, cb) {
- var self = this;
-
- this._log('info', 'Initiating incoming session');
-
- this.state = 'pending';
-
- this.pc.isInitiator = false;
-
- var desc = changes.contents[0].application;
-
-
- 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].application = {
- applicationType: 'datachannel'
- };
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer');
- return cb({condition: 'general-error'});
- }
- cb();
- });
- },
-
- onSessionAccept: function (changes, cb) {
- var self = this;
-
- this.state = 'active';
-
- changes.contents[0].application = {
- applicationType: 'datachannel'
- };
-
- this.pc.handleAnswer({
- type: 'answer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process WebRTC answer');
- return cb({condition: 'general-error'});
- }
- self.emit('accepted', self);
- cb();
- });
- },
-
- onSessionTerminate: function (changes, cb) {
- this._log('info', 'Terminating session');
- this.pc.close();
- BaseSession.prototype.end.call(this, changes.reason, true);
- cb();
- },
-
- onDescriptionInfo: function (info, cb) {
- var hash = info.contents[0].application.offer.hash;
- this.receiver.metadata.hash = hash;
- if (this.receiver.metadata.actualhash) {
- this.maybeReceivedFile();
- }
- cb();
- },
-
- onTransportInfo: function (changes, cb) {
- this.pc.processIce(changes, function () {
- cb();
- });
- }
-});
-
-
-module.exports = FileTransferSession;
-
-},{"extend-object":28,"filetransfer/hashed":30,"jingle-session":51,"rtcpeerconnection":167,"util":197}],50:[function(require,module,exports){
-var util = require('util');
-var extend = require('extend-object');
-var BaseSession = require('jingle-session');
-var RTCPeerConnection = require('rtcpeerconnection');
-
-
-function filterContentSources(content, stream) {
- if (content.application.applicationType !== 'rtp') {
- return;
- }
- delete content.transport;
- delete content.application.payloads;
- delete content.application.headerExtensions;
- content.application.mux = false;
-
- if (content.application.sources) {
- content.application.sources = content.application.sources.filter(function (source) {
- return stream.id === source.parameters[1].value.split(' ')[0];
- });
- }
- // remove source groups not related to this stream
- if (content.application.sourceGroups) {
- content.application.sourceGroups = content.application.sourceGroups.filter(function (group) {
- var found = false;
- for (var i = 0; i < content.application.sources.length; i++) {
- if (content.application.sources[i].ssrc === group.sources[0]) {
- found = true;
- break;
- }
- }
- return found;
- });
- }
-}
-
-function filterUnusedLabels(content) {
- // Remove mslabel and label ssrc-specific attributes
- var sources = content.application.sources || [];
- sources.forEach(function (source) {
- source.parameters = source.parameters.filter(function (parameter) {
- return !(parameter.key === 'mslabel' || parameter.key === 'label');
- });
- });
-}
-
-
-function MediaSession(opts) {
- BaseSession.call(this, opts);
-
- this.pc = new RTCPeerConnection({
- iceServers: opts.iceServers || [],
- useJingle: true
- }, opts.constraints || {});
-
- this.pc.on('ice', this.onIceCandidate.bind(this, opts));
- this.pc.on('endOfCandidates', this.onIceEndOfCandidates.bind(this, opts));
- this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
- this.pc.on('addStream', this.onAddStream.bind(this));
- this.pc.on('removeStream', this.onRemoveStream.bind(this));
- this.pc.on('addChannel', this.onAddChannel.bind(this));
-
- if (opts.stream) {
- this.addStream(opts.stream);
- }
-
- this._ringing = false;
-}
-
-
-util.inherits(MediaSession, BaseSession);
-
-
-Object.defineProperties(MediaSession.prototype, {
- ringing: {
- get: function () {
- return this._ringing;
- },
- set: function (value) {
- if (value !== this._ringing) {
- this._ringing = value;
- this.emit('change:ringing', value);
- }
- }
- },
- streams: {
- get: function () {
- if (this.pc.signalingState !== 'closed') {
- return this.pc.getRemoteStreams();
- }
- return [];
- }
- }
-});
-
-
-MediaSession.prototype = extend(MediaSession.prototype, {
-
- // ----------------------------------------------------------------
- // Session control methods
- // ----------------------------------------------------------------
-
- start: function (offerOptions, next) {
- var self = this;
- this.state = 'pending';
-
- next = next || function () {};
-
- this.pc.isInitiator = true;
- this.pc.offer(offerOptions, function (err, offer) {
- if (err) {
- self._log('error', 'Could not create WebRTC offer', err);
- return self.end('failed-application', true);
- }
-
- // a workaround for missing a=sendonly
- // https://code.google.com/p/webrtc/issues/detail?id=1553
- if (offerOptions && offerOptions.mandatory) {
- offer.jingle.contents.forEach(function (content) {
- var mediaType = content.application.media;
-
- if (!content.description || content.application.applicationType !== 'rtp') {
- return;
- }
-
- if (!offerOptions.mandatory.OfferToReceiveAudio && mediaType === 'audio') {
- content.senders = 'initiator';
- }
-
- if (!offerOptions.mandatory.OfferToReceiveVideo && mediaType === 'video') {
- content.senders = 'initiator';
- }
- });
- }
-
- offer.jingle.contents.forEach(filterUnusedLabels);
-
- self.send('session-initiate', offer.jingle);
-
- next();
- });
- },
-
- accept: function (opts, next) {
- var self = this;
-
- // support calling with accept(next) or accept(opts, next)
- if (arguments.length === 1 && typeof opts === 'function') {
- next = opts;
- opts = {};
- }
- next = next || function () {};
- opts = opts || {};
-
- var constraints = opts.constraints || {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
- }
- };
-
- this._log('info', 'Accepted incoming session');
-
- this.state = 'active';
-
- this.pc.answer(constraints, function (err, answer) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer', err);
- return self.end('failed-application');
- }
-
- answer.jingle.contents.forEach(filterUnusedLabels);
-
- self.send('session-accept', answer.jingle);
-
- 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 = true;
- this.send('session-info', {ringing: true});
- },
-
- 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: true});
- },
-
- resume: function () {
- this._log('info', 'Resuming from hold');
- this.send('session-info', {active: true});
- },
-
- // ----------------------------------------------------------------
- // Stream control methods
- // ----------------------------------------------------------------
-
- addStream: function (stream, renegotiate, cb) {
- var self = this;
-
- cb = cb || function () {};
-
- this.pc.addStream(stream);
-
- if (!renegotiate) {
- return;
- }
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: this.pc.remoteDescription
- }, function (err) {
- if (err) {
- self._log('error', 'Could not create offer for adding new stream');
- return cb(err);
- }
- self.pc.answer(function (err, answer) {
- if (err) {
- self._log('error', 'Could not create answer for adding new stream');
- return cb(err);
- }
- answer.jingle.contents.forEach(function (content) {
- filterContentSources(content, stream);
- });
- answer.jingle.contents = answer.jingle.contents.filter(function (content) {
- return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
- });
- delete answer.jingle.groups;
-
- self.send('source-add', answer.jingle);
- cb();
- });
- });
- },
-
- addStream2: function (stream, cb) {
- this.addStream(stream, true, cb);
- },
-
- removeStream: function (stream, renegotiate, cb) {
- var self = this;
-
- cb = cb || function () {};
-
- if (!renegotiate) {
- this.pc.removeStream(stream);
- return;
- }
-
- var desc = this.pc.localDescription;
- desc.contents.forEach(function (content) {
- filterContentSources(content, stream);
- });
- desc.contents = desc.contents.filter(function (content) {
- return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
- });
- delete desc.groups;
-
- this.send('source-remove', desc);
- this.pc.removeStream(stream);
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: this.pc.remoteDescription
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process offer for removing stream');
- return cb(err);
- }
- self.pc.answer(function (err) {
- if (err) {
- self._log('error', 'Could not process answer for removing stream');
- return cb(err);
- }
- cb();
- });
- });
- },
-
- removeStream2: function (stream, cb) {
- this.removeStream(stream, true, 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.application.payloads;
- });
-
- this.pc.removeStream(oldStream);
- this.send('source-remove', desc);
-
- this.pc.addStream(newStream);
- this.pc.handleOffer({
- type: 'offer',
- jingle: this.pc.remoteDescription
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process offer for switching streams');
- return cb(err);
- }
- self.pc.answer(function (err, answer) {
- if (err) {
- self._log('error', 'Could not process answer for switching streams');
- return cb(err);
- }
- answer.jingle.contents.forEach(function (content) {
- delete content.transport;
- delete content.application.payloads;
- });
- self.send('source-add', answer.jingle);
- cb();
- });
- });
- },
-
- // ----------------------------------------------------------------
- // ICE action handers
- // ----------------------------------------------------------------
-
- onIceCandidate: function (opts, candidate) {
- this._log('info', 'Discovered new ICE candidate', candidate.jingle);
- this.send('transport-info', candidate.jingle);
- if (opts.signalEndOfCandidates) {
- this.lastCandidate = candidate;
- }
- },
-
- onIceEndOfCandidates: function (opts) {
- this._log('info', 'ICE end of candidates');
- if (opts.signalEndOfCandidates) {
- var endOfCandidates = this.lastCandidate.jingle;
- endOfCandidates.contents[0].transport = {
- transportType: endOfCandidates.contents[0].transport.transportType,
- gatheringComplete: true
- };
- this.lastCandidate = null;
- this.send('transport-info', endOfCandidates);
- }
- },
-
- onIceStateChange: function () {
- switch (this.pc.iceConnectionState) {
- case 'checking':
- this.connectionState = 'connecting';
- break;
- case 'completed':
- case 'connected':
- this.connectionState = 'connected';
- break;
- case 'disconnected':
- if (this.pc.signalingState === 'stable') {
- this.connectionState = 'interrupted';
- } else {
- this.connectionState = 'disconnected';
- }
- break;
- case 'failed':
- this.connectionState = 'failed';
- this.end('failed-transport');
- break;
- case 'closed':
- this.connectionState = 'disconnected';
- break;
- }
- },
-
- // ----------------------------------------------------------------
- // Stream event handlers
- // ----------------------------------------------------------------
-
- 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);
- },
-
- // ----------------------------------------------------------------
- // Jingle action handers
- // ----------------------------------------------------------------
-
- onSessionInitiate: function (changes, cb) {
- var self = this;
-
- this._log('info', 'Initiating incoming session');
-
- this.state = 'pending';
-
- this.pc.isInitiator = false;
- this.pc.handleOffer({
- type: 'offer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer');
- return cb({condition: 'general-error'});
- }
- cb();
- });
- },
-
- onSessionAccept: function (changes, cb) {
- var self = this;
-
- this.state = 'active';
- this.pc.handleAnswer({
- type: 'answer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process WebRTC answer');
- return cb({condition: 'general-error'});
- }
- self.emit('accepted', self);
- 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, true);
-
- cb();
- },
-
- onSessionInfo: function (info, cb) {
- if (info.ringing) {
- this._log('info', 'Outgoing session is ringing');
- this.ringing = true;
- this.emit('ringing', this);
- return cb();
- }
-
- if (info.hold) {
- this._log('info', 'On hold');
- this.emit('hold', this);
- return cb();
- }
-
- if (info.active) {
- this._log('info', 'Resuming from hold');
- this.emit('resumed', this);
- return cb();
- }
-
- if (info.mute) {
- this._log('info', 'Muting', info.mute);
- this.emit('mute', this, info.mute);
- return cb();
- }
-
- if (info.unmute) {
- this._log('info', 'Unmuting', info.unmute);
- this.emit('unmute', this, info.unmute);
- return cb();
- }
-
- 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.application;
- var ssrcs = desc.sources || [];
- var groups = desc.sourceGroups || [];
-
- changes.contents.forEach(function (newContent) {
- if (content.name !== newContent.name) {
- return;
- }
-
- var newContentDesc = newContent.application;
- var newSSRCs = newContentDesc.sources || [];
-
- ssrcs = ssrcs.concat(newSSRCs);
- newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
-
- var newGroups = newContentDesc.sourceGroups || [];
- groups = groups.concat(newGroups);
- newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
- });
- });
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: newDesc
- }, function (err) {
- if (err) {
- self._log('error', 'Error adding new stream source');
- return cb({
- condition: 'general-error'
- });
- }
-
- self.pc.answer(function (err) {
- if (err) {
- self._log('error', 'Error adding new stream source');
- return cb({
- condition: 'general-error'
- });
- }
- 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.application;
- var ssrcs = desc.sources || [];
- var groups = desc.sourceGroups || [];
-
- changes.contents.forEach(function (newContent) {
- if (content.name !== newContent.name) {
- return;
- }
-
- var newContentDesc = newContent.application;
- var newSSRCs = newContentDesc.sources || [];
- var newGroups = newContentDesc.sourceGroups || [];
-
- var found, i, j, k;
-
-
- for (i = 0; i < newSSRCs.length; i++) {
- found = -1;
- for (j = 0; j < ssrcs.length; j++) {
- if (newSSRCs[i].ssrc === ssrcs[j].ssrc) {
- found = j;
- break;
- }
- }
- if (found > -1) {
- ssrcs.splice(found, 1);
- newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
- }
- }
-
- // Remove ssrc-groups that are no longer needed
- for (i = 0; i < newGroups.length; i++) {
- found = -1;
- for (j = 0; j < groups.length; j++) {
- if (newGroups[i].semantics === groups[j].semantics &&
- newGroups[i].sources.length === groups[j].sources.length) {
- var same = true;
- for (k = 0; k < newGroups[i].sources.length; k++) {
- if (newGroups[i].sources[k] !== groups[j].sources[k]) {
- same = false;
- break;
- }
- }
- if (same) {
- found = j;
- break;
- }
- }
- }
- if (found > -1) {
- groups.splice(found, 1);
- newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
- }
- }
- });
- });
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: newDesc
- }, function (err) {
- if (err) {
- self._log('error', 'Error removing stream source');
- return cb({
- condition: 'general-error'
- });
- }
- self.pc.answer(function (err) {
- if (err) {
- self._log('error', 'Error removing stream source');
- return cb({
- condition: 'general-error'
- });
- }
- cb();
- });
- });
- },
-
- // ----------------------------------------------------------------
- // DataChannels
- // ----------------------------------------------------------------
- onAddChannel: function (channel) {
- this.emit('addChannel', channel);
- }
-});
-
-
-module.exports = MediaSession;
-
-},{"extend-object":28,"jingle-session":51,"rtcpeerconnection":167,"util":197}],51:[function(require,module,exports){
-var util = require('util');
-var uuid = require('uuid');
-var async = require('async');
-var extend = require('extend-object');
-var WildEmitter = require('wildemitter');
-
-
-var 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',
-
- // Unstandardized actions: might go away anytime without notice
- 'source-add': 'onSourceAdd',
- 'source-remove': 'onSourceRemove'
-};
-
-
-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 || false;
- this.parent = opts.parent;
- this.state = 'starting';
- this.connectionState = 'starting';
-
- // We track the intial pending description types in case
- // of the need for a tie-breaker.
- this.pendingApplicationTypes = opts.applicationTypes || [];
-
- this.pendingAction = false;
-
- // Here is where we'll ensure that all actions are processed
- // in order, even if a particular action requires async handling.
- this.processingQueue = async.queue(function (task, next) {
- if (self.ended) {
- // Don't process anything once the session has been ended
- return next();
- }
-
- var action = task.action;
- var changes = task.changes;
- var cb = task.cb;
-
- self._log('debug', action);
-
- if (!ACTIONS[action]) {
- self._log('error', 'Invalid action: ' + action);
- cb({condition: 'bad-request'});
- return next();
- }
-
- self[ACTIONS[action]](changes, function (err, result) {
- cb(err, result);
- return next();
- });
- });
-}
-
-
-util.inherits(JingleSession, WildEmitter);
-
-// We don't know how to handle any particular content types,
-// so no actions are supported.
-Object.keys(ACTIONS).forEach(function (action) {
- var method = ACTIONS[action];
- JingleSession.prototype[method] = function (changes, cb) {
- this._log('error', 'Unsupported action: ' + action);
- cb();
- };
-});
-
-// Provide some convenience properties for checking
-// the session's state.
-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, true);
- if (prev) {
- this.emit('change:' + prev, this, false);
- }
- }
- }
- },
- 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, true);
- if (prev) {
- this.emit('change:' + prev, this, false);
- }
- }
- }
- },
- starting: {
- get: function () {
- return this._sessionState === 'starting';
- }
- },
- pending: {
- get: function () {
- return this._sessionState === 'pending';
- }
- },
- active: {
- get: function () {
- return this._sessionState === 'active';
- }
- },
- ended: {
- get: function () {
- return this._sessionState === 'ended';
- }
- },
- connected: {
- get: function () {
- return this._connectionState === 'connected';
- }
- },
- connecting: {
- get: function () {
- return this._connectionState === 'connecting';
- }
- },
- disconnected: {
- get: function () {
- return this._connectionState === 'disconnected';
- }
- },
- interrupted: {
- get: function () {
- return this._connectionState === 'interrupted';
- }
- }
-});
-
-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': true,
- 'session-accept': true,
- 'content-add': true,
- 'content-remove': true,
- 'content-reject': true,
- 'content-accept': true,
- 'content-modify': true,
- 'transport-replace': true,
- 'transport-reject': true,
- 'transport-accept': true,
- 'source-add': true,
- 'source-remove': true
- };
-
- if (requirePending[action]) {
- this.pendingAction = action;
- } else {
- this.pendingAction = false;
- }
-
- 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', true);
- },
-
- 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();
-
- if (!reason) {
- reason = 'success';
- }
-
- if (typeof reason === 'string') {
- reason = {
- condition: reason
- };
- }
-
- if (!silent) {
- this.send('session-terminate', {
- reason: reason
- });
- }
-
- this.emit('terminated', this, reason);
- },
-
- onSessionTerminate: function (changes, cb) {
- this.end(changes.reason, true);
- cb();
- },
-
- // It is mandatory to reply to a session-info action with
- // an unsupported-info error if the info isn't recognized.
- //
- // However, a session-info action with no associated payload
- // is acceptable (works like a ping).
- onSessionInfo: function (changes, cb) {
- var okKeys = {
- sid: true,
- action: true,
- initiator: true,
- responder: true
- };
-
- var unknownPayload = false;
- Object.keys(changes).forEach(function (key) {
- if (!okKeys[key]) {
- unknownPayload = true;
- }
- });
-
- if (unknownPayload) {
- cb({
- type: 'modify',
- condition: 'feature-not-implemented',
- jingleCondition: 'unsupported-info'
- });
- } else {
- cb();
- }
- },
-
- // It is mandatory to reply to a description-info action with
- // an unsupported-info error if the info isn't recognized.
- onDescriptionInfo: function (changes, cb) {
- cb({
- type: 'modify',
- condition: 'feature-not-implemented',
- jingleCondition: 'unsupported-info'
- });
- },
-
- // It is mandatory to reply to a transport-info action with
- // an unsupported-info error if the info isn't recognized.
- onTransportInfo: function (changes, cb) {
- cb({
- type: 'modify',
- condition: 'feature-not-implemented',
- jingleCondition: 'unsupported-info'
- });
- },
-
- // It is mandatory to reply to a content-add action with either
- // a content-accept or content-reject.
- onContentAdd: function (changes, cb) {
- // Allow ack for the content-add to be sent.
- cb();
-
- this.send('content-reject', {
- reason: {
- condition: 'failed-application',
- text: 'content-add is not supported'
- }
- });
- },
-
- // It is mandatory to reply to a transport-add action with either
- // a transport-accept or transport-reject.
- onTransportReplace: function (changes, cb) {
- // Allow ack for the transport-replace be sent.
- cb();
-
- this.send('transport-reject', {
- reason: {
- condition: 'failed-application',
- text: 'transport-replace is not supported'
- }
- });
- }
-});
-
-
-module.exports = JingleSession;
-
-},{"async":52,"extend-object":28,"util":197,"uuid":199,"wildemitter":211}],52:[function(require,module,exports){
-(function (process,global){
-/*!
- * async
- * https://github.com/caolan/async
- *
- * Copyright 2010-2014 Caolan McMahon
- * Released under the MIT license
- */
-(function () {
-
- var async = {};
- function noop() {}
- function identity(v) {
- return v;
- }
- function toBool(v) {
- return !!v;
- }
- function notId(v) {
- return !v;
- }
-
- // global on the server, window in the browser
- var previous_async;
-
- // Establish the root object, `window` (`self`) in the browser, `global`
- // on the server, or `this` in some virtual machines. We use `self`
- // instead of `window` for `WebWorker` support.
- var root = typeof self === 'object' && self.self === self && self ||
- typeof global === 'object' && global.global === global && global ||
- this;
-
- if (root != null) {
- previous_async = root.async;
- }
-
- async.noConflict = function () {
- root.async = previous_async;
- return async;
- };
-
- function only_once(fn) {
- return function() {
- if (fn === null) throw new Error("Callback was already called.");
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- function _once(fn) {
- return function() {
- if (fn === null) return;
- fn.apply(this, arguments);
- fn = null;
- };
- }
-
- //// cross-browser compatiblity functions ////
-
- var _toString = Object.prototype.toString;
-
- var _isArray = Array.isArray || function (obj) {
- return _toString.call(obj) === '[object Array]';
- };
-
- // Ported from underscore.js isObject
- var _isObject = function(obj) {
- var type = typeof obj;
- return type === 'function' || type === 'object' && !!obj;
- };
-
- function _isArrayLike(arr) {
- return _isArray(arr) || (
- // has a positive integer length property
- typeof arr.length === "number" &&
- arr.length >= 0 &&
- arr.length % 1 === 0
- );
- }
-
- function _arrayEach(arr, iterator) {
- var index = -1,
- length = arr.length;
-
- while (++index < length) {
- iterator(arr[index], index, arr);
- }
- }
-
- function _map(arr, iterator) {
- var index = -1,
- length = arr.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iterator(arr[index], index, arr);
- }
- return result;
- }
-
- function _range(count) {
- return _map(Array(count), function (v, i) { return i; });
- }
-
- function _reduce(arr, iterator, memo) {
- _arrayEach(arr, function (x, i, a) {
- memo = iterator(memo, x, i, a);
- });
- return memo;
- }
-
- function _forEachOf(object, iterator) {
- _arrayEach(_keys(object), function (key) {
- iterator(object[key], key);
- });
- }
-
- function _indexOf(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === item) return i;
- }
- return -1;
- }
-
- var _keys = Object.keys || function (obj) {
- var keys = [];
- for (var k in obj) {
- if (obj.hasOwnProperty(k)) {
- keys.push(k);
- }
- }
- return keys;
- };
-
- function _keyIterator(coll) {
- var i = -1;
- var len;
- var keys;
- if (_isArrayLike(coll)) {
- len = coll.length;
- return function next() {
- i++;
- return i < len ? i : null;
- };
- } else {
- keys = _keys(coll);
- len = keys.length;
- return function next() {
- i++;
- return i < len ? keys[i] : null;
- };
- }
- }
-
- // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
- // This accumulates the arguments passed into an array, after a given index.
- // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
- function _restParam(func, startIndex) {
- startIndex = startIndex == null ? func.length - 1 : +startIndex;
- return function() {
- var length = Math.max(arguments.length - startIndex, 0);
- var rest = Array(length);
- for (var index = 0; index < length; index++) {
- rest[index] = arguments[index + startIndex];
- }
- switch (startIndex) {
- case 0: return func.call(this, rest);
- case 1: return func.call(this, arguments[0], rest);
- }
- // Currently unused but handle cases outside of the switch statement:
- // var args = Array(startIndex + 1);
- // for (index = 0; index < startIndex; index++) {
- // args[index] = arguments[index];
- // }
- // args[startIndex] = rest;
- // return func.apply(this, args);
- };
- }
-
- function _withoutIndex(iterator) {
- return function (value, index, callback) {
- return iterator(value, callback);
- };
- }
-
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
-
- // capture the global reference to guard against fakeTimer mocks
- var _setImmediate = typeof setImmediate === 'function' && setImmediate;
-
- var _delay = _setImmediate ? function(fn) {
- // not a direct alias for IE10 compatibility
- _setImmediate(fn);
- } : function(fn) {
- setTimeout(fn, 0);
- };
-
- if (typeof process === 'object' && typeof process.nextTick === 'function') {
- async.nextTick = process.nextTick;
- } else {
- async.nextTick = _delay;
- }
- async.setImmediate = _setImmediate ? _delay : async.nextTick;
-
-
- async.forEach =
- async.each = function (arr, iterator, callback) {
- return async.eachOf(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachSeries =
- async.eachSeries = function (arr, iterator, callback) {
- return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
- };
-
-
- async.forEachLimit =
- async.eachLimit = function (arr, limit, iterator, callback) {
- return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
- };
-
- async.forEachOf =
- async.eachOf = function (object, iterator, callback) {
- callback = _once(callback || noop);
- object = object || [];
-
- var iter = _keyIterator(object);
- var key, completed = 0;
-
- while ((key = iter()) != null) {
- completed += 1;
- iterator(object[key], key, only_once(done));
- }
-
- if (completed === 0) callback(null);
-
- function done(err) {
- completed--;
- if (err) {
- callback(err);
- }
- // Check key is null in case iterator isn't exhausted
- // and done resolved synchronously.
- else if (key === null && completed <= 0) {
- callback(null);
- }
- }
- };
-
- async.forEachOfSeries =
- async.eachOfSeries = function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- var key = nextKey();
- function iterate() {
- var sync = true;
- if (key === null) {
- return callback(null);
- }
- iterator(obj[key], key, only_once(function (err) {
- if (err) {
- callback(err);
- }
- else {
- key = nextKey();
- if (key === null) {
- return callback(null);
- } else {
- if (sync) {
- async.setImmediate(iterate);
- } else {
- iterate();
- }
- }
- }
- }));
- sync = false;
- }
- iterate();
- };
-
-
-
- async.forEachOfLimit =
- async.eachOfLimit = function (obj, limit, iterator, callback) {
- _eachOfLimit(limit)(obj, iterator, callback);
- };
-
- function _eachOfLimit(limit) {
-
- return function (obj, iterator, callback) {
- callback = _once(callback || noop);
- obj = obj || [];
- var nextKey = _keyIterator(obj);
- if (limit <= 0) {
- return callback(null);
- }
- var done = false;
- var running = 0;
- var errored = false;
-
- (function replenish () {
- if (done && running <= 0) {
- return callback(null);
- }
-
- while (running < limit && !errored) {
- var key = nextKey();
- if (key === null) {
- done = true;
- if (running <= 0) {
- callback(null);
- }
- return;
- }
- running += 1;
- iterator(obj[key], key, only_once(function (err) {
- running -= 1;
- if (err) {
- callback(err);
- errored = true;
- }
- else {
- replenish();
- }
- }));
- }
- })();
- };
- }
-
-
- function doParallel(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOf, obj, iterator, callback);
- };
- }
- function doParallelLimit(fn) {
- return function (obj, limit, iterator, callback) {
- return fn(_eachOfLimit(limit), obj, iterator, callback);
- };
- }
- function doSeries(fn) {
- return function (obj, iterator, callback) {
- return fn(async.eachOfSeries, obj, iterator, callback);
- };
- }
-
- function _asyncMap(eachfn, arr, iterator, callback) {
- callback = _once(callback || noop);
- arr = arr || [];
- var results = _isArrayLike(arr) ? [] : {};
- eachfn(arr, function (value, index, callback) {
- iterator(value, function (err, v) {
- results[index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.map = doParallel(_asyncMap);
- async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = doParallelLimit(_asyncMap);
-
- // reduce only has a series version, as doing reduce in parallel won't
- // work in many situations.
- async.inject =
- async.foldl =
- async.reduce = function (arr, memo, iterator, callback) {
- async.eachOfSeries(arr, function (x, i, callback) {
- iterator(memo, x, function (err, v) {
- memo = v;
- callback(err);
- });
- }, function (err) {
- callback(err, memo);
- });
- };
-
- async.foldr =
- async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, identity).reverse();
- async.reduce(reversed, memo, iterator, callback);
- };
-
- async.transform = function (arr, memo, iterator, callback) {
- if (arguments.length === 3) {
- callback = iterator;
- iterator = memo;
- memo = _isArray(arr) ? [] : {};
- }
-
- async.eachOf(arr, function(v, k, cb) {
- iterator(memo, v, k, cb);
- }, function(err) {
- callback(err, memo);
- });
- };
-
- function _filter(eachfn, arr, iterator, callback) {
- var results = [];
- eachfn(arr, function (x, index, callback) {
- iterator(x, function (v) {
- if (v) {
- results.push({index: index, value: x});
- }
- callback();
- });
- }, function () {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- }
-
- async.select =
- async.filter = doParallel(_filter);
-
- async.selectLimit =
- async.filterLimit = doParallelLimit(_filter);
-
- async.selectSeries =
- async.filterSeries = doSeries(_filter);
-
- function _reject(eachfn, arr, iterator, callback) {
- _filter(eachfn, arr, function(value, cb) {
- iterator(value, function(v) {
- cb(!v);
- });
- }, callback);
- }
- async.reject = doParallel(_reject);
- async.rejectLimit = doParallelLimit(_reject);
- async.rejectSeries = doSeries(_reject);
-
- function _createTester(eachfn, check, getResult) {
- return function(arr, limit, iterator, cb) {
- function done() {
- if (cb) cb(getResult(false, void 0));
- }
- function iteratee(x, _, callback) {
- if (!cb) return callback();
- iterator(x, function (v) {
- if (cb && check(v)) {
- cb(getResult(true, x));
- cb = iterator = false;
- }
- callback();
- });
- }
- if (arguments.length > 3) {
- eachfn(arr, limit, iteratee, done);
- } else {
- cb = iterator;
- iterator = limit;
- eachfn(arr, iteratee, done);
- }
- };
- }
-
- async.any =
- async.some = _createTester(async.eachOf, toBool, identity);
-
- async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
-
- async.all =
- async.every = _createTester(async.eachOf, notId, notId);
-
- async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
-
- function _findGetResult(v, x) {
- return x;
- }
- async.detect = _createTester(async.eachOf, identity, _findGetResult);
- async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
- async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
-
- async.sortBy = function (arr, iterator, callback) {
- async.map(arr, function (x, callback) {
- iterator(x, function (err, criteria) {
- if (err) {
- callback(err);
- }
- else {
- callback(null, {value: x, criteria: criteria});
- }
- });
- }, function (err, results) {
- if (err) {
- return callback(err);
- }
- else {
- callback(null, _map(results.sort(comparator), function (x) {
- return x.value;
- }));
- }
-
- });
-
- function comparator(left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- }
- };
-
- async.auto = function (tasks, concurrency, callback) {
- if (typeof arguments[1] === 'function') {
- // concurrency is optional, shift the args.
- callback = concurrency;
- concurrency = null;
- }
- callback = _once(callback || noop);
- var keys = _keys(tasks);
- var remainingTasks = keys.length;
- if (!remainingTasks) {
- return callback(null);
- }
- if (!concurrency) {
- concurrency = remainingTasks;
- }
-
- var results = {};
- var runningTasks = 0;
-
- var hasError = false;
-
- var listeners = [];
- function addListener(fn) {
- listeners.unshift(fn);
- }
- function removeListener(fn) {
- var idx = _indexOf(listeners, fn);
- if (idx >= 0) listeners.splice(idx, 1);
- }
- function taskComplete() {
- remainingTasks--;
- _arrayEach(listeners.slice(0), function (fn) {
- fn();
- });
- }
-
- addListener(function () {
- if (!remainingTasks) {
- callback(null, results);
- }
- });
-
- _arrayEach(keys, function (k) {
- if (hasError) return;
- var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = _restParam(function(err, args) {
- runningTasks--;
- if (args.length <= 1) {
- args = args[0];
- }
- if (err) {
- var safeResults = {};
- _forEachOf(results, function(val, rkey) {
- safeResults[rkey] = val;
- });
- safeResults[k] = args;
- hasError = true;
-
- callback(err, safeResults);
- }
- else {
- results[k] = args;
- async.setImmediate(taskComplete);
- }
- });
- var requires = task.slice(0, task.length - 1);
- // prevent dead-locks
- var len = requires.length;
- var dep;
- while (len--) {
- if (!(dep = tasks[requires[len]])) {
- throw new Error('Has nonexistent dependency in ' + requires.join(', '));
- }
- if (_isArray(dep) && _indexOf(dep, k) >= 0) {
- throw new Error('Has cyclic dependencies');
- }
- }
- function ready() {
- return runningTasks < concurrency && _reduce(requires, function (a, x) {
- return (a && results.hasOwnProperty(x));
- }, true) && !results.hasOwnProperty(k);
- }
- if (ready()) {
- runningTasks++;
- task[task.length - 1](taskCallback, results);
- }
- else {
- addListener(listener);
- }
- function listener() {
- if (ready()) {
- runningTasks++;
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- }
- });
- };
-
-
-
- async.retry = function(times, task, callback) {
- var DEFAULT_TIMES = 5;
- var DEFAULT_INTERVAL = 0;
-
- var attempts = [];
-
- var opts = {
- times: DEFAULT_TIMES,
- interval: DEFAULT_INTERVAL
- };
-
- function parseTimes(acc, t){
- if(typeof t === 'number'){
- acc.times = parseInt(t, 10) || DEFAULT_TIMES;
- } else if(typeof t === 'object'){
- acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
- acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
- } else {
- throw new Error('Unsupported argument type for \'times\': ' + typeof t);
- }
- }
-
- var length = arguments.length;
- if (length < 1 || length > 3) {
- throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
- } else if (length <= 2 && typeof times === 'function') {
- callback = task;
- task = times;
- }
- if (typeof times !== 'function') {
- parseTimes(opts, times);
- }
- opts.callback = callback;
- opts.task = task;
-
- function wrappedTask(wrappedCallback, wrappedResults) {
- function retryAttempt(task, finalAttempt) {
- return function(seriesCallback) {
- task(function(err, result){
- seriesCallback(!err || finalAttempt, {err: err, result: result});
- }, wrappedResults);
- };
- }
-
- function retryInterval(interval){
- return function(seriesCallback){
- setTimeout(function(){
- seriesCallback(null);
- }, interval);
- };
- }
-
- while (opts.times) {
-
- var finalAttempt = !(opts.times-=1);
- attempts.push(retryAttempt(opts.task, finalAttempt));
- if(!finalAttempt && opts.interval > 0){
- attempts.push(retryInterval(opts.interval));
- }
- }
-
- async.series(attempts, function(done, data){
- data = data[data.length - 1];
- (wrappedCallback || opts.callback)(data.err, data.result);
- });
- }
-
- // If a callback is passed, run this as a controll flow
- return opts.callback ? wrappedTask() : wrappedTask;
- };
-
- async.waterfall = function (tasks, callback) {
- callback = _once(callback || noop);
- if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
- }
- if (!tasks.length) {
- return callback();
- }
- function wrapIterator(iterator) {
- return _restParam(function (err, args) {
- if (err) {
- callback.apply(null, [err].concat(args));
- }
- else {
- var next = iterator.next();
- if (next) {
- args.push(wrapIterator(next));
- }
- else {
- args.push(callback);
- }
- ensureAsync(iterator).apply(null, args);
- }
- });
- }
- wrapIterator(async.iterator(tasks))();
- };
-
- function _parallel(eachfn, tasks, callback) {
- callback = callback || noop;
- var results = _isArrayLike(tasks) ? [] : {};
-
- eachfn(tasks, function (task, key, callback) {
- task(_restParam(function (err, args) {
- if (args.length <= 1) {
- args = args[0];
- }
- results[key] = args;
- callback(err);
- }));
- }, function (err) {
- callback(err, results);
- });
- }
-
- async.parallel = function (tasks, callback) {
- _parallel(async.eachOf, tasks, callback);
- };
-
- async.parallelLimit = function(tasks, limit, callback) {
- _parallel(_eachOfLimit(limit), tasks, callback);
- };
-
- async.series = function(tasks, callback) {
- _parallel(async.eachOfSeries, tasks, callback);
- };
-
- async.iterator = function (tasks) {
- function makeCallback(index) {
- function fn() {
- if (tasks.length) {
- tasks[index].apply(null, arguments);
- }
- return fn.next();
- }
- fn.next = function () {
- return (index < tasks.length - 1) ? makeCallback(index + 1): null;
- };
- return fn;
- }
- return makeCallback(0);
- };
-
- async.apply = _restParam(function (fn, args) {
- return _restParam(function (callArgs) {
- return fn.apply(
- null, args.concat(callArgs)
- );
- });
- });
-
- function _concat(eachfn, arr, fn, callback) {
- var result = [];
- eachfn(arr, function (x, index, cb) {
- fn(x, function (err, y) {
- result = result.concat(y || []);
- cb(err);
- });
- }, function (err) {
- callback(err, result);
- });
- }
- async.concat = doParallel(_concat);
- async.concatSeries = doSeries(_concat);
-
- async.whilst = function (test, iterator, callback) {
- callback = callback || noop;
- if (test()) {
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else if (test.apply(this, args)) {
- iterator(next);
- } else {
- callback.apply(null, [null].concat(args));
- }
- });
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- async.doWhilst = function (iterator, test, callback) {
- var calls = 0;
- return async.whilst(function() {
- return ++calls <= 1 || test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.until = function (test, iterator, callback) {
- return async.whilst(function() {
- return !test.apply(this, arguments);
- }, iterator, callback);
- };
-
- async.doUntil = function (iterator, test, callback) {
- return async.doWhilst(iterator, function() {
- return !test.apply(this, arguments);
- }, callback);
- };
-
- async.during = function (test, iterator, callback) {
- callback = callback || noop;
-
- var next = _restParam(function(err, args) {
- if (err) {
- callback(err);
- } else {
- args.push(check);
- test.apply(this, args);
- }
- });
-
- var check = function(err, truth) {
- if (err) {
- callback(err);
- } else if (truth) {
- iterator(next);
- } else {
- callback(null);
- }
- };
-
- test(check);
- };
-
- async.doDuring = function (iterator, test, callback) {
- var calls = 0;
- async.during(function(next) {
- if (calls++ < 1) {
- next(null, true);
- } else {
- test.apply(this, arguments);
- }
- }, iterator, callback);
- };
-
- function _queue(worker, concurrency, payload) {
- if (concurrency == null) {
- concurrency = 1;
- }
- else if(concurrency === 0) {
- throw new Error('Concurrency must not be zero');
- }
- function _insert(q, data, pos, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0 && q.idle()) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- callback: callback || noop
- };
-
- if (pos) {
- q.tasks.unshift(item);
- } else {
- q.tasks.push(item);
- }
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- });
- async.setImmediate(q.process);
- }
- function _next(q, tasks) {
- return function(){
- workers -= 1;
-
- var removed = false;
- var args = arguments;
- _arrayEach(tasks, function (task) {
- _arrayEach(workersList, function (worker, index) {
- if (worker === task && !removed) {
- workersList.splice(index, 1);
- removed = true;
- }
- });
-
- task.callback.apply(task, args);
- });
- if (q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- }
-
- var workers = 0;
- var workersList = [];
- var q = {
- tasks: [],
- concurrency: concurrency,
- payload: payload,
- saturated: noop,
- empty: noop,
- drain: noop,
- started: false,
- paused: false,
- push: function (data, callback) {
- _insert(q, data, false, callback);
- },
- kill: function () {
- q.drain = noop;
- q.tasks = [];
- },
- unshift: function (data, callback) {
- _insert(q, data, true, callback);
- },
- process: function () {
- while(!q.paused && workers < q.concurrency && q.tasks.length){
-
- var tasks = q.payload ?
- q.tasks.splice(0, q.payload) :
- q.tasks.splice(0, q.tasks.length);
-
- var data = _map(tasks, function (task) {
- return task.data;
- });
-
- if (q.tasks.length === 0) {
- q.empty();
- }
- workers += 1;
- workersList.push(tasks[0]);
- var cb = only_once(_next(q, tasks));
- worker(data, cb);
- }
- },
- length: function () {
- return q.tasks.length;
- },
- running: function () {
- return workers;
- },
- workersList: function () {
- return workersList;
- },
- idle: function() {
- return q.tasks.length + workers === 0;
- },
- pause: function () {
- q.paused = true;
- },
- resume: function () {
- if (q.paused === false) { return; }
- q.paused = false;
- var resumeCount = Math.min(q.concurrency, q.tasks.length);
- // Need to call q.process once per concurrent
- // worker to preserve full concurrency after pause
- for (var w = 1; w <= resumeCount; w++) {
- async.setImmediate(q.process);
- }
- }
- };
- return q;
- }
-
- async.queue = function (worker, concurrency) {
- var q = _queue(function (items, cb) {
- worker(items[0], cb);
- }, concurrency, 1);
-
- return q;
- };
-
- async.priorityQueue = function (worker, concurrency) {
-
- function _compareTasks(a, b){
- return a.priority - b.priority;
- }
-
- function _binarySearch(sequence, item, compare) {
- var beg = -1,
- end = sequence.length - 1;
- while (beg < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
- }
- }
- return beg;
- }
-
- function _insert(q, data, priority, callback) {
- if (callback != null && typeof callback !== "function") {
- throw new Error("task callback must be a function");
- }
- q.started = true;
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length === 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- q.drain();
- });
- }
- _arrayEach(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : noop
- };
-
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
-
- if (q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
- }
-
- // Start with a normal queue
- var q = async.queue(worker, concurrency);
-
- // Override push to accept second parameter representing priority
- q.push = function (data, priority, callback) {
- _insert(q, data, priority, callback);
- };
-
- // Remove unshift function
- delete q.unshift;
-
- return q;
- };
-
- async.cargo = function (worker, payload) {
- return _queue(worker, 1, payload);
- };
-
- function _console_fn(name) {
- return _restParam(function (fn, args) {
- fn.apply(null, args.concat([_restParam(function (err, args) {
- if (typeof console === 'object') {
- if (err) {
- if (console.error) {
- console.error(err);
- }
- }
- else if (console[name]) {
- _arrayEach(args, function (x) {
- console[name](x);
- });
- }
- }
- })]));
- });
- }
- async.log = _console_fn('log');
- async.dir = _console_fn('dir');
- /*async.info = _console_fn('info');
- async.warn = _console_fn('warn');
- async.error = _console_fn('error');*/
-
- async.memoize = function (fn, hasher) {
- var memo = {};
- var queues = {};
- var has = Object.prototype.hasOwnProperty;
- hasher = hasher || identity;
- var memoized = _restParam(function memoized(args) {
- var callback = args.pop();
- var key = hasher.apply(null, args);
- if (has.call(memo, key)) {
- async.setImmediate(function () {
- callback.apply(null, memo[key]);
- });
- }
- else if (has.call(queues, key)) {
- queues[key].push(callback);
- }
- else {
- queues[key] = [callback];
- fn.apply(null, args.concat([_restParam(function (args) {
- memo[key] = args;
- var q = queues[key];
- delete queues[key];
- for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, args);
- }
- })]));
- }
- });
- memoized.memo = memo;
- memoized.unmemoized = fn;
- return memoized;
- };
-
- async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
- };
-
- function _times(mapper) {
- return function (count, iterator, callback) {
- mapper(_range(count), iterator, callback);
- };
- }
-
- async.times = _times(async.map);
- async.timesSeries = _times(async.mapSeries);
- async.timesLimit = function (count, limit, iterator, callback) {
- return async.mapLimit(_range(count), limit, iterator, callback);
- };
-
- async.seq = function (/* functions... */) {
- var fns = arguments;
- return _restParam(function (args) {
- var that = this;
-
- var callback = args[args.length - 1];
- if (typeof callback == 'function') {
- args.pop();
- } else {
- callback = noop;
- }
-
- async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
- cb(err, nextargs);
- })]));
- },
- function (err, results) {
- callback.apply(that, [err].concat(results));
- });
- });
- };
-
- async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
- };
-
-
- function _applyEach(eachfn) {
- return _restParam(function(fns, args) {
- var go = _restParam(function(args) {
- var that = this;
- var callback = args.pop();
- return eachfn(fns, function (fn, _, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- });
- if (args.length) {
- return go.apply(this, args);
- }
- else {
- return go;
- }
- });
- }
-
- async.applyEach = _applyEach(async.eachOf);
- async.applyEachSeries = _applyEach(async.eachOfSeries);
-
-
- async.forever = function (fn, callback) {
- var done = only_once(callback || noop);
- var task = ensureAsync(fn);
- function next(err) {
- if (err) {
- return done(err);
- }
- task(next);
- }
- next();
- };
-
- function ensureAsync(fn) {
- return _restParam(function (args) {
- var callback = args.pop();
- args.push(function () {
- var innerArgs = arguments;
- if (sync) {
- async.setImmediate(function () {
- callback.apply(null, innerArgs);
- });
- } else {
- callback.apply(null, innerArgs);
- }
- });
- var sync = true;
- fn.apply(this, args);
- sync = false;
- });
- }
-
- async.ensureAsync = ensureAsync;
-
- async.constant = _restParam(function(values) {
- var args = [null].concat(values);
- return function (callback) {
- return callback.apply(this, args);
- };
- });
-
- async.wrapSync =
- async.asyncify = function asyncify(func) {
- return _restParam(function (args) {
- var callback = args.pop();
- var result;
- try {
- result = func.apply(this, args);
- } catch (e) {
- return callback(e);
- }
- // if result is Promise object
- if (_isObject(result) && typeof result.then === "function") {
- result.then(function(value) {
- callback(null, value);
- })["catch"](function(err) {
- callback(err.message ? err : new Error(err));
- });
- } else {
- callback(null, result);
- }
- });
- };
-
- // Node.js
- if (typeof module === 'object' && module.exports) {
- module.exports = async;
- }
- // AMD / RequireJS
- else if (typeof define === 'function' && define.amd) {
- define([], function () {
- return async;
- });
- }
- // included directly via <script> tag
- else {
- root.async = async;
- }
-
-}());
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"_process":153}],53:[function(require,module,exports){
-var util = require('util');
-var intersect = require('intersect');
-var WildEmitter = require('wildemitter');
-var webrtc = require('webrtcsupport');
-
-var BaseSession = require('jingle-session');
-var MediaSession = require('jingle-media-session');
-var FileSession = require('jingle-filetransfer-session');
-
-
-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) {
- if (opts.applicationTypes.indexOf('rtp') >= 0) {
- return new MediaSession(opts);
- }
- if (opts.applicationTypes.indexOf('filetransfer') >= 0) {
- return new FileSession(opts);
- }
- };
-
- this.performTieBreak = conf.performTieBreak || function (sess, req) {
- var applicationTypes= req.jingle.contents.map(function (content) {
- if (content.application) {
- return content.application.applicationType;
- }
- });
-
- var matching = intersect(sess.pendingApplicationTypes, applicationTypes);
-
- return matching.length > 0;
- };
-
- this.screenSharingSupport = webrtc.screenSharing;
-
- this.capabilities = [
- 'urn:xmpp:jingle:1'
- ];
- if (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: false,
- peerConnectionConfig: {
- iceServers: conf.iceServers || [{'url': 'stun:stun.l.google.com:19302'}]
- },
- peerConnectionConstraints: {
- optional: [
- {DtlsSrtpKeyAgreement: true},
- {RtpDataChannels: false}
- ]
- },
- media: {
- audio: true,
- video: true
- }
- };
-
- for (var item in conf) {
- this.config[item] = conf[item];
- }
-
- this.iceServers = this.config.peerConnectionConfig.iceServers;
-}
-
-
-util.inherits(SessionManager, WildEmitter);
-
-
-SessionManager.prototype.addICEServer = function (server) {
- // server == {
- // url: '',
- // [username: '',]
- // [credential: '']
- // }
- if (typeof server === 'string') {
- server = {url: server};
- }
- this.iceServers.push(server);
-};
-
-SessionManager.prototype.addSession = function (session) {
- var self = this;
-
- var sid = session.sid;
- var peer = session.peerID;
-
- this.sessions[sid] = session;
- if (!this.peers[peer]) {
- this.peers[peer] = [];
- }
-
- this.peers[peer].push(session);
-
- // Automatically clean up tracked sessions
- session.on('terminated', function () {
- var peers = self.peers[peer] || [];
- if (peers.length) {
- peers.splice(peers.indexOf(session), 1);
- }
- delete self.sessions[sid];
- });
-
- // Proxy session events
- session.on('*', function (name, data, extraData, extraData2) {
- // Listen for when we actually try to start a session to
- // trigger the outgoing event.
- if (name === 'send') {
- var action = data.jingle && data.jingle.action;
- if (session.isInitiator && action === 'session-initiate') {
- self.emit('outgoing', session);
- }
- }
-
- if (self.config.debug && (name === 'log:debug' || name === 'log:error')) {
- console.log('Jingle:', data, extraData, extraData2);
- }
-
- // Don't proxy change:* events, since those don't apply to
- // the session manager itself.
- if (name.indexOf('change') === 0) {
- return;
- }
-
- self.emit(name, data, extraData, extraData2);
- });
-
- this.emit('createdSession', session);
-
- return session;
-};
-
-SessionManager.prototype.createMediaSession = function (peer, sid, stream) {
- var session = new MediaSession({
- sid: sid,
- peer: peer,
- initiator: true,
- stream: stream,
- parent: this,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- });
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype.createFileTransferSession = function (peer, sid) {
- var session = new FileSession({
- sid: sid,
- peer: peer,
- initiator: true,
- parent: this
- });
-
- this.addSession(session);
-
- return 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;
-
- if (this.prepareSession) {
- session = this.prepareSession(meta, req);
- }
-
- // Fallback to a generic session type, which can
- // only be used to end the session.
-
- if (!session) {
- session = new BaseSession(meta);
- }
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype._sendError = function (to, id, data) {
- if (!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;
-
- // Extract the request metadata that we need to verify
- var sid = !!req.jingle ? req.jingle.sid : null;
- var session = this.sessions[sid] || null;
- var rid = req.id;
- var sender = req.from.full || req.from;
-
-
- if (req.type === 'error') {
- var isTieBreak = req.error && req.error.jingleCondition === 'tie-break';
- if (session && session.pending && isTieBreak) {
- return session.end('alternative-session', true);
- } else {
- if (session) {
- session.pendingAction = false;
- }
- return this.emit('error', req);
- }
- }
-
- if (req.type === 'result') {
- if (session) {
- session.pendingAction = false;
- }
- return;
- }
-
- var action = req.jingle.action;
- var contents = req.jingle.contents || [];
-
- var applicationTypes = contents.map(function (content) {
- if (content.application) {
- return content.application.applicationType;
- }
- });
- var transportTypes = contents.map(function (content) {
- if (content.transport) {
- return content.transport.transportType;
- }
- });
-
-
- // Now verify that we are allowed to actually process the
- // requested action
-
- if (action !== 'session-initiate') {
- // Can't modify a session that we don't have.
- if (!session) {
- this._log('error', 'Unknown session', sid);
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Check if someone is trying to hijack a session.
- if (session.peerID !== sender || session.ended) {
- this._log('error', 'Session has ended, or action has wrong sender');
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Can't accept a session twice
- if (action === 'session-accept' && !session.pending) {
- this._log('error', 'Tried to accept session twice', sid);
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
-
- // Can't process two requests at once, need to tie break
- if (action !== 'session-terminate' && action === session.pendingAction) {
- this._log('error', 'Tie break during pending request');
- if (session.isInitiator) {
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- } else if (session) {
- // Don't accept a new session if we already have one.
- if (session.peerID !== sender) {
- this._log('error', 'Duplicate sid from new sender');
- return this._sendError(sender, rid, {
- condition: 'service-unavailable'
- });
- }
-
- // Check if we need to have a tie breaker because both parties
- // happened to pick the same random sid.
- if (session.pending) {
- if (this.selfID > session.peerID && this.performTieBreak(session, req)) {
- this._log('error', 'Tie break new session because of duplicate sids');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- } else {
- // The other side is just doing it wrong.
- this._log('error', 'Someone is doing this wrong');
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
- } else if (this.peers[sender] && this.peers[sender].length) {
- // Check if we need to have a tie breaker because we already have
- // a different session with this peer that is using the requested
- // content application types.
- for (var i = 0, len = this.peers[sender].length; i < len; i++) {
- var sess = this.peers[sender][i];
- if (sess && sess.pending && sess.sid > sid && this.performTieBreak(sess, req)) {
- this._log('info', 'Tie break session-initiate');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- }
-
- // We've now weeded out invalid requests, so we can process the action now.
-
- if (action === 'session-initiate') {
- if (!contents.length) {
- return self._sendError(sender, rid, {
- condition: 'bad-request'
- });
- }
-
- session = this._createIncomingSession({
- sid: sid,
- peer: req.from,
- peerID: sender,
- initiator: false,
- parent: this,
- applicationTypes: applicationTypes,
- transportTypes: transportTypes,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- }, req);
- }
-
- session.process(action, req.jingle, function (err) {
- if (err) {
- self._log('error', 'Could not process request', req, err);
- self._sendError(sender, rid, err);
- } else {
- self.emit('send', {
- to: sender,
- id: rid,
- type: 'result',
- });
-
- // Wait for the initial action to be processed before emitting
- // the session for the user to accept/reject.
- if (action === 'session-initiate') {
- self.emit('incoming', session);
- }
- }
- });
-};
-
-
-module.exports = SessionManager;
-
-},{"intersect":46,"jingle-filetransfer-session":49,"jingle-media-session":50,"jingle-session":51,"util":197,"webrtcsupport":210,"wildemitter":211}],54:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-var _shortcuts = require('./shortcuts');
-
-var _shortcuts2 = _interopRequireDefault(_shortcuts);
-
-var _types = require('./types');
-
-var _types2 = _interopRequireDefault(_types);
-
-exports['default'] = function (JXT) {
-
- JXT.use(_types2['default']);
- JXT.use(_shortcuts2['default']);
-};
-
-module.exports = exports['default'];
-
-},{"./shortcuts":55,"./types":56}],55:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var VERSION = {
- client: _xmppConstants.Namespace.CLIENT,
- server: _xmppConstants.Namespace.SERVER,
- component: _xmppConstants.Namespace.COMPONENT
-};
-
-exports['default'] = function (JXT) {
-
- // ----------------------------------------------------------------
- // Shortcuts for common extension calls
- // ----------------------------------------------------------------
-
- JXT.extendMessage = function (JXTClass, multiName) {
- var _this = this;
-
- this.withMessage(function (Message) {
-
- _this.extend(Message, JXTClass, multiName);
- });
- };
-
- JXT.extendPresence = function (JXTClass, multiName) {
- var _this2 = this;
-
- this.withPresence(function (Presence) {
-
- _this2.extend(Presence, JXTClass, multiName);
- });
- };
-
- JXT.extendIQ = function (JXTClass, multiName) {
- var _this3 = this;
-
- this.withIQ(function (IQ) {
-
- _this3.extend(IQ, JXTClass, multiName);
- });
- };
-
- JXT.extendStreamFeatures = function (JXTClass) {
- var _this4 = this;
-
- this.withStreamFeatures(function (StreamFeatures) {
-
- _this4.extend(StreamFeatures, JXTClass);
- });
- };
-
- JXT.extendPubsubItem = function (JXTClass) {
- var _this5 = this;
-
- this.withPubsubItem(function (PubsubItem) {
-
- _this5.extend(PubsubItem, JXTClass);
- });
- };
-
- // ----------------------------------------------------------------
- // Shortcuts for common withDefinition calls
- // ----------------------------------------------------------------
-
- JXT.withIQ = function (cb) {
-
- this.withDefinition('iq', _xmppConstants.Namespace.CLIENT, cb);
- this.withDefinition('iq', _xmppConstants.Namespace.COMPONENT, cb);
- };
-
- JXT.withMessage = function (cb) {
-
- this.withDefinition('message', _xmppConstants.Namespace.CLIENT, cb);
- this.withDefinition('message', _xmppConstants.Namespace.COMPONENT, cb);
- };
-
- JXT.withPresence = function (cb) {
-
- this.withDefinition('presence', _xmppConstants.Namespace.CLIENT, cb);
- this.withDefinition('presence', _xmppConstants.Namespace.COMPONENT, cb);
- };
-
- JXT.withStreamFeatures = function (cb) {
-
- this.withDefinition('features', _xmppConstants.Namespace.STREAM, cb);
- };
-
- JXT.withStanzaError = function (cb) {
-
- this.withDefinition('error', _xmppConstants.Namespace.CLIENT, cb);
- this.withDefinition('error', _xmppConstants.Namespace.COMPONENT, cb);
- };
-
- JXT.withDataForm = function (cb) {
-
- this.withDefinition('x', _xmppConstants.Namespace.DATAFORM, cb);
- };
-
- JXT.withPubsubItem = function (cb) {
-
- this.withDefinition('item', _xmppConstants.Namespace.PUBSUB, cb);
- this.withDefinition('item', _xmppConstants.Namespace.PUBSUB_EVENT, cb);
- };
-
- // ----------------------------------------------------------------
- // Shortcuts for common getDefinition calls
- // ----------------------------------------------------------------
-
- JXT.getMessage = function () {
- var version = arguments[0] === undefined ? 'client' : arguments[0];
-
- return this.getDefinition('message', VERSION[version]);
- };
-
- JXT.getPresence = function () {
- var version = arguments[0] === undefined ? 'client' : arguments[0];
-
- return this.getDefinition('presence', VERSION[version]);
- };
-
- JXT.getIQ = function () {
- var version = arguments[0] === undefined ? 'client' : arguments[0];
-
- return this.getDefinition('iq', VERSION[version]);
- };
-
- JXT.getStreamError = function () {
-
- return this.getDefinition('error', _xmppConstants.Namespace.STREAM);
- };
-
- // For backward compatibility
- JXT.getIq = JXT.getIQ;
- JXT.withIq = JXT.withIQ;
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],56:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppJid = require('xmpp-jid');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- Utils.jidAttribute = function (attr, prepped) {
-
- return {
- get: function get() {
-
- var jid = new _xmppJid.JID(Utils.getAttribute(this.xml, attr));
- if (prepped) {
- jid.prepped = true;
- }
- return jid;
- },
- set: function set(value) {
-
- Utils.setAttribute(this.xml, attr, (value || '').toString());
- }
- };
- };
-
- Utils.jidSub = function (NS, sub, prepped) {
-
- return {
- get: function get() {
-
- var jid = new _xmppJid.JID(Utils.getSubText(this.xml, NS, sub));
- if (prepped) {
- jid.prepped = true;
- }
- return jid;
- },
- set: function set(value) {
-
- Utils.setSubText(this.xml, NS, sub, (value || '').toString());
- }
- };
- };
-
- Utils.tzoSub = Utils.field(function (xml, NS, sub, defaultVal) {
-
- var hrs = undefined,
- min = undefined,
- split = undefined;
- var sign = -1;
- var formatted = Utils.getSubText(xml, NS, sub);
-
- if (!formatted) {
- return defaultVal;
- }
-
- if (formatted.charAt(0) === '-') {
- sign = 1;
- formatted = formatted.slice(1);
- }
-
- split = formatted.split(':');
- hrs = parseInt(split[0], 10);
- min = parseInt(split[1], 10);
- return (hrs * 60 + min) * sign;
- }, function (xml, NS, sub, value) {
-
- var hrs = undefined,
- min = undefined;
- var formatted = '-';
- if (typeof value === 'number') {
- if (value < 0) {
- value = -value;
- formatted = '+';
- }
- hrs = value / 60;
- min = value % 60;
- formatted += (hrs < 10 ? '0' : '') + hrs + ':' + (min < 10 ? '0' : '') + min;
- } else {
- formatted = value;
- }
- Utils.setSubText(xml, NS, sub, formatted);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-jid":218}],57:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Address = JXT.define({
- name: '_address',
- namespace: _xmppConstants.Namespace.ADDRESS,
- element: 'address',
- fields: {
- jid: Utils.jidAttribute('jid'),
- uri: Utils.attribute('uri'),
- node: Utils.attribute('node'),
- description: Utils.attribute('desc'),
- delivered: Utils.boolAttribute('delivered'),
- type: Utils.attribute('type')
- }
- });
-
- var Addresses = Utils.subMultiExtension(_xmppConstants.Namespace.ADDRESS, 'addresses', Address);
-
- JXT.withMessage(function (Message) {
- JXT.add(Message, 'addresses', Addresses);
- });
-
- JXT.withPresence(function (Presence) {
- JXT.add(Presence, 'addresses', Addresses);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],58:[function(require,module,exports){
-'use strict';
-
-var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _lodashForeach = require('lodash.foreach');
-
-var _lodashForeach2 = _interopRequireDefault(_lodashForeach);
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Avatar = JXT.define({
- name: 'avatar',
- namespace: _xmppConstants.Namespace.AVATAR_METADATA,
- element: 'info',
- fields: {
- id: Utils.attribute('id'),
- bytes: Utils.attribute('bytes'),
- height: Utils.attribute('height'),
- width: Utils.attribute('width'),
- type: Utils.attribute('type', 'image/png'),
- url: Utils.attribute('url')
- }
- });
-
- var avatars = {
- get: function get() {
-
- var metadata = Utils.find(this.xml, _xmppConstants.Namespace.AVATAR_METADATA, 'metadata');
- var results = [];
- if (metadata.length) {
- var _avatars = Utils.find(metadata[0], _xmppConstants.Namespace.AVATAR_METADATA, 'info');
- (0, _lodashForeach2['default'])(_avatars, function (info) {
-
- results.push(new Avatar({}, info));
- });
- }
- return results;
- },
- set: function set(value) {
-
- var metadata = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.AVATAR_METADATA, 'metadata');
- Utils.setAttribute(metadata, 'xmlns', _xmppConstants.Namespace.AVATAR_METADATA);
- (0, _lodashForeach2['default'])(value, function (info) {
-
- var avatar = new Avatar(info);
- metadata.appendChild(avatar.xml);
- });
- }
- };
-
- JXT.withPubsubItem(function (Item) {
-
- JXT.add(Item, 'avatars', avatars);
- JXT.add(Item, 'avatarData', Utils.textSub(_xmppConstants.Namespace.AVATAR_DATA, 'data'));
- });
-};
-
-module.exports = exports['default'];
-
-},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],59:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Bind = JXT.define({
- name: 'bind',
- namespace: _xmppConstants.Namespace.BIND,
- element: 'bind',
- fields: {
- resource: Utils.textSub(_xmppConstants.Namespace.BIND, 'resource'),
- jid: Utils.jidSub(_xmppConstants.Namespace.BIND, 'jid')
- }
- });
-
- JXT.extendIQ(Bind);
- JXT.extendStreamFeatures(Bind);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],60:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _xmppJid = require('xmpp-jid');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var jidList = {
- get: function get() {
-
- var result = [];
- var items = Utils.find(this.xml, _xmppConstants.Namespace.BLOCKING, 'item');
- if (!items.length) {
- return result;
- }
-
- items.forEach(function (item) {
-
- result.push(new _xmppJid.JID(Utils.getAttribute(item, 'jid', '')));
- });
-
- return result;
- },
- set: function set(values) {
-
- var self = this;
- values.forEach(function (value) {
-
- var item = Utils.createElement(_xmppConstants.Namespace.BLOCKING, 'item', _xmppConstants.Namespace.BLOCKING);
- Utils.setAttribute(item, 'jid', value.toString());
- self.xml.appendChild(item);
- });
- }
- };
-
- var Block = JXT.define({
- name: 'block',
- namespace: _xmppConstants.Namespace.BLOCKING,
- element: 'block',
- fields: {
- jids: jidList
- }
- });
-
- var Unblock = JXT.define({
- name: 'unblock',
- namespace: _xmppConstants.Namespace.BLOCKING,
- element: 'unblock',
- fields: {
- jids: jidList
- }
- });
-
- var BlockList = JXT.define({
- name: 'blockList',
- namespace: _xmppConstants.Namespace.BLOCKING,
- element: 'blocklist',
- fields: {
- jids: jidList
- }
- });
-
- JXT.extendIQ(Block);
- JXT.extendIQ(Unblock);
- JXT.extendIQ(BlockList);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212,"xmpp-jid":218}],61:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var BOB = JXT.define({
- name: 'bob',
- namespace: _xmppConstants.Namespace.BOB,
- element: 'data',
- fields: {
- cid: Utils.attribute('cid'),
- maxAge: Utils.numberAttribute('max-age'),
- type: Utils.attribute('type'),
- data: Utils.text()
- }
- });
-
- JXT.extendIQ(BOB);
- JXT.extendMessage(BOB);
- JXT.extendPresence(BOB);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],62:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Conference = JXT.define({
- name: '_conference',
- namespace: _xmppConstants.Namespace.BOOKMARKS,
- element: 'conference',
- fields: {
- name: Utils.attribute('name'),
- autoJoin: Utils.boolAttribute('autojoin'),
- jid: Utils.jidAttribute('jid'),
- nick: Utils.textSub(_xmppConstants.Namespace.BOOKMARKS, 'nick')
- }
- });
-
- var Bookmarks = JXT.define({
- name: 'bookmarks',
- namespace: _xmppConstants.Namespace.BOOKMARKS,
- element: 'storage'
- });
-
- JXT.extend(Bookmarks, Conference, 'conferences');
-
- JXT.withDefinition('query', _xmppConstants.Namespace.PRIVATE, function (PrivateStorage) {
-
- JXT.extend(PrivateStorage, Bookmarks);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],63:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: 'bosh',
- namespace: _xmppConstants.Namespace.BOSH,
- element: 'body',
- prefixes: {
- xmpp: _xmppConstants.Namespace.BOSH_XMPP
- },
- fields: {
- accept: Utils.attribute('accept'),
- ack: Utils.numberAttribute('ack'),
- authid: Utils.attribute('authid'),
- charsets: Utils.attribute('charsets'),
- condition: Utils.attribute('condition'),
- content: Utils.attribute('content'),
- from: Utils.jidAttribute('from', true),
- hold: Utils.numberAttribute('hold'),
- inactivity: Utils.numberAttribute('inactivity'),
- key: Utils.attribute('key'),
- maxpause: Utils.numberAttribute('maxpause'),
- newKey: Utils.attribute('newkey'),
- pause: Utils.numberAttribute('pause'),
- polling: Utils.numberAttribute('polling'),
- resport: Utils.numberAttribute('report'),
- requests: Utils.numberAttribute('requests'),
- rid: Utils.numberAttribute('rid'),
- sid: Utils.attribute('sid'),
- stream: Utils.attribute('stream'),
- time: Utils.attribute('time'),
- to: Utils.jidAttribute('to', true),
- type: Utils.attribute('type'),
- ver: Utils.attribute('ver'),
- wait: Utils.numberAttribute('wait'),
- uri: Utils.textSub(_xmppConstants.Namespace.BOSH, 'uri'),
- lang: Utils.langAttribute(),
- // These three should be using namespaced attributes, but browsers are stupid
- // when it comes to serializing attributes with namespaces
- version: Utils.attribute('xmpp:version', '1.0'),
- restart: Utils.attribute('xmpp:restart'),
- restartLogic: Utils.boolAttribute('xmpp:restartLogic'),
- payload: {
- get: function get() {
-
- var results = [];
- for (var i = 0, len = this.xml.childNodes.length; i < len; i++) {
- var obj = JXT.build(this.xml.childNodes[i]);
- if (obj !== undefined) {
- results.push(obj);
- }
- }
- return results;
- },
- set: function set(values) {
- var _this = this;
-
- values.forEach(function (types) {
-
- _this.xml.appendChild(types.xml);
- });
- }
- }
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],64:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Sent = JXT.define({
- name: 'carbonSent',
- eventName: 'carbon:sent',
- namespace: _xmppConstants.Namespace.CARBONS_2,
- element: 'sent'
- });
-
- var Received = JXT.define({
- name: 'carbonReceived',
- eventName: 'carbon:received',
- namespace: _xmppConstants.Namespace.CARBONS_2,
- element: 'received'
- });
-
- var Private = JXT.define({
- name: 'carbonPrivate',
- eventName: 'carbon:private',
- namespace: _xmppConstants.Namespace.CARBONS_2,
- element: 'private'
- });
-
- var Enable = JXT.define({
- name: 'enableCarbons',
- namespace: _xmppConstants.Namespace.CARBONS_2,
- element: 'enable'
- });
-
- var Disable = JXT.define({
- name: 'disableCarbons',
- namespace: _xmppConstants.Namespace.CARBONS_2,
- element: 'disable'
- });
-
- JXT.withDefinition('forwarded', _xmppConstants.Namespace.FORWARD_0, function (Forwarded) {
-
- JXT.extend(Sent, Forwarded);
- JXT.extend(Received, Forwarded);
- });
-
- JXT.extendMessage(Sent);
- JXT.extendMessage(Received);
- JXT.extendMessage(Private);
- JXT.extendIQ(Enable);
- JXT.extendIQ(Disable);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],65:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var ACTIONS = ['next', 'prev', 'complete', 'cancel'];
-
-var CONDITIONS = ['bad-action', 'bad-locale', 'bad-payload', 'bad-sessionid', 'malformed-action', 'session-expired'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Command = JXT.define({
- name: 'command',
- namespace: _xmppConstants.Namespace.ADHOC_COMMANDS,
- element: 'command',
- fields: {
- action: Utils.attribute('action'),
- node: Utils.attribute('node'),
- sessionid: Utils.attribute('sessionid'),
- status: Utils.attribute('status'),
- execute: Utils.subAttribute(_xmppConstants.Namespace.ADHOC_COMMANDS, 'actions', 'execute'),
- actions: {
- get: function get() {
-
- var result = [];
- var actionSet = Utils.find(this.xml, _xmppConstants.Namespace.ADHOC_COMMANDS, 'actions');
- if (!actionSet.length) {
- return [];
- }
- ACTIONS.forEach(function (action) {
-
- var existing = Utils.find(actionSet[0], _xmppConstants.Namespace.ADHOC_COMMANDS, action);
- if (existing.length) {
- result.push(action);
- }
- });
- return result;
- },
- set: function set(values) {
-
- var actionSet = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.ADHOC_COMMANDS, 'actions');
- for (var i = 0, len = actionSet.childNodes.length; i < len; i++) {
- actionSet.removeChild(actionSet.childNodes[i]);
- }
- values.forEach(function (value) {
-
- actionSet.appendChild(Utils.createElement(_xmppConstants.Namespace.ADHOC_COMMANDS, value.toLowerCase(), _xmppConstants.Namespace.ADHOC_COMMANDS));
- });
- }
- }
- }
- });
-
- var Note = JXT.define({
- name: '_commandNote',
- namespace: _xmppConstants.Namespace.ADHOC_COMMANDS,
- element: 'note',
- fields: {
- type: Utils.attribute('type'),
- value: Utils.text()
- }
- });
-
- JXT.extend(Command, Note, 'notes');
-
- JXT.extendIQ(Command);
-
- JXT.withStanzaError(function (StanzaError) {
-
- JXT.add(StanzaError, 'adhocCommandCondition', Utils.enumSub(_xmppConstants.Namespace.ADHOC_COMMANDS, CONDITIONS));
- });
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(Command, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],66:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var CSIFeature = JXT.define({
- name: 'clientStateIndication',
- namespace: _xmppConstants.Namespace.CSI,
- element: 'csi'
- });
-
- JXT.define({
- name: 'csiActive',
- eventName: 'csi:active',
- namespace: _xmppConstants.Namespace.CSI,
- element: 'active',
- topLevel: true
- });
-
- JXT.define({
- name: 'csiInactive',
- eventName: 'csi:inactive',
- namespace: _xmppConstants.Namespace.CSI,
- element: 'inactive',
- topLevel: true
- });
-
- JXT.extendStreamFeatures(CSIFeature);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],67:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _xmppJid = require('xmpp-jid');
-
-var SINGLE_FIELDS = ['text-single', 'text-private', 'list-single', 'jid-single'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Field = JXT.define({
- name: '_field',
- namespace: _xmppConstants.Namespace.DATAFORM,
- element: 'field',
- init: function init(data) {
-
- this._type = (data || {}).type || this.type;
- },
- fields: {
- type: {
- get: function get() {
-
- return Utils.getAttribute(this.xml, 'type', 'text-single');
- },
- set: function set(value) {
-
- this._type = value;
- Utils.setAttribute(this.xml, 'type', value);
- }
- },
- name: Utils.attribute('var'),
- desc: Utils.textSub(_xmppConstants.Namespace.DATAFORM, 'desc'),
- required: Utils.boolSub(_xmppConstants.Namespace.DATAFORM, 'required'),
- label: Utils.attribute('label'),
- value: {
- get: function get() {
-
- var vals = Utils.getMultiSubText(this.xml, _xmppConstants.Namespace.DATAFORM, 'value');
- if (this._type === 'boolean') {
- return vals[0] === '1' || vals[0] === 'true';
- }
- if (vals.length > 1) {
- if (this._type === 'text-multi') {
- return vals.join('\n');
- }
-
- if (this._type === 'jid-multi') {
- return vals.map(function (jid) {
-
- return new _xmppJid.JID(jid);
- });
- }
-
- return vals;
- }
- if (SINGLE_FIELDS.indexOf(this._type) >= 0) {
- if (this._type === 'jid-single') {
- return new _xmppJid.JID(vals[0]);
- }
- return vals[0];
- }
-
- return vals;
- },
- set: function set(value) {
-
- if (this._type === 'boolean' || value === true || value === false) {
- var truthy = value === true || value === 'true' || value === '1';
- var sub = Utils.createElement(_xmppConstants.Namespace.DATAFORM, 'value', _xmppConstants.Namespace.DATAFORM);
- sub.textContent = truthy ? '1' : '0';
- this.xml.appendChild(sub);
- } else {
- if (this._type === 'text-multi' && typeof value === 'string') {
- value = value.split('\n');
- }
- Utils.setMultiSubText(this.xml, _xmppConstants.Namespace.DATAFORM, 'value', value, (function (val) {
-
- var sub = Utils.createElement(_xmppConstants.Namespace.DATAFORM, 'value', _xmppConstants.Namespace.DATAFORM);
- sub.textContent = val;
- this.xml.appendChild(sub);
- }).bind(this));
- }
- }
- }
- }
- });
-
- var Option = JXT.define({
- name: '_formoption',
- namespace: _xmppConstants.Namespace.DATAFORM,
- element: 'option',
- fields: {
- label: Utils.attribute('label'),
- value: Utils.textSub(_xmppConstants.Namespace.DATAFORM, 'value')
- }
- });
-
- var Item = JXT.define({
- name: '_formitem',
- namespace: _xmppConstants.Namespace.DATAFORM,
- element: 'item'
- });
-
- var Media = JXT.define({
- name: 'media',
- element: 'media',
- namespace: _xmppConstants.Namespace.DATAFORM_MEDIA,
- fields: {
- height: Utils.numberAttribute('height'),
- width: Utils.numberAttribute('width')
- }
- });
-
- var MediaURI = JXT.define({
- name: '_mediaURI',
- element: 'uri',
- namespace: _xmppConstants.Namespace.DATAFORM_MEDIA,
- fields: {
- uri: Utils.text(),
- type: Utils.attribute('type')
- }
- });
-
- var Validation = JXT.define({
- name: 'validation',
- element: 'validate',
- namespace: _xmppConstants.Namespace.DATAFORM_VALIDATION,
- fields: {
- dataType: Utils.attribute('datatype'),
- basic: Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION, 'basic'),
- open: Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION, 'open'),
- regex: Utils.textSub(_xmppConstants.Namespace.DATAFORM_VALIDATION, 'regex')
- }
- });
-
- var Range = JXT.define({
- name: 'range',
- element: 'range',
- namespace: _xmppConstants.Namespace.DATAFORM_VALIDATION,
- fields: {
- min: Utils.attribute('min'),
- max: Utils.attribute('max')
- }
- });
-
- var ListRange = JXT.define({
- name: 'select',
- element: 'list-range',
- namespace: _xmppConstants.Namespace.DATAFORM_VALIDATION,
- fields: {
- min: Utils.numberAttribute('min'),
- max: Utils.numberAttribute('max')
- }
- });
-
- var layoutContents = {
- get: function get() {
-
- var result = [];
- for (var i = 0, len = this.xml.childNodes.length; i < len; i++) {
- var child = this.xml.childNodes[i];
- if (child.namespaceURI !== _xmppConstants.Namespace.DATAFORM_LAYOUT) {
- continue;
- }
-
- switch (child.localName) {
- case 'text':
- result.push({
- text: child.textContent
- });
- break;
- case 'fieldref':
- result.push({
- field: child.getAttribute('var')
- });
- break;
- case 'reportedref':
- result.push({
- reported: true
- });
- break;
- case 'section':
- result.push({
- section: new Section(null, child, this).toJSON()
- });
- break;
- }
- }
-
- return result;
- },
- set: function set(values) {
-
- for (var i = 0, len = values.length; i < len; i++) {
- var value = values[i];
- if (value.text) {
- var text = Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT, 'text', _xmppConstants.Namespace.DATAFORM_LAYOUT);
- text.textContent = value.text;
- this.xml.appendChild(text);
- }
- if (value.field) {
- var field = Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT, 'fieldref', _xmppConstants.Namespace.DATAFORM_LAYOUT);
- field.setAttribute('var', value.field);
- this.xml.appendChild(field);
- }
- if (value.reported) {
- this.xml.appendChild(Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT, 'reportedref', _xmppConstants.Namespace.DATAFORM_LAYOUT));
- }
- if (value.section) {
- var sectionXML = Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT, 'section', _xmppConstants.Namespace.DATAFORM_LAYOUT);
- this.xml.appendChild(sectionXML);
-
- var section = new Section(null, sectionXML);
- section.label = value.section.label;
- section.contents = value.section.contents;
- }
- }
- }
- };
-
- var Section = JXT.define({
- name: '_section',
- element: 'section',
- namespace: _xmppConstants.Namespace.DATAFORM_LAYOUT,
- fields: {
- label: Utils.attribute('label'),
- contents: layoutContents
- }
- });
-
- var Page = JXT.define({
- name: '_page',
- element: 'page',
- namespace: _xmppConstants.Namespace.DATAFORM_LAYOUT,
- fields: {
- label: Utils.attribute('label'),
- contents: layoutContents
- }
- });
-
- var DataForm = JXT.define({
- name: 'form',
- namespace: _xmppConstants.Namespace.DATAFORM,
- element: 'x',
- init: function init() {
-
- // Propagate reported field types to items
-
- if (!this.reportedFields.length) {
- return;
- }
-
- var fieldTypes = {};
- this.reportedFields.forEach(function (reported) {
-
- fieldTypes[reported.name] = reported.type;
- });
- this.items.forEach(function (item) {
-
- item.fields.forEach(function (field) {
-
- field.type = field._type = fieldTypes[field.name];
- });
- });
- },
- fields: {
- title: Utils.textSub(_xmppConstants.Namespace.DATAFORM, 'title'),
- instructions: Utils.multiTextSub(_xmppConstants.Namespace.DATAFORM, 'instructions'),
- type: Utils.attribute('type', 'form'),
- reportedFields: Utils.subMultiExtension(_xmppConstants.Namespace.DATAFORM, 'reported', Field)
- }
- });
-
- JXT.extend(DataForm, Field, 'fields');
- JXT.extend(DataForm, Item, 'items');
- JXT.extend(DataForm, Page, 'layout');
-
- JXT.extend(Field, Media);
- JXT.extend(Field, Validation);
- JXT.extend(Field, Option, 'options');
-
- JXT.extend(Item, Field, 'fields');
-
- JXT.extend(Media, MediaURI, 'uris');
- JXT.extend(Validation, Range);
- JXT.extend(Validation, ListRange);
-
- JXT.extendMessage(DataForm);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212,"xmpp-jid":218}],68:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var DelayedDelivery = JXT.define({
- name: 'delay',
- namespace: _xmppConstants.Namespace.DELAY,
- element: 'delay',
- fields: {
- from: Utils.jidAttribute('from'),
- stamp: Utils.dateAttribute('stamp'),
- reason: Utils.text()
- }
- });
-
- JXT.extendMessage(DelayedDelivery);
- JXT.extendPresence(DelayedDelivery);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],69:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var DiscoCaps = JXT.define({
- name: 'caps',
- namespace: _xmppConstants.Namespace.CAPS,
- element: 'c',
- fields: {
- ver: Utils.attribute('ver'),
- node: Utils.attribute('node'),
- hash: Utils.attribute('hash'),
- ext: Utils.attribute('ext')
- }
- });
-
- var DiscoInfo = JXT.define({
- name: 'discoInfo',
- namespace: _xmppConstants.Namespace.DISCO_INFO,
- element: 'query',
- fields: {
- node: Utils.attribute('node'),
- features: Utils.multiSubAttribute(_xmppConstants.Namespace.DISCO_INFO, 'feature', 'var')
- }
- });
-
- var DiscoIdentity = JXT.define({
- name: '_discoIdentity',
- namespace: _xmppConstants.Namespace.DISCO_INFO,
- element: 'identity',
- fields: {
- category: Utils.attribute('category'),
- type: Utils.attribute('type'),
- name: Utils.attribute('name'),
- lang: Utils.langAttribute()
- }
- });
-
- var DiscoItems = JXT.define({
- name: 'discoItems',
- namespace: _xmppConstants.Namespace.DISCO_ITEMS,
- element: 'query',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var DiscoItem = JXT.define({
- name: '_discoItem',
- namespace: _xmppConstants.Namespace.DISCO_ITEMS,
- element: 'item',
- fields: {
- jid: Utils.jidAttribute('jid'),
- node: Utils.attribute('node'),
- name: Utils.attribute('name')
- }
- });
-
- JXT.extend(DiscoItems, DiscoItem, 'items');
- JXT.extend(DiscoInfo, DiscoIdentity, 'identities');
-
- JXT.extendIQ(DiscoInfo);
- JXT.extendIQ(DiscoItems);
- JXT.extendPresence(DiscoCaps);
- JXT.extendStreamFeatures(DiscoCaps);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(DiscoInfo, DataForm, 'extensions');
- });
-
- JXT.withDefinition('set', _xmppConstants.Namespace.RSM, function (RSM) {
-
- JXT.extend(DiscoItems, RSM);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],70:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['bad-request', 'conflict', 'feature-not-implemented', 'forbidden', 'gone', 'internal-server-error', 'item-not-found', 'jid-malformed', 'not-acceptable', 'not-allowed', 'not-authorized', 'payment-required', 'recipient-unavailable', 'redirect', 'registration-required', 'remote-server-not-found', 'remote-server-timeout', 'resource-constraint', 'service-unavailable', 'subscription-required', 'undefined-condition', 'unexpected-request'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var StanzaError = JXT.define({
- name: 'error',
- namespace: _xmppConstants.Namespace.CLIENT,
- element: 'error',
- fields: {
- lang: {
- get: function get() {
-
- return (this.parent || {}).lang || '';
- }
- },
- condition: Utils.enumSub(_xmppConstants.Namespace.STANZA_ERROR, CONDITIONS),
- gone: {
- get: function get() {
-
- return Utils.getSubText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'gone');
- },
- set: function set(value) {
-
- this.condition = 'gone';
- Utils.setSubText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'gone', value);
- }
- },
- redirect: {
- get: function get() {
-
- return Utils.getSubText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'redirect');
- },
- set: function set(value) {
-
- this.condition = 'redirect';
- Utils.setSubText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'redirect', value);
- }
- },
- code: Utils.attribute('code'),
- type: Utils.attribute('type'),
- by: Utils.jidAttribute('by'),
- $text: {
- get: function get() {
-
- return Utils.getSubLangText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'text', this.lang);
- }
- },
- text: {
- get: function get() {
-
- var text = this.$text;
- return text[this.lang] || '';
- },
- set: function set(value) {
-
- Utils.setSubLangText(this.xml, _xmppConstants.Namespace.STANZA_ERROR, 'text', value, this.lang);
- }
- }
- }
- });
-
- JXT.extendMessage(StanzaError);
- JXT.extendPresence(StanzaError);
- JXT.extendIQ(StanzaError);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],71:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Services = exports.Services = JXT.define({
- name: 'services',
- namespace: _xmppConstants.Namespace.DISCO_EXTERNAL_1,
- element: 'services',
- fields: {
- type: Utils.attribute('type')
- }
- });
-
- var Credentials = exports.Credentials = JXT.define({
- name: 'credentials',
- namespace: _xmppConstants.Namespace.DISCO_EXTERNAL_1,
- element: 'credentials'
- });
-
- var Service = JXT.define({
- name: 'service',
- namespace: _xmppConstants.Namespace.DISCO_EXTERNAL_1,
- element: 'service',
- fields: {
- host: Utils.attribute('host'),
- port: Utils.attribute('port'),
- transport: Utils.attribute('transport'),
- type: Utils.attribute('type'),
- username: Utils.attribute('username'),
- password: Utils.attribute('password')
- }
- });
-
- JXT.extend(Services, Service, 'services');
- JXT.extend(Credentials, Service);
-
- JXT.extendIQ(Services);
- JXT.extendIQ(Credentials);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(Service, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],72:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var FT_NS = _xmppConstants.Namespace.FILE_TRANSFER_4;
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var File = JXT.define({
- name: 'file',
- namespace: FT_NS,
- element: 'file',
- fields: {
- name: Utils.textSub(FT_NS, 'name'),
- description: Utils.textSub(FT_NS, 'desc'),
- mediaType: Utils.textSub(FT_NS, 'media-type'),
- size: Utils.numberSub(FT_NS, 'size'),
- date: Utils.dateSub(FT_NS, 'date')
- }
- });
-
- var Range = JXT.define({
- name: 'range',
- namespace: FT_NS,
- element: 'range',
- fields: {
- offset: Utils.numberAttribute('offset'),
- length: Utils.numberAttribute('length')
- }
- });
-
- var FileTransfer = JXT.define({
- name: '_' + FT_NS,
- namespace: FT_NS,
- element: 'description',
- tags: ['jingle-application'],
- fields: {
- applicationType: { value: FT_NS }
- }
- });
-
- var Received = JXT.define({
- name: '_{' + FT_NS + '}received',
- namespace: FT_NS,
- element: 'received',
- tags: ['jingle-info'],
- fields: {
- infoType: { value: '{' + FT_NS + '}received' },
- creator: Utils.attribute('creator'),
- name: Utils.attribute('name')
- }
- });
-
- var Checksum = JXT.define({
- name: '_{' + FT_NS + '}checksum',
- namespace: FT_NS,
- element: 'checksum',
- tags: ['jingle-info'],
- fields: {
- infoType: { value: '{' + FT_NS + '}checksum' },
- creator: Utils.attribute('creator'),
- name: Utils.attribute('name')
- }
- });
-
- JXT.extend(File, Range);
- JXT.extend(Checksum, File);
- JXT.extend(FileTransfer, File);
-
- JXT.withDefinition('hash', _xmppConstants.Namespace.HASHES_1, function (Hash) {
-
- JXT.extend(File, Hash, 'hashes');
- JXT.extend(Range, Hash, 'hashes');
- });
-
- JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
-
- JXT.extend(Content, FileTransfer);
- });
-
- JXT.withDefinition('jingle', _xmppConstants.Namespace.JINGLE_1, function (Jingle) {
-
- JXT.extend(Jingle, Received);
- JXT.extend(Jingle, Checksum);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],73:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var FT_NS = _xmppConstants.Namespace.FILE_TRANSFER_3;
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var File = JXT.define({
- name: '_file',
- namespace: FT_NS,
- element: 'file',
- fields: {
- name: Utils.textSub(FT_NS, 'name'),
- desc: Utils.textSub(FT_NS, 'desc'),
- size: Utils.numberSub(FT_NS, 'size'),
- date: Utils.dateSub(FT_NS, 'date')
- }
- });
-
- var Range = JXT.define({
- name: 'range',
- namespace: FT_NS,
- element: 'range',
- fields: {
- offset: Utils.numberAttribute('offset')
- }
- });
-
- var Thumbnail = JXT.define({
- name: 'thumbnail',
- namespace: _xmppConstants.Namespace.THUMBS_0,
- element: 'thumbnail',
- fields: {
- cid: Utils.attribute('cid'),
- mimeType: Utils.attribute('mime-type'),
- width: Utils.numberAttribute('width'),
- height: Utils.numberAttribute('height')
- }
- });
-
- var FileTransfer = JXT.define({
- name: '_filetransfer',
- namespace: FT_NS,
- element: 'description',
- tags: ['jingle-application'],
- fields: {
- applicationType: { value: 'filetransfer' },
- offer: Utils.subExtension('offer', FT_NS, 'offer', File),
- request: Utils.subExtension('request', FT_NS, 'request', File)
- }
- });
-
- JXT.extend(File, Range);
- JXT.extend(File, Thumbnail);
-
- JXT.withDefinition('hash', _xmppConstants.Namespace.HASHES_1, function (Hash) {
-
- JXT.extend(File, Hash, 'hashes');
- });
-
- JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
-
- JXT.extend(Content, FileTransfer);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],74:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Forwarded = JXT.define({
- name: 'forwarded',
- namespace: _xmppConstants.Namespace.FORWARD_0,
- element: 'forwarded'
- });
-
- JXT.withMessage(function (Message) {
-
- JXT.extend(Message, Forwarded);
- JXT.extend(Forwarded, Message);
- });
-
- JXT.withPresence(function (Presence) {
-
- JXT.extend(Presence, Forwarded);
- JXT.extend(Forwarded, Presence);
- });
-
- JXT.withIQ(function (IQ) {
-
- JXT.extend(IQ, Forwarded);
- JXT.extend(Forwarded, IQ);
- });
-
- JXT.withDefinition('delay', _xmppConstants.Namespace.DELAY, function (Delayed) {
-
- JXT.extend(Forwarded, Delayed);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],75:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: 'openStream',
- namespace: _xmppConstants.Namespace.FRAMING,
- element: 'open',
- topLevel: true,
- fields: {
- lang: Utils.langAttribute(),
- id: Utils.attribute('id'),
- version: Utils.attribute('version', '1.0'),
- to: Utils.jidAttribute('to', true),
- from: Utils.jidAttribute('from', true)
- }
- });
-
- JXT.define({
- name: 'closeStream',
- namespace: _xmppConstants.Namespace.FRAMING,
- element: 'close',
- topLevel: true,
- fields: {
- seeOtherURI: Utils.attribute('see-other-uri')
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],76:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var GeoLoc = JXT.define({
- name: 'geoloc',
- namespace: _xmppConstants.Namespace.GEOLOC,
- element: 'geoloc',
- fields: {
- accuracy: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'accuracy', true),
- altitude: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'alt', true),
- area: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'area'),
- heading: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'bearing', true),
- bearing: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'bearing', true),
- building: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'building'),
- country: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'country'),
- countrycode: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'countrycode'),
- datum: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'datum'),
- description: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'description'),
- error: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'error', true),
- floor: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'floor'),
- latitude: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'lat', true),
- locality: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'locality'),
- longitude: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'lon', true),
- postalcode: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'postalcode'),
- region: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'region'),
- room: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'room'),
- speed: Utils.numberSub(_xmppConstants.Namespace.GEOLOC, 'speed', true),
- street: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'street'),
- text: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'text'),
- timestamp: Utils.dateSub(_xmppConstants.Namespace.GEOLOC, 'timestamp'),
- tzo: Utils.tzoSub(_xmppConstants.Namespace.GEOLOC, 'tzo'),
- uri: Utils.textSub(_xmppConstants.Namespace.GEOLOC, 'uri')
- }
- });
-
- JXT.extendPubsubItem(GeoLoc);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],77:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- JXT.define({
- name: 'hash',
- namespace: _xmppConstants.Namespace.HASHES_1,
- element: 'hash',
- fields: {
- algo: JXT.utils.attribute('algo'),
- value: JXT.utils.text()
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],78:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Hat = JXT.define({
- name: '_hat',
- namespace: _xmppConstants.Namespace.HATS_0,
- element: 'hat',
- fields: {
- lang: JXT.utils.langAttribute(),
- name: JXT.utils.attribute('name'),
- displayName: JXT.utils.attribute('displayName')
- }
- });
-
- JXT.withPresence(function (Presence) {
-
- JXT.add(Presence, 'hats', JXT.utils.subMultiExtension(_xmppConstants.Namespace.HATS_0, 'hats', Hat));
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],79:[function(require,module,exports){
-(function (Buffer){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var NS_IBB = 'http://jabber.org/protocol/ibb';
-var NS_JIBB = 'urn:xmpp:jingle:transports:ibb:1';
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var IBB = {
- get: function get() {
-
- var data = Utils.find(this.xml, NS_IBB, 'data');
- if (data.length) {
- data = data[0];
- return {
- action: 'data',
- sid: Utils.getAttribute(data, 'sid'),
- seq: parseInt(Utils.getAttribute(data, 'seq') || '0', 10),
- data: new Buffer(Utils.getText(data), 'base64')
- };
- }
-
- var open = Utils.find(this.xml, NS_IBB, 'open');
- if (open.length) {
- open = open[0];
- var ack = Utils.getAttribute(open, 'stanza');
- if (ack === 'message') {
- ack = false;
- } else {
- ack = true;
- }
-
- return {
- action: 'open',
- sid: Utils.getAttribute(open, 'sid'),
- blockSize: Utils.getAttribute(open, 'block-size'),
- ack: ack
- };
- }
-
- var close = Utils.find(this.xml, NS_IBB, 'close');
- if (close.length) {
- return {
- action: 'close',
- sid: Utils.getAttribute(close[0], 'sid')
- };
- }
- },
- set: function set(value) {
-
- if (value.action === 'data') {
- var data = Utils.createElement(NS_IBB, 'data');
- Utils.setAttribute(data, 'sid', value.sid);
- Utils.setAttribute(data, 'seq', value.seq.toString());
- Utils.setText(data, value.data.toString('base64'));
- this.xml.appendChild(data);
- }
-
- if (value.action === 'open') {
- var _open = Utils.createElement(NS_IBB, 'open');
- Utils.setAttribute(_open, 'sid', value.sid);
- Utils.setAttribute(_open, 'block-size', (value.blockSize || '4096').toString());
- if (value.ack === false) {
- Utils.setAttribute(_open, 'stanza', 'message');
- } else {
- Utils.setAttribute(_open, 'stanza', 'iq');
- }
- this.xml.appendChild(_open);
- }
-
- if (value.action === 'close') {
- var _close = Utils.createElement(NS_IBB, 'close');
- Utils.setAttribute(_close, 'sid', value.sid);
- this.xml.appendChild(_close);
- }
- }
- };
-
- var JingleIBB = JXT.define({
- name: '_' + NS_JIBB,
- namespace: NS_JIBB,
- element: 'transport',
- tags: ['jingle-transport'],
- fields: {
- transportType: {
- value: NS_JIBB
- },
- sid: Utils.attribute('sid'),
- blockSize: Utils.numberAttribute('block-size'),
- ack: {
- get: function get() {
- var value = Utils.getAttribute(this.xml, 'stanza');
- if (value === 'message') {
- return false;
- }
- return true;
- },
- set: function set(value) {
- if (value.ack === false) {
- Utils.setAttribute(this.xml, 'stanza', 'message');
- } else {
- Utils.setAttribute(this.xml, 'stanza', 'iq');
- }
- }
- }
- }
- });
-
- JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
-
- JXT.extend(Content, JingleIBB);
- });
-
- JXT.withIQ(function (IQ) {
-
- JXT.add(IQ, 'ibb', IBB);
- });
-
- JXT.withMessage(function (Message) {
-
- JXT.add(Message, 'ibb', IBB);
- });
-};
-
-module.exports = exports['default'];
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":6,"xmpp-constants":212}],80:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var ICE = JXT.define({
- name: '_iceUdp',
- namespace: _xmppConstants.Namespace.JINGLE_ICE_UDP_1,
- element: 'transport',
- tags: ['jingle-transport'],
- fields: {
- transportType: { value: 'iceUdp' },
- pwd: Utils.attribute('pwd'),
- ufrag: Utils.attribute('ufrag')
- }
- });
-
- var RemoteCandidate = JXT.define({
- name: 'remoteCandidate',
- namespace: _xmppConstants.Namespace.JINGLE_ICE_UDP_1,
- element: 'remote-candidate',
- fields: {
- component: Utils.attribute('component'),
- ip: Utils.attribute('ip'),
- port: Utils.attribute('port')
- }
- });
-
- var Candidate = JXT.define({
- name: '_iceUdpCandidate',
- namespace: _xmppConstants.Namespace.JINGLE_ICE_UDP_1,
- element: 'candidate',
- fields: {
- component: Utils.attribute('component'),
- foundation: Utils.attribute('foundation'),
- generation: Utils.attribute('generation'),
- id: Utils.attribute('id'),
- ip: Utils.attribute('ip'),
- network: Utils.attribute('network'),
- port: Utils.attribute('port'),
- priority: Utils.attribute('priority'),
- protocol: Utils.attribute('protocol'),
- relAddr: Utils.attribute('rel-addr'),
- relPort: Utils.attribute('rel-port'),
- tcpType: Utils.attribute('tcptype'),
- type: Utils.attribute('type')
- }
- });
-
- var Fingerprint = JXT.define({
- name: '_iceFingerprint',
- namespace: _xmppConstants.Namespace.JINGLE_DTLS_0,
- element: 'fingerprint',
- fields: {
- hash: Utils.attribute('hash'),
- setup: Utils.attribute('setup'),
- value: Utils.text(),
- required: Utils.boolAttribute('required')
- }
- });
-
- var SctpMap = JXT.define({
- name: '_sctpMap',
- namespace: _xmppConstants.Namespace.DTLS_SCTP_1,
- element: 'sctpmap',
- fields: {
- number: Utils.attribute('number'),
- protocol: Utils.attribute('protocol'),
- streams: Utils.attribute('streams')
- }
- });
-
- JXT.extend(ICE, Candidate, 'candidates');
- JXT.extend(ICE, RemoteCandidate);
- JXT.extend(ICE, Fingerprint, 'fingerprints');
- JXT.extend(ICE, SctpMap, 'sctp');
-
- JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
-
- JXT.extend(Content, ICE);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],81:[function(require,module,exports){
-'use strict';
-
-var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _addresses = require('./addresses');
-
-var _addresses2 = _interopRequireDefault(_addresses);
-
-var _avatar = require('./avatar');
-
-var _avatar2 = _interopRequireDefault(_avatar);
-
-var _bind = require('./bind');
-
-var _bind2 = _interopRequireDefault(_bind);
-
-var _blocking = require('./blocking');
-
-var _blocking2 = _interopRequireDefault(_blocking);
-
-var _bob = require('./bob');
-
-var _bob2 = _interopRequireDefault(_bob);
-
-var _bookmarks = require('./bookmarks');
-
-var _bookmarks2 = _interopRequireDefault(_bookmarks);
-
-var _bosh = require('./bosh');
-
-var _bosh2 = _interopRequireDefault(_bosh);
-
-var _carbons = require('./carbons');
-
-var _carbons2 = _interopRequireDefault(_carbons);
-
-var _command = require('./command');
-
-var _command2 = _interopRequireDefault(_command);
-
-var _csi = require('./csi');
-
-var _csi2 = _interopRequireDefault(_csi);
-
-var _dataforms = require('./dataforms');
-
-var _dataforms2 = _interopRequireDefault(_dataforms);
-
-var _delayed = require('./delayed');
-
-var _delayed2 = _interopRequireDefault(_delayed);
-
-var _disco = require('./disco');
-
-var _disco2 = _interopRequireDefault(_disco);
-
-var _error = require('./error');
-
-var _error2 = _interopRequireDefault(_error);
-
-var _extdisco = require('./extdisco');
-
-var _extdisco2 = _interopRequireDefault(_extdisco);
-
-var _file = require('./file');
-
-var _file2 = _interopRequireDefault(_file);
-
-var _file3 = require('./file3');
-
-var _file32 = _interopRequireDefault(_file3);
-
-var _forwarded = require('./forwarded');
-
-var _forwarded2 = _interopRequireDefault(_forwarded);
-
-var _framing = require('./framing');
-
-var _framing2 = _interopRequireDefault(_framing);
-
-var _geoloc = require('./geoloc');
-
-var _geoloc2 = _interopRequireDefault(_geoloc);
-
-var _hash = require('./hash');
-
-var _hash2 = _interopRequireDefault(_hash);
-
-var _hats = require('./hats');
-
-var _hats2 = _interopRequireDefault(_hats);
-
-var _iceUdp = require('./iceUdp');
-
-var _iceUdp2 = _interopRequireDefault(_iceUdp);
-
-var _ibb = require('./ibb');
-
-var _ibb2 = _interopRequireDefault(_ibb);
-
-var _iq = require('./iq');
-
-var _iq2 = _interopRequireDefault(_iq);
-
-var _jidprep = require('./jidprep');
-
-var _jidprep2 = _interopRequireDefault(_jidprep);
-
-var _jingle = require('./jingle');
-
-var _jingle2 = _interopRequireDefault(_jingle);
-
-var _json = require('./json');
-
-var _json2 = _interopRequireDefault(_json);
-
-var _logging = require('./logging');
-
-var _logging2 = _interopRequireDefault(_logging);
-
-var _mam = require('./mam');
-
-var _mam2 = _interopRequireDefault(_mam);
-
-var _message = require('./message');
-
-var _message2 = _interopRequireDefault(_message);
-
-var _mood = require('./mood');
-
-var _mood2 = _interopRequireDefault(_mood);
-
-var _muc = require('./muc');
-
-var _muc2 = _interopRequireDefault(_muc);
-
-var _nick = require('./nick');
-
-var _nick2 = _interopRequireDefault(_nick);
-
-var _oob = require('./oob');
-
-var _oob2 = _interopRequireDefault(_oob);
-
-var _ping = require('./ping');
-
-var _ping2 = _interopRequireDefault(_ping);
-
-var _presence = require('./presence');
-
-var _presence2 = _interopRequireDefault(_presence);
-
-var _private = require('./private');
-
-var _private2 = _interopRequireDefault(_private);
-
-var _psa = require('./psa');
-
-var _psa2 = _interopRequireDefault(_psa);
-
-var _pubsub = require('./pubsub');
-
-var _pubsub2 = _interopRequireDefault(_pubsub);
-
-var _pubsubError = require('./pubsubError');
-
-var _pubsubError2 = _interopRequireDefault(_pubsubError);
-
-var _pubsubEvents = require('./pubsubEvents');
-
-var _pubsubEvents2 = _interopRequireDefault(_pubsubEvents);
-
-var _pubsubOwner = require('./pubsubOwner');
-
-var _pubsubOwner2 = _interopRequireDefault(_pubsubOwner);
-
-var _push = require('./push');
-
-var _push2 = _interopRequireDefault(_push);
-
-var _reach = require('./reach');
-
-var _reach2 = _interopRequireDefault(_reach);
-
-var _register = require('./register');
-
-var _register2 = _interopRequireDefault(_register);
-
-var _roster = require('./roster');
-
-var _roster2 = _interopRequireDefault(_roster);
-
-var _rsm = require('./rsm');
-
-var _rsm2 = _interopRequireDefault(_rsm);
-
-var _rtp = require('./rtp');
-
-var _rtp2 = _interopRequireDefault(_rtp);
-
-var _rtt = require('./rtt');
-
-var _rtt2 = _interopRequireDefault(_rtt);
-
-var _sasl = require('./sasl');
-
-var _sasl2 = _interopRequireDefault(_sasl);
-
-var _session = require('./session');
-
-var _session2 = _interopRequireDefault(_session);
-
-var _shim = require('./shim');
-
-var _shim2 = _interopRequireDefault(_shim);
-
-var _sm = require('./sm');
-
-var _sm2 = _interopRequireDefault(_sm);
-
-var _stream = require('./stream');
-
-var _stream2 = _interopRequireDefault(_stream);
-
-var _streamError = require('./streamError');
-
-var _streamError2 = _interopRequireDefault(_streamError);
-
-var _streamFeatures = require('./streamFeatures');
-
-var _streamFeatures2 = _interopRequireDefault(_streamFeatures);
-
-var _time = require('./time');
-
-var _time2 = _interopRequireDefault(_time);
-
-var _tune = require('./tune');
-
-var _tune2 = _interopRequireDefault(_tune);
-
-var _vcard = require('./vcard');
-
-var _vcard2 = _interopRequireDefault(_vcard);
-
-var _version = require('./version');
-
-var _version2 = _interopRequireDefault(_version);
-
-var _visibility = require('./visibility');
-
-var _visibility2 = _interopRequireDefault(_visibility);
-
-exports['default'] = function (JXT) {
-
- JXT.use(_addresses2['default']);
- JXT.use(_avatar2['default']);
- JXT.use(_bind2['default']);
- JXT.use(_blocking2['default']);
- JXT.use(_bob2['default']);
- JXT.use(_bookmarks2['default']);
- JXT.use(_bosh2['default']);
- JXT.use(_carbons2['default']);
- JXT.use(_command2['default']);
- JXT.use(_csi2['default']);
- JXT.use(_dataforms2['default']);
- JXT.use(_delayed2['default']);
- JXT.use(_disco2['default']);
- JXT.use(_error2['default']);
- JXT.use(_extdisco2['default']);
- JXT.use(_file2['default']);
- JXT.use(_file32['default']);
- JXT.use(_forwarded2['default']);
- JXT.use(_framing2['default']);
- JXT.use(_geoloc2['default']);
- JXT.use(_hash2['default']);
- JXT.use(_hats2['default']);
- JXT.use(_iceUdp2['default']);
- JXT.use(_ibb2['default']);
- JXT.use(_iq2['default']);
- JXT.use(_jidprep2['default']);
- JXT.use(_jingle2['default']);
- JXT.use(_json2['default']);
- JXT.use(_logging2['default']);
- JXT.use(_mam2['default']);
- JXT.use(_message2['default']);
- JXT.use(_mood2['default']);
- JXT.use(_muc2['default']);
- JXT.use(_nick2['default']);
- JXT.use(_oob2['default']);
- JXT.use(_ping2['default']);
- JXT.use(_presence2['default']);
- JXT.use(_private2['default']);
- JXT.use(_psa2['default']);
- JXT.use(_pubsub2['default']);
- JXT.use(_pubsubError2['default']);
- JXT.use(_pubsubEvents2['default']);
- JXT.use(_pubsubOwner2['default']);
- JXT.use(_push2['default']);
- JXT.use(_reach2['default']);
- JXT.use(_register2['default']);
- JXT.use(_roster2['default']);
- JXT.use(_rsm2['default']);
- JXT.use(_rtp2['default']);
- JXT.use(_rtt2['default']);
- JXT.use(_sasl2['default']);
- JXT.use(_session2['default']);
- JXT.use(_shim2['default']);
- JXT.use(_sm2['default']);
- JXT.use(_stream2['default']);
- JXT.use(_streamError2['default']);
- JXT.use(_streamFeatures2['default']);
- JXT.use(_time2['default']);
- JXT.use(_tune2['default']);
- JXT.use(_vcard2['default']);
- JXT.use(_version2['default']);
- JXT.use(_visibility2['default']);
-};
-
-module.exports = exports['default'];
-
-},{"./addresses":57,"./avatar":58,"./bind":59,"./blocking":60,"./bob":61,"./bookmarks":62,"./bosh":63,"./carbons":64,"./command":65,"./csi":66,"./dataforms":67,"./delayed":68,"./disco":69,"./error":70,"./extdisco":71,"./file":72,"./file3":73,"./forwarded":74,"./framing":75,"./geoloc":76,"./hash":77,"./hats":78,"./ibb":79,"./iceUdp":80,"./iq":82,"./jidprep":83,"./jingle":84,"./json":85,"./logging":86,"./mam":87,"./message":88,"./mood":89,"./muc":90,"./nick":91,"./oob":92,"./ping":93,"./presence":94,"./private":95,"./psa":96,"./pubsub":97,"./pubsubError":98,"./pubsubEvents":99,"./pubsubOwner":100,"./push":101,"./reach":102,"./register":103,"./roster":104,"./rsm":105,"./rtp":106,"./rtt":107,"./sasl":108,"./session":109,"./shim":110,"./sm":111,"./stream":112,"./streamError":113,"./streamFeatures":114,"./time":115,"./tune":116,"./vcard":117,"./version":118,"./visibility":119,"babel-runtime/helpers/interop-require-default":2}],82:[function(require,module,exports){
-'use strict';
-
-var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var internals = {};
-
-internals.defineIQ = function (JXT, name, namespace) {
-
- var Utils = JXT.utils;
-
- var IQ = JXT.define({
- name: name,
- namespace: namespace,
- element: 'iq',
- topLevel: true,
- fields: {
- lang: Utils.langAttribute(),
- id: Utils.attribute('id'),
- to: Utils.jidAttribute('to', true),
- from: Utils.jidAttribute('from', true),
- type: Utils.attribute('type')
- }
- });
-
- var _toJSON = IQ.prototype.toJSON;
-
- _Object$assign(IQ.prototype, {
- toJSON: function toJSON() {
-
- var result = _toJSON.call(this);
- result.resultReply = this.resultReply;
- result.errorReply = this.errorReply;
- return result;
- },
-
- resultReply: function resultReply(data) {
-
- data = data || {};
- data.to = this.from;
- data.id = this.id;
- data.type = 'result';
- return new IQ(data);
- },
-
- errorReply: function errorReply(data) {
-
- data = data || {};
- data.to = this.from;
- data.id = this.id;
- data.type = 'error';
- return new IQ(data);
- }
- });
-};
-
-exports['default'] = function (JXT) {
-
- internals.defineIQ(JXT, 'iq', _xmppConstants.Namespace.CLIENT);
- internals.defineIQ(JXT, 'serverIQ', _xmppConstants.Namespace.SERVER);
- internals.defineIQ(JXT, 'componentIQ', _xmppConstants.Namespace.COMPONENT);
-};
-
-module.exports = exports['default'];
-
-},{"babel-runtime/core-js/object/assign":1,"xmpp-constants":212}],83:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _xmppJid = require('xmpp-jid');
-
-exports['default'] = function (JXT) {
-
- JXT.withIQ(function (IQ) {
-
- JXT.add(IQ, 'jidPrep', {
- get: function get() {
-
- var data = JXT.utils.getSubText(this.xml, _xmppConstants.Namespace.JID_PREP_0, 'jid');
- if (data) {
- var jid = new _xmppJid.JID(data);
- jid.prepped = true;
- return jid;
- }
- },
- set: function set(value) {
-
- JXT.utils.setSubText(this.xml, _xmppConstants.Namespace.JID_PREP_0, 'jid', (value || '').toString());
- }
- });
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212,"xmpp-jid":218}],84:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['out-of-order', 'tie-break', 'unknown-session', 'unsupported-info'];
-var 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'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Jingle = JXT.define({
- name: 'jingle',
- namespace: _xmppConstants.Namespace.JINGLE_1,
- element: 'jingle',
- fields: {
- action: Utils.attribute('action'),
- initiator: Utils.attribute('initiator'),
- responder: Utils.attribute('responder'),
- sid: Utils.attribute('sid'),
- info: {
- get: function get() {
-
- var opts = JXT.tagged('jingle-info').map(function (Info) {
-
- return Info.prototype._name;
- });
- for (var i = 0, len = opts.length; i < len; i++) {
- if (this._extensions[opts[i]]) {
- return this._extensions[opts[i]];
- }
- }
- if (Utils.getAttribute(this.xml, 'action') === 'session-info') {
- if (this.xml.children.length === 0) {
- return {
- infoType: 'ping'
- };
- }
- return {
- infoType: 'unknown'
- };
- }
- },
- set: function set(value) {
-
- if (value.infoType === 'ping') {
- return;
- }
-
- var ext = '_' + value.infoType;
- this[ext] = value;
- }
- }
- }
- });
-
- var Content = JXT.define({
- name: '_jingleContent',
- namespace: _xmppConstants.Namespace.JINGLE_1,
- element: 'content',
- fields: {
- creator: Utils.attribute('creator'),
- disposition: Utils.attribute('disposition', 'session'),
- name: Utils.attribute('name'),
- senders: Utils.attribute('senders', 'both'),
- application: {
- get: function get() {
-
- var opts = JXT.tagged('jingle-application').map(function (Description) {
-
- return Description.prototype._name;
- });
- for (var i = 0, len = opts.length; i < len; i++) {
- if (this._extensions[opts[i]]) {
- return this._extensions[opts[i]];
- }
- }
- },
- set: function set(value) {
-
- var ext = '_' + value.applicationType;
- this[ext] = value;
- }
- },
- transport: {
- get: function get() {
-
- var opts = JXT.tagged('jingle-transport').map(function (Transport) {
-
- return Transport.prototype._name;
- });
- for (var i = 0, len = opts.length; i < len; i++) {
- if (this._extensions[opts[i]]) {
- return this._extensions[opts[i]];
- }
- }
- },
- set: function set(value) {
-
- var ext = '_' + value.transportType;
- this[ext] = value;
- }
- },
- security: {
- get: function get() {
-
- var opts = JXT.tagged('jingle-security').map(function (Info) {
-
- return Security.prototype._name;
- });
- for (var i = 0, len = opts.length; i < len; i++) {
- if (this._extensions[opts[i]]) {
- return this._extensions[opts[i]];
- }
- }
- },
- set: function set(value) {
-
- var ext = '_' + value.securityType;
- this[ext] = value;
- }
- }
- }
- });
-
- var Reason = JXT.define({
- name: 'reason',
- namespace: _xmppConstants.Namespace.JINGLE_1,
- element: 'reason',
- fields: {
- condition: Utils.enumSub(_xmppConstants.Namespace.JINGLE_1, REASONS),
- alternativeSession: {
- get: function get() {
-
- return Utils.getSubText(this.xml, _xmppConstants.Namespace.JINGLE_1, 'alternative-session');
- },
- set: function set(value) {
-
- this.condition = 'alternative-session';
- Utils.setSubText(this.xml, _xmppConstants.Namespace.JINGLE_1, 'alternative-session', value);
- }
- },
- text: Utils.textSub(_xmppConstants.Namespace.JINGLE_1, 'text')
- }
- });
-
- JXT.extend(Jingle, Content, 'contents');
- JXT.extend(Jingle, Reason);
-
- JXT.extendIQ(Jingle);
-
- JXT.withStanzaError(function (StanzaError) {
-
- JXT.add(StanzaError, 'jingleCondition', Utils.enumSub(_xmppConstants.Namespace.JINGLE_ERRORS_1, CONDITIONS));
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],85:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var JSONExtension = {
- get: function get() {
-
- var data = JXT.utils.getSubText(this.xml, _xmppConstants.Namespace.JSON_0, 'json');
- if (data) {
- return JSON.parse(data);
- }
- },
- set: function set(value) {
-
- value = JSON.stringify(value);
- if (value) {
- JXT.utils.setSubText(this.xml, _xmppConstants.Namespace.JSON_0, 'json', value);
- }
- }
- };
-
- JXT.withMessage(function (Message) {
-
- JXT.add(Message, 'json', JSONExtension);
- });
-
- JXT.withPubsubItem(function (Item) {
-
- JXT.add(Item, 'json', JSONExtension);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],86:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Log = JXT.define({
- name: 'log',
- namespace: _xmppConstants.Namespace.EVENTLOG,
- element: 'log',
- fields: {
- id: Utils.attribute('id'),
- timestamp: Utils.dateAttribute('timestamp'),
- type: Utils.attribute('type'),
- level: Utils.attribute('level'),
- object: Utils.attribute('object'),
- subject: Utils.attribute('subject'),
- facility: Utils.attribute('facility'),
- module: Utils.attribute('module'),
- message: Utils.textSub(_xmppConstants.Namespace.EVENTLOG, 'message'),
- stackTrace: Utils.textSub(_xmppConstants.Namespace.EVENTLOG, 'stackTrace')
- }
- });
-
- var Tag = JXT.define({
- name: '_logtag',
- namespace: _xmppConstants.Namespace.EVENTLOG,
- element: 'tag',
- fields: {
- name: Utils.attribute('name'),
- value: Utils.attribute('value'),
- type: Utils.attribute('type')
- }
- });
-
- JXT.extend(Log, Tag, 'tags');
-
- JXT.extendMessage(Log);
- JXT.extendPubsubItem(Log);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],87:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _xmppJid = require('xmpp-jid');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var MAMQuery = JXT.define({
- name: 'mam',
- namespace: _xmppConstants.Namespace.MAM_0,
- element: 'query',
- fields: {
- queryid: Utils.attribute('queryid')
- }
- });
-
- var Result = JXT.define({
- name: 'mamItem',
- namespace: _xmppConstants.Namespace.MAM_0,
- element: 'result',
- fields: {
- queryid: Utils.attribute('queryid'),
- id: Utils.attribute('id')
- }
- });
-
- var Fin = JXT.define({
- name: 'mamResult',
- namespace: _xmppConstants.Namespace.MAM_0,
- element: 'fin',
- fields: {
- queryid: Utils.attribute('queryid'),
- complete: Utils.boolAttribute('complete'),
- stable: Utils.boolAttribute('stable')
- }
- });
-
- var Prefs = JXT.define({
- name: 'mamPrefs',
- namespace: _xmppConstants.Namespace.MAM_0,
- element: 'prefs',
- fields: {
- defaultCondition: Utils.attribute('default'),
- always: {
- get: function get() {
-
- var results = [];
- var container = Utils.find(this.xml, _xmppConstants.Namespace.MAM_0, 'always');
- if (container.length === 0) {
- return results;
- }
- container = container[0];
- var jids = Utils.getMultiSubText(container, _xmppConstants.Namespace.MAM_0, 'jid');
- jids.forEach(function (jid) {
-
- results.push(new _xmppJid.JID(jid.textContent));
- });
- return results;
- },
- set: function set(value) {
-
- if (value.length > 0) {
- var container = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.MAM_0, 'always');
- Utils.setMultiSubText(container, _xmppConstants.Namespace.MAM_0, 'jid', value);
- }
- }
- },
- never: {
- get: function get() {
-
- var results = [];
- var container = Utils.find(this.xml, _xmppConstants.Namespace.MAM_0, 'always');
- if (container.length === 0) {
- return results;
- }
- container = container[0];
- var jids = Utils.getMultiSubText(container, _xmppConstants.Namespace.MAM_0, 'jid');
- jids.forEach(function (jid) {
-
- results.push(new _xmppJid.JID(jid.textContent));
- });
- return results;
- },
- set: function set(value) {
-
- if (value.length > 0) {
- var container = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.MAM_0, 'never');
- Utils.setMultiSubText(container, _xmppConstants.Namespace.MAM_0, 'jid', value);
- }
- }
- }
- }
- });
-
- JXT.extendMessage(Result);
- JXT.extendMessage(Fin);
-
- JXT.extendIQ(MAMQuery);
- JXT.extendIQ(Prefs);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(MAMQuery, DataForm);
- });
-
- JXT.withDefinition('forwarded', _xmppConstants.Namespace.FORWARD_0, function (Forwarded) {
-
- JXT.extend(Result, Forwarded);
- });
-
- JXT.withDefinition('set', _xmppConstants.Namespace.RSM, function (RSM) {
-
- JXT.extend(MAMQuery, RSM);
- JXT.extend(Fin, RSM);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212,"xmpp-jid":218}],88:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var internals = {};
-
-internals.defineMessage = function (JXT, name, namespace) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: name,
- namespace: namespace,
- element: 'message',
- topLevel: true,
- fields: {
- lang: Utils.langAttribute(),
- id: Utils.attribute('id'),
- to: Utils.jidAttribute('to', true),
- from: Utils.jidAttribute('from', true),
- type: Utils.attribute('type', 'normal'),
- thread: Utils.textSub(namespace, 'thread'),
- parentThread: Utils.subAttribute(namespace, 'thread', 'parent'),
- subject: Utils.textSub(namespace, 'subject'),
- $body: {
- get: function getBody$() {
-
- return Utils.getSubLangText(this.xml, namespace, 'body', this.lang);
- }
- },
- body: {
- get: function getBody() {
-
- var bodies = this.$body;
- return bodies[this.lang] || '';
- },
- set: function setBody(value) {
-
- Utils.setSubLangText(this.xml, namespace, 'body', value, this.lang);
- }
- },
- attention: Utils.boolSub(_xmppConstants.Namespace.ATTENTION_0, 'attention'),
- chatState: Utils.enumSub(_xmppConstants.Namespace.CHAT_STATES, ['active', 'composing', 'paused', 'inactive', 'gone']),
- replace: Utils.subAttribute(_xmppConstants.Namespace.CORRECTION_0, 'replace', 'id'),
- requestReceipt: Utils.boolSub(_xmppConstants.Namespace.RECEIPTS, 'request'),
- receipt: Utils.subAttribute(_xmppConstants.Namespace.RECEIPTS, 'received', 'id')
- }
- });
-};
-
-exports['default'] = function (JXT) {
-
- internals.defineMessage(JXT, 'message', _xmppConstants.Namespace.CLIENT);
- internals.defineMessage(JXT, 'serverMessage', _xmppConstants.Namespace.SERVER);
- internals.defineMessage(JXT, 'componentMessage', _xmppConstants.Namespace.COMPONENT);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],89:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var MOODS = ['afraid', 'amazed', 'amorous', 'angry', 'annoyed', 'anxious', 'aroused', 'ashamed', 'bored', 'brave', 'calm', 'cautious', 'cold', 'confident', 'confused', 'contemplative', 'contented', 'cranky', 'crazy', 'creative', 'curious', 'dejected', 'depressed', 'disappointed', 'disgusted', 'dismayed', 'distracted', 'embarrassed', 'envious', 'excited', 'flirtatious', 'frustrated', 'grateful', 'grieving', 'grumpy', 'guilty', 'happy', 'hopeful', 'hot', 'humbled', 'humiliated', 'hungry', 'hurt', 'impressed', 'in_awe', 'in_love', 'indignant', 'interested', 'intoxicated', 'invincible', 'jealous', 'lonely', 'lucky', 'mean', 'moody', 'nervous', 'neutral', 'offended', 'outraged', 'playful', 'proud', 'relaxed', 'relieved', 'remorseful', 'restless', 'sad', 'sarcastic', 'serious', 'shocked', 'shy', 'sick', 'sleepy', 'spontaneous', 'stressed', 'strong', 'surprised', 'thankful', 'thirsty', 'tired', 'undefined', 'weak', 'worried'];
-
-exports['default'] = function (JXT) {
-
- var Mood = JXT.define({
- name: 'mood',
- namespace: _xmppConstants.Namespace.MOOD,
- element: 'mood',
- fields: {
- text: JXT.utils.textSub(_xmppConstants.Namespace.MOOD, 'text'),
- value: JXT.utils.enumSub(_xmppConstants.Namespace.MOOD, MOODS)
- }
- });
-
- JXT.extendMessage(Mood);
- JXT.extendPubsubItem(Mood);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],90:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-function proxy(child, field) {
-
- return {
- get: function get() {
-
- if (this._extensions[child]) {
- return this[child][field];
- }
- },
- set: function set(value) {
-
- this[child][field] = value;
- }
- };
-}
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var UserItem = JXT.define({
- name: '_mucUserItem',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'item',
- fields: {
- affiliation: Utils.attribute('affiliation'),
- nick: Utils.attribute('nick'),
- jid: Utils.jidAttribute('jid'),
- role: Utils.attribute('role'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_USER, 'reason')
- }
- });
-
- var UserActor = JXT.define({
- name: '_mucUserActor',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'actor',
- fields: {
- nick: Utils.attribute('nick'),
- jid: Utils.jidAttribute('jid')
- }
- });
-
- var Destroyed = JXT.define({
- name: 'destroyed',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'destroy',
- fields: {
- jid: Utils.jidAttribute('jid'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_USER, 'reason')
- }
- });
-
- var Invite = JXT.define({
- name: 'invite',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'invite',
- fields: {
- to: Utils.jidAttribute('to'),
- from: Utils.jidAttribute('from'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_USER, 'reason'),
- thread: Utils.subAttribute(_xmppConstants.Namespace.MUC_USER, 'continue', 'thread'),
- 'continue': Utils.boolSub(_xmppConstants.Namespace.MUC_USER, 'continue')
- }
- });
-
- var Decline = JXT.define({
- name: 'decline',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'decline',
- fields: {
- to: Utils.jidAttribute('to'),
- from: Utils.jidAttribute('from'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_USER, 'reason')
- }
- });
-
- var AdminItem = JXT.define({
- name: '_mucAdminItem',
- namespace: _xmppConstants.Namespace.MUC_ADMIN,
- element: 'item',
- fields: {
- affiliation: Utils.attribute('affiliation'),
- nick: Utils.attribute('nick'),
- jid: Utils.jidAttribute('jid'),
- role: Utils.attribute('role'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_ADMIN, 'reason')
- }
- });
-
- var AdminActor = JXT.define({
- name: 'actor',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'actor',
- fields: {
- nick: Utils.attribute('nick'),
- jid: Utils.jidAttribute('jid')
- }
- });
-
- var Destroy = JXT.define({
- name: 'destroy',
- namespace: _xmppConstants.Namespace.MUC_OWNER,
- element: 'destroy',
- fields: {
- jid: Utils.jidAttribute('jid'),
- password: Utils.textSub(_xmppConstants.Namespace.MUC_OWNER, 'password'),
- reason: Utils.textSub(_xmppConstants.Namespace.MUC_OWNER, 'reason')
- }
- });
-
- var MUC = JXT.define({
- name: 'muc',
- namespace: _xmppConstants.Namespace.MUC_USER,
- element: 'x',
- fields: {
- affiliation: proxy('_mucUserItem', 'affiliation'),
- nick: proxy('_mucUserItem', 'nick'),
- jid: proxy('_mucUserItem', 'jid'),
- role: proxy('_mucUserItem', 'role'),
- actor: proxy('_mucUserItem', '_mucUserActor'),
- reason: proxy('_mucUserItem', 'reason'),
- password: Utils.textSub(_xmppConstants.Namespace.MUC_USER, 'password'),
- codes: {
- get: function get() {
-
- return Utils.getMultiSubText(this.xml, _xmppConstants.Namespace.MUC_USER, 'status', function (sub) {
-
- return Utils.getAttribute(sub, 'code');
- });
- },
- set: function set(value) {
-
- var self = this;
- Utils.setMultiSubText(this.xml, _xmppConstants.Namespace.MUC_USER, 'status', value, function (val) {
-
- var child = Utils.createElement(_xmppConstants.Namespace.MUC_USER, 'status', _xmppConstants.Namespace.MUC_USER);
- Utils.setAttribute(child, 'code', val);
- self.xml.appendChild(child);
- });
- }
- }
- }
- });
-
- var MUCAdmin = JXT.define({
- name: 'mucAdmin',
- namespace: _xmppConstants.Namespace.MUC_ADMIN,
- element: 'query',
- fields: {
- affiliation: proxy('_mucAdminItem', 'affiliation'),
- nick: proxy('_mucAdminItem', 'nick'),
- jid: proxy('_mucAdminItem', 'jid'),
- role: proxy('_mucAdminItem', 'role'),
- actor: proxy('_mucAdminItem', '_mucAdminActor'),
- reason: proxy('_mucAdminItem', 'reason')
- }
- });
-
- var MUCOwner = JXT.define({
- name: 'mucOwner',
- namespace: _xmppConstants.Namespace.MUC_OWNER,
- element: 'query'
- });
-
- var MUCJoin = JXT.define({
- name: 'joinMuc',
- namespace: _xmppConstants.Namespace.MUC,
- element: 'x',
- fields: {
- password: Utils.textSub(_xmppConstants.Namespace.MUC, 'password'),
- history: {
- get: function get() {
-
- var result = {};
- var hist = Utils.find(this.xml, _xmppConstants.Namespace.MUC, 'history');
-
- if (!hist.length) {
- return {};
- }
- hist = hist[0];
-
- var maxchars = hist.getAttribute('maxchars') || '';
- var maxstanzas = hist.getAttribute('maxstanzas') || '';
- var seconds = hist.getAttribute('seconds') || '';
- var since = hist.getAttribute('since') || '';
-
- if (maxchars) {
- result.maxchars = parseInt(maxchars, 10);
- }
- if (maxstanzas) {
- result.maxstanzas = parseInt(maxstanzas, 10);
- }
- if (seconds) {
- result.seconds = parseInt(seconds, 10);
- }
- if (since) {
- result.since = new Date(since);
- }
- },
- set: function set(opts) {
-
- var existing = Utils.find(this.xml, _xmppConstants.Namespace.MUC, 'history');
- if (existing.length) {
- for (var i = 0; i < existing.length; i++) {
- this.xml.removeChild(existing[i]);
- }
- }
-
- var hist = Utils.createElement(_xmppConstants.Namespace.MUC, 'history', _xmppConstants.Namespace.MUC);
- this.xml.appendChild(hist);
-
- if (opts.maxchars) {
- hist.setAttribute('maxchars', '' + opts.maxchars);
- }
- if (opts.maxstanzas) {
- hist.setAttribute('maxstanzas', '' + opts.maxstanzas);
- }
- if (opts.seconds) {
- hist.setAttribute('seconds', '' + opts.seconds);
- }
- if (opts.since) {
- hist.setAttribute('since', opts.since.toISOString());
- }
- }
- }
- }
- });
-
- var DirectInvite = JXT.define({
- name: 'mucInvite',
- namespace: _xmppConstants.Namespace.MUC_DIRECT_INVITE,
- element: 'x',
- fields: {
- jid: Utils.jidAttribute('jid'),
- password: Utils.attribute('password'),
- reason: Utils.attribute('reason'),
- thread: Utils.attribute('thread'),
- 'continue': Utils.boolAttribute('continue')
- }
- });
-
- JXT.extend(UserItem, UserActor);
- JXT.extend(MUC, UserItem);
- JXT.extend(MUC, Invite, 'invites');
- JXT.extend(MUC, Decline);
- JXT.extend(MUC, Destroyed);
- JXT.extend(AdminItem, AdminActor);
- JXT.extend(MUCAdmin, AdminItem, 'items');
- JXT.extend(MUCOwner, Destroy);
-
- JXT.extendPresence(MUC);
- JXT.extendPresence(MUCJoin);
-
- JXT.extendMessage(MUC);
- JXT.extendMessage(DirectInvite);
-
- JXT.withIQ(function (IQ) {
-
- JXT.add(IQ, 'mucUnique', Utils.textSub(_xmppConstants.Namespace.MUC_UNIQUE, 'unique'));
- JXT.extend(IQ, MUCAdmin);
- JXT.extend(IQ, MUCOwner);
- });
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(MUCOwner, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],91:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var nick = JXT.utils.textSub(_xmppConstants.Namespace.NICK, 'nick');
-
- JXT.withPubsubItem(function (Item) {
-
- JXT.add(Item, 'nick', nick);
- });
-
- JXT.withPresence(function (Presence) {
-
- JXT.add(Presence, 'nick', nick);
- });
-
- JXT.withMessage(function (Message) {
-
- JXT.add(Message, 'nick', nick);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],92:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var OOB = JXT.define({
- name: 'oob',
- element: 'x',
- namespace: _xmppConstants.Namespace.OOB,
- fields: {
- url: JXT.utils.textSub(_xmppConstants.Namespace.OOB, 'url'),
- desc: JXT.utils.textSub(_xmppConstants.Namespace.OOB, 'desc')
- }
- });
-
- JXT.extendMessage(OOB, 'oobURIs');
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],93:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Ping = JXT.define({
- name: 'ping',
- namespace: _xmppConstants.Namespace.PING,
- element: 'ping'
- });
-
- JXT.extendIQ(Ping);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],94:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var internals = {};
-
-internals.definePresence = function (JXT, name, namespace) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: name,
- namespace: namespace,
- element: 'presence',
- topLevel: true,
- fields: {
- lang: Utils.langAttribute(),
- id: Utils.attribute('id'),
- to: Utils.jidAttribute('to', true),
- from: Utils.jidAttribute('from', true),
- priority: Utils.numberSub(namespace, 'priority', false, 0),
- show: Utils.textSub(namespace, 'show'),
- type: {
- get: function get() {
-
- return Utils.getAttribute(this.xml, 'type', 'available');
- },
- set: function set(value) {
-
- if (value === 'available') {
- value = false;
- }
- Utils.setAttribute(this.xml, 'type', value);
- }
- },
- $status: {
- get: function get() {
-
- return Utils.getSubLangText(this.xml, namespace, 'status', this.lang);
- }
- },
- status: {
- get: function get() {
-
- var statuses = this.$status;
- return statuses[this.lang] || '';
- },
- set: function set(value) {
-
- Utils.setSubLangText(this.xml, namespace, 'status', value, this.lang);
- }
- },
- idleSince: Utils.dateSubAttribute(_xmppConstants.Namespace.IDLE_1, 'idle', 'since'),
- decloak: Utils.subAttribute(_xmppConstants.Namespace.DECLOAK_0, 'decloak', 'reason'),
- avatarId: {
- get: function get() {
-
- var update = Utils.find(this.xml, _xmppConstants.Namespace.VCARD_TEMP_UPDATE, 'x');
- if (!update.length) {
- return '';
- }
- return Utils.getSubText(update[0], _xmppConstants.Namespace.VCARD_TEMP_UPDATE, 'photo');
- },
- set: function set(value) {
-
- var update = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.VCARD_TEMP_UPDATE, 'x');
-
- if (value === '') {
- Utils.setBoolSub(update, _xmppConstants.Namespace.VCARD_TEMP_UPDATE, 'photo', true);
- } else if (value === true) {
- return;
- } else if (value) {
- Utils.setSubText(update, _xmppConstants.Namespace.VCARD_TEMP_UPDATE, 'photo', value);
- } else {
- this.xml.removeChild(update);
- }
- }
- }
- }
- });
-};
-
-exports['default'] = function (JXT) {
-
- internals.definePresence(JXT, 'presence', _xmppConstants.Namespace.CLIENT);
- internals.definePresence(JXT, 'serverPresence', _xmppConstants.Namespace.SERVER);
- internals.definePresence(JXT, 'componentPresence', _xmppConstants.Namespace.COMPONENT);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],95:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var PrivateStorage = JXT.define({
- name: 'privateStorage',
- namespace: _xmppConstants.Namespace.PRIVATE,
- element: 'query'
- });
-
- JXT.extendIQ(PrivateStorage);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],96:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['server-unavailable', 'connection-paused'];
-
-exports['default'] = function (JXT) {
-
- var PSA = JXT.define({
- name: 'state',
- namespace: _xmppConstants.Namespace.PSA,
- element: 'state-annotation',
- fields: {
- from: JXT.utils.jidAttribute('from'),
- condition: JXT.utils.enumSub(_xmppConstants.Namespace.PSA, CONDITIONS),
- description: JXT.utils.textSub(_xmppConstants.Namespace.PSA, 'description')
- }
- });
-
- JXT.extendPresence(PSA);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],97:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Pubsub = JXT.define({
- name: 'pubsub',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'pubsub',
- fields: {
- create: {
- get: function get() {
- var node = Utils.getSubAttribute(this.xml, _xmppConstants.Namespace.PUBSUB, 'create', 'node');
- if (node) {
- return node;
- }
- return Utils.getBoolSub(this.xml, _xmppConstants.Namespace.PUBSUB, 'create');
- },
- set: function set(value) {
- if (value === true || !value) {
- Utils.setBoolSub(this.xml, _xmppConstants.Namespace.PUBSUB, 'create', value);
- } else {
- Utils.setSubAttribute(this.xml, _xmppConstants.Namespace.PUBSUB, 'create', 'node', value);
- }
- }
- },
- publishOptions: {
- get: function get() {
-
- var DataForm = JXT.getDefinition('x', _xmppConstants.Namespace.DATAFORM);
- var conf = Utils.find(this.xml, _xmppConstants.Namespace.PUBSUB, 'publish-options');
- if (conf.length && conf[0].childNodes.length) {
- return new DataForm({}, conf[0].childNodes[0]);
- }
- },
- set: function set(value) {
-
- var DataForm = JXT.getDefinition('x', _xmppConstants.Namespace.DATAFORM);
- var conf = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.PUBSUB, 'publish-options');
- if (value) {
- var form = new DataForm(value);
- conf.appendChild(form.xml);
- }
- }
- }
- }
- });
-
- var Configure = JXT.define({
- name: 'config',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'configure'
- });
-
- var Subscribe = JXT.define({
- name: 'subscribe',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'subscribe',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid')
- }
- });
-
- var Subscription = JXT.define({
- name: 'subscription',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'subscription',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid'),
- subid: Utils.attribute('subid'),
- type: Utils.attribute('subscription'),
- configurable: Utils.boolSub('subscribe-options'),
- configurationRequired: {
- get: function get() {
-
- var options = Utils.find(this.xml, _xmppConstants.Namespace.PUBSUB, 'subscribe-options');
- if (options.length) {
- return Utils.getBoolSub(options[0], _xmppConstants.Namespace.PUBSUB, 'required');
- }
- return false;
- }
- }
- }
- });
-
- var Subscriptions = JXT.define({
- name: 'subscriptions',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'subscriptions',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid')
- }
- });
-
- var Affiliation = JXT.define({
- name: 'affiliation',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'affiliation',
- fields: {
- node: Utils.attribute('node'),
- type: Utils.attribute('affiliation')
- }
- });
-
- var Affiliations = JXT.define({
- name: 'affiliations',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'affiliations',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var SubscriptionOptions = JXT.define({
- name: 'subscriptionOptions',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'options',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid'),
- subid: Utils.attribute('subid')
- }
- });
-
- var Unsubscribe = JXT.define({
- name: 'unsubscribe',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'unsubscribe',
- fields: {
- node: Utils.attribute('node'),
- subid: Utils.attribute('subid'),
- jid: Utils.jidAttribute('jid')
- }
- });
-
- var Publish = JXT.define({
- name: 'publish',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'publish',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var Retract = JXT.define({
- name: 'retract',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'retract',
- fields: {
- node: Utils.attribute('node'),
- notify: Utils.boolAttribute('notify'),
- id: Utils.subAttribute(_xmppConstants.Namespace.PUBSUB, 'item', 'id')
- }
- });
-
- var Retrieve = JXT.define({
- name: 'retrieve',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'items',
- fields: {
- node: Utils.attribute('node'),
- max: Utils.attribute('max_items')
- }
- });
-
- var Item = JXT.define({
- name: 'item',
- namespace: _xmppConstants.Namespace.PUBSUB,
- element: 'item',
- fields: {
- id: Utils.attribute('id')
- }
- });
-
- JXT.extend(Pubsub, Configure);
- JXT.extend(Pubsub, Subscribe);
- JXT.extend(Pubsub, Unsubscribe);
- JXT.extend(Pubsub, Publish);
- JXT.extend(Pubsub, Retract);
- JXT.extend(Pubsub, Retrieve);
- JXT.extend(Pubsub, Subscription);
- JXT.extend(Pubsub, SubscriptionOptions);
- JXT.extend(Pubsub, Subscriptions);
- JXT.extend(Pubsub, Affiliations);
-
- JXT.extend(Publish, Item, 'items');
- JXT.extend(Retrieve, Item, 'items');
-
- JXT.extend(Subscriptions, Subscription, 'list');
- JXT.extend(Affiliations, Affiliation, 'list');
-
- JXT.extendIQ(Pubsub);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(SubscriptionOptions, DataForm);
- JXT.extend(Item, DataForm);
- JXT.extend(Configure, DataForm);
- });
-
- JXT.withDefinition('set', _xmppConstants.Namespace.RSM, function (RSM) {
-
- JXT.extend(Pubsub, RSM);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],98:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['closed-node', 'configuration-required', 'invalid-jid', 'invalid-options', 'invalid-payload', 'invalid-subid', 'item-forbidden', 'item-required', 'jid-required', 'max-items-exceeded', 'max-nodes-exceeded', 'nodeid-required', 'not-in-roster-group', 'not-subscribed', 'payload-too-big', 'payload-required', 'pending-subscription', 'presence-subscription-required', 'subid-required', 'too-many-subscriptions', 'unsupported', 'unsupported-access-model'];
-
-exports['default'] = function (JXT) {
-
- JXT.withStanzaError(function (StanzaError) {
-
- JXT.add(StanzaError, 'pubsubCondition', JXT.utils.enumSub(_xmppConstants.Namespace.PUBSUB_ERRORS, CONDITIONS));
- JXT.add(StanzaError, 'pubsubUnsupportedFeature', {
- get: function get() {
- return JXT.utils.getSubAttribute(this.xml, _xmppConstants.Namespace.PUBSUB_ERRORS, 'unsupported', 'feature');
- },
- set: function set(value) {
- if (value) {
- this.pubsubCondition = 'unsupported';
- }
- JXT.utils.setSubAttribute(this.xml, _xmppConstants.Namespace.PUBSUB_ERRORS, 'unsupported', 'feature', value);
- }
- });
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],99:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Event = JXT.define({
- name: 'event',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'event'
- });
-
- var EventPurge = JXT.define({
- name: 'purged',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'purge',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var EventDelete = JXT.define({
- name: 'deleted',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'delete',
- fields: {
- node: Utils.attribute('node'),
- redirect: Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_EVENT, 'redirect', 'uri')
- }
- });
-
- var EventSubscription = JXT.define({
- name: 'subscriptionChanged',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'subscription',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid'),
- type: Utils.attribute('subscription'),
- subid: Utils.attribute('subid'),
- expiry: {
- get: function get() {
-
- var text = Utils.getAttribute(this.xml, 'expiry');
- if (text === 'presence') {
- return text;
- } else if (text) {
- return new Date(text);
- }
- },
- set: function set(value) {
-
- if (!value) {
- return;
- }
-
- if (typeof value !== 'string') {
- value = value.toISOString();
- }
-
- Utils.setAttribute(this.xml, 'expiry', value);
- }
- }
- }
- });
-
- var EventConfiguration = JXT.define({
- name: 'configurationChanged',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'configuration',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var EventItems = JXT.define({
- name: 'updated',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'items',
- fields: {
- node: Utils.attribute('node'),
- retracted: {
- get: function get() {
-
- var results = [];
- var retracted = Utils.find(this.xml, _xmppConstants.Namespace.PUBSUB_EVENT, 'retract');
-
- retracted.forEach(function (xml) {
-
- results.push(xml.getAttribute('id'));
- });
- return results;
- },
- set: function set(value) {
-
- var self = this;
- value.forEach(function (id) {
-
- var retracted = Utils.createElement(_xmppConstants.Namespace.PUBSUB_EVENT, 'retract', _xmppConstants.Namespace.PUBSUB_EVENT);
- retracted.setAttribute('id', id);
- this.xml.appendChild(retracted);
- });
- }
- }
- }
- });
-
- var EventItem = JXT.define({
- name: '_eventItem',
- namespace: _xmppConstants.Namespace.PUBSUB_EVENT,
- element: 'item',
- fields: {
- id: Utils.attribute('id'),
- node: Utils.attribute('node'),
- publisher: Utils.jidAttribute('publisher')
- }
- });
-
- JXT.extend(EventItems, EventItem, 'published');
-
- JXT.extend(Event, EventItems);
- JXT.extend(Event, EventSubscription);
- JXT.extend(Event, EventConfiguration);
- JXT.extend(Event, EventDelete);
- JXT.extend(Event, EventPurge);
-
- JXT.extendMessage(Event);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(EventConfiguration, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],100:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var PubsubOwner = JXT.define({
- name: 'pubsubOwner',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'pubsub',
- fields: {
- purge: Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER, 'purge', 'node'),
- del: Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER, 'delete', 'node'),
- redirect: {
- get: function get() {
-
- var del = Utils.find(this.xml, _xmppConstants.Namespace.PUBSUB_OWNER, 'delete');
- if (del.length) {
- return Utils.getSubAttribute(del[0], _xmppConstants.Namespace.PUBSUB_OWNER, 'redirect', 'uri');
- }
- return '';
- },
- set: function set(value) {
-
- var del = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.PUBSUB_OWNER, 'delete');
- Utils.setSubAttribute(del, _xmppConstants.Namespace.PUBSUB_OWNER, 'redirect', 'uri', value);
- }
- }
- }
- });
-
- var Subscription = JXT.define({
- name: 'subscription',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'subscription',
- fields: {
- node: Utils.attribute('node'),
- jid: Utils.jidAttribute('jid'),
- subid: Utils.attribute('subid'),
- type: Utils.attribute('subscription'),
- configurable: Utils.boolSub('subscribe-options'),
- configurationRequired: {
- get: function get() {
-
- var options = Utils.find(this.xml, _xmppConstants.Namespace.PUBSUB_OWNER, 'subscribe-options');
- if (options.length) {
- return Utils.getBoolSub(options[0], _xmppConstants.Namespace.PUBSUB_OWNER, 'required');
- }
- return false;
- }
- }
- }
- });
-
- var Subscriptions = JXT.define({
- name: 'subscriptions',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'subscriptions',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var Affiliation = JXT.define({
- name: 'affiliation',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'affiliation',
- fields: {
- jid: Utils.jidAttribute('jid'),
- type: Utils.attribute('affiliation')
- }
- });
-
- var Affiliations = JXT.define({
- name: 'affiliations',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'affiliations',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- var Configure = JXT.define({
- name: 'config',
- namespace: _xmppConstants.Namespace.PUBSUB_OWNER,
- element: 'configure',
- fields: {
- node: Utils.attribute('node')
- }
- });
-
- JXT.extend(PubsubOwner, Configure);
- JXT.extend(PubsubOwner, Subscriptions);
- JXT.extend(PubsubOwner, Affiliations);
-
- JXT.extend(Subscriptions, Subscription, 'list');
- JXT.extend(Affiliations, Affiliation, 'list');
-
- JXT.extendIQ(PubsubOwner);
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(Configure, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],101:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Enable = JXT.define({
- name: 'enablePush',
- element: 'enable',
- namespace: _xmppConstants.Namespace.PUSH_0,
- fields: {
- jid: Utils.jidAttribute('jid'),
- node: Utils.attribute('node')
- }
- });
-
- var Disable = JXT.define({
- name: 'disablePush',
- element: 'disable',
- namespace: _xmppConstants.Namespace.PUSH_0,
- fields: {
- jid: Utils.jidAttribute('jid'),
- node: Utils.attribute('node')
- }
- });
-
- var Notification = JXT.define({
- name: 'pushNotification',
- element: 'notification',
- namespace: _xmppConstants.Namespace.PUSH_0
- });
-
- JXT.withDataForm(function (DataForm) {
- JXT.extend(Notification, DataForm);
- JXT.extend(Enable, DataForm);
- });
-
- JXT.extendIQ(Enable);
- JXT.extendIQ(Disable);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],102:[function(require,module,exports){
-'use strict';
-
-var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var _lodashForeach = require('lodash.foreach');
-
-var _lodashForeach2 = _interopRequireDefault(_lodashForeach);
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var ReachURI = JXT.define({
- name: '_reachAddr',
- namespace: _xmppConstants.Namespace.REACH_0,
- element: 'addr',
- fields: {
- uri: Utils.attribute('uri'),
- $desc: {
- get: function get() {
-
- return Utils.getSubLangText(this.xml, _xmppConstants.Namespace.REACH_0, 'desc', this.lang);
- }
- },
- desc: {
- get: function get() {
-
- var descs = this.$desc;
- return descs[this.lang] || '';
- },
- set: function set(value) {
-
- Utils.setSubLangText(this.xml, _xmppConstants.Namespace.REACH_0, 'desc', value, this.lang);
- }
- }
- }
- });
-
- var reachability = {
- get: function get() {
-
- var reach = Utils.find(this.xml, _xmppConstants.Namespace.REACH_0, 'reach');
- var results = [];
- if (reach.length) {
- var addrs = Utils.find(reach[0], _xmppConstants.Namespace.REACH_0, 'addr');
- (0, _lodashForeach2['default'])(addrs, function (addr) {
-
- results.push(new ReachURI({}, addr));
- });
- }
- return results;
- },
- set: function set(value) {
-
- var reach = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.REACH_0, 'reach');
- Utils.setAttribute(reach, 'xmlns', _xmppConstants.Namespace.REACH_0);
- (0, _lodashForeach2['default'])(value, function (info) {
-
- var addr = new ReachURI(info);
- reach.appendChild(addr.xml);
- });
- }
- };
-
- JXT.withPubsubItem(function (Item) {
-
- JXT.add(Item, 'reach', reachability);
- });
-
- JXT.withPresence(function (Presence) {
-
- JXT.add(Presence, 'reach', reachability);
- });
-};
-
-module.exports = exports['default'];
-
-},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],103:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Register = JXT.define({
- name: 'register',
- namespace: _xmppConstants.Namespace.REGISTER,
- element: 'query',
- fields: {
- instructions: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'instructions'),
- registered: Utils.boolSub(_xmppConstants.Namespace.REGISTER, 'registered'),
- remove: Utils.boolSub(_xmppConstants.Namespace.REGISTER, 'remove'),
- username: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'username'),
- nick: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'nick'),
- password: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'password'),
- name: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'name'),
- first: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'first'),
- last: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'last'),
- email: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'email'),
- address: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'address'),
- city: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'city'),
- state: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'state'),
- zip: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'zip'),
- phone: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'phone'),
- url: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'url'),
- date: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'date'),
- misc: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'misc'),
- text: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'text'),
- key: Utils.textSub(_xmppConstants.Namespace.REGISTER, 'key')
- }
- });
-
- JXT.extendIQ(Register);
-
- JXT.withDefinition('x', _xmppConstants.Namespace.OOB, function (OOB) {
-
- JXT.extend(Register, OOB);
- });
-
- JXT.withDataForm(function (DataForm) {
-
- JXT.extend(Register, DataForm);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],104:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Roster = JXT.define({
- name: 'roster',
- namespace: _xmppConstants.Namespace.ROSTER,
- element: 'query',
- fields: {
- ver: {
- get: function get() {
-
- return Utils.getAttribute(this.xml, 'ver');
- },
- set: function set(value) {
-
- var force = value === '';
- Utils.setAttribute(this.xml, 'ver', value, force);
- }
- }
- }
- });
-
- var RosterItem = JXT.define({
- name: '_rosterItem',
- namespace: _xmppConstants.Namespace.ROSTER,
- element: 'item',
- fields: {
- jid: Utils.jidAttribute('jid', true),
- name: Utils.attribute('name'),
- subscription: Utils.attribute('subscription', 'none'),
- subscriptionRequested: {
- get: function get() {
-
- var ask = Utils.getAttribute(this.xml, 'ask');
- return ask === 'subscribe';
- }
- },
- preApproved: Utils.boolAttribute(_xmppConstants.Namespace.ROSTER, 'approved'),
- groups: Utils.multiTextSub(_xmppConstants.Namespace.ROSTER, 'group')
- }
- });
-
- JXT.extend(Roster, RosterItem, 'items');
-
- JXT.extendIQ(Roster);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],105:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: 'rsm',
- namespace: _xmppConstants.Namespace.RSM,
- element: 'set',
- fields: {
- after: Utils.textSub(_xmppConstants.Namespace.RSM, 'after'),
- before: {
- get: function get() {
-
- return Utils.getSubText(this.xml, _xmppConstants.Namespace.RSM, 'before');
- },
- set: function set(value) {
-
- if (value === true) {
- Utils.findOrCreate(this.xml, _xmppConstants.Namespace.RSM, 'before');
- } else {
- Utils.setSubText(this.xml, _xmppConstants.Namespace.RSM, 'before', value);
- }
- }
- },
- count: Utils.numberSub(_xmppConstants.Namespace.RSM, 'count', false, 0),
- first: Utils.textSub(_xmppConstants.Namespace.RSM, 'first'),
- firstIndex: Utils.subAttribute(_xmppConstants.Namespace.RSM, 'first', 'index'),
- index: Utils.textSub(_xmppConstants.Namespace.RSM, 'index'),
- last: Utils.textSub(_xmppConstants.Namespace.RSM, 'last'),
- max: Utils.textSub(_xmppConstants.Namespace.RSM, 'max')
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],106:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Feedback = {
- get: function get() {
-
- var existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb');
- var result = [];
- existing.forEach(function (xml) {
-
- result.push({
- type: Utils.getAttribute(xml, 'type'),
- subtype: Utils.getAttribute(xml, 'subtype')
- });
- });
- existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb-trr-int');
- existing.forEach(function (xml) {
-
- result.push({
- type: Utils.getAttribute(xml, 'type'),
- value: Utils.getAttribute(xml, 'value')
- });
- });
- return result;
- },
- set: function set(values) {
-
- var self = this;
- var existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb');
- existing.forEach(function (item) {
-
- self.xml.removeChild(item);
- });
- existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb-trr-int');
- existing.forEach(function (item) {
-
- self.xml.removeChild(item);
- });
-
- values.forEach(function (value) {
-
- var fb = undefined;
- if (value.type === 'trr-int') {
- fb = Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb-trr-int', _xmppConstants.Namespace.JINGLE_RTP_1);
- Utils.setAttribute(fb, 'type', value.type);
- Utils.setAttribute(fb, 'value', value.value);
- } else {
- fb = Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0, 'rtcp-fb', _xmppConstants.Namespace.JINGLE_RTP_1);
- Utils.setAttribute(fb, 'type', value.type);
- Utils.setAttribute(fb, 'subtype', value.subtype);
- }
- self.xml.appendChild(fb);
- });
- }
- };
-
- var Bandwidth = JXT.define({
- name: 'bandwidth',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
- element: 'bandwidth',
- fields: {
- type: Utils.attribute('type'),
- bandwidth: Utils.text()
- }
- });
-
- var RTP = JXT.define({
- name: '_rtp',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
- element: 'description',
- tags: ['jingle-application'],
- fields: {
- applicationType: { value: 'rtp' },
- media: Utils.attribute('media'),
- ssrc: Utils.attribute('ssrc'),
- mux: Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_1, 'rtcp-mux'),
- encryption: {
- get: function get() {
-
- var enc = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_1, 'encryption');
- if (!enc.length) {
- return [];
- }
- enc = enc[0];
-
- var self = this;
- var data = Utils.find(enc, _xmppConstants.Namespace.JINGLE_RTP_1, 'crypto');
- var results = [];
-
- data.forEach(function (xml) {
-
- results.push(new Crypto({}, xml, self).toJSON());
- });
- return results;
- },
- set: function set(values) {
-
- var enc = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_1, 'encryption');
- if (enc.length) {
- this.xml.removeChild(enc);
- }
-
- if (!values.length) {
- return;
- }
-
- Utils.setBoolSubAttribute(this.xml, _xmppConstants.Namespace.JINGLE_RTP_1, 'encryption', 'required', true);
- enc = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_1, '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 get() {
-
- var existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_HDREXT_0, 'rtp-hdrext');
- var result = [];
- existing.forEach(function (xml) {
-
- result.push({
- id: Utils.getAttribute(xml, 'id'),
- uri: Utils.getAttribute(xml, 'uri'),
- senders: Utils.getAttribute(xml, 'senders')
- });
- });
- return result;
- },
- set: function set(values) {
-
- var self = this;
- var existing = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_HDREXT_0, 'rtp-hdrext');
- existing.forEach(function (item) {
-
- self.xml.removeChild(item);
- });
-
- values.forEach(function (value) {
-
- var hdr = Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0, 'rtp-hdrext', _xmppConstants.Namespace.JINGLE_RTP_1);
- Utils.setAttribute(hdr, 'id', value.id);
- Utils.setAttribute(hdr, 'uri', value.uri);
- Utils.setAttribute(hdr, 'senders', value.senders);
- self.xml.appendChild(hdr);
- });
- }
- }
- }
- });
-
- var PayloadType = JXT.define({
- name: '_payloadType',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
- element: 'payload-type',
- fields: {
- channels: Utils.attribute('channels'),
- clockrate: Utils.attribute('clockrate'),
- id: Utils.attribute('id'),
- maxptime: Utils.attribute('maxptime'),
- name: Utils.attribute('name'),
- ptime: Utils.attribute('ptime'),
- feedback: Feedback,
- parameters: {
- get: function get() {
-
- var result = [];
- var params = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_1, 'parameter');
- params.forEach(function (param) {
-
- result.push({
- key: Utils.getAttribute(param, 'name'),
- value: Utils.getAttribute(param, 'value')
- });
- });
- return result;
- },
- set: function set(values) {
-
- var self = this;
- values.forEach(function (value) {
-
- var param = Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_1, 'parameter');
- Utils.setAttribute(param, 'name', value.key);
- Utils.setAttribute(param, 'value', value.value);
- self.xml.appendChild(param);
- });
- }
- }
- }
- });
-
- var Crypto = JXT.define({
- name: 'crypto',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
- element: 'crypto',
- fields: {
- cipherSuite: Utils.attribute('crypto-suite'),
- keyParams: Utils.attribute('key-params'),
- sessionParams: Utils.attribute('session-params'),
- tag: Utils.attribute('tag')
- }
- });
-
- var ContentGroup = JXT.define({
- name: '_group',
- namespace: _xmppConstants.Namespace.JINGLE_GROUPING_0,
- element: 'group',
- fields: {
- semantics: Utils.attribute('semantics'),
- contents: Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_GROUPING_0, 'content', 'name')
- }
- });
-
- var SourceGroup = JXT.define({
- name: '_sourceGroup',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_SSMA_0,
- element: 'ssrc-group',
- fields: {
- semantics: Utils.attribute('semantics'),
- sources: Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0, 'source', 'ssrc')
- }
- });
-
- var Source = JXT.define({
- name: '_source',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_SSMA_0,
- element: 'source',
- fields: {
- ssrc: Utils.attribute('ssrc'),
- parameters: {
- get: function get() {
-
- var result = [];
- var params = Utils.find(this.xml, _xmppConstants.Namespace.JINGLE_RTP_SSMA_0, 'parameter');
- params.forEach(function (param) {
-
- result.push({
- key: Utils.getAttribute(param, 'name'),
- value: Utils.getAttribute(param, 'value')
- });
- });
- return result;
- },
- set: function set(values) {
-
- var self = this;
- values.forEach(function (value) {
-
- var param = Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0, 'parameter');
- Utils.setAttribute(param, 'name', value.key);
- Utils.setAttribute(param, 'value', value.value);
- self.xml.appendChild(param);
- });
- }
- }
- }
- });
-
- var Mute = JXT.define({
- name: 'mute',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_INFO_1,
- element: 'mute',
- fields: {
- creator: Utils.attribute('creator'),
- name: Utils.attribute('name')
- }
- });
-
- var Unmute = JXT.define({
- name: 'unmute',
- namespace: _xmppConstants.Namespace.JINGLE_RTP_INFO_1,
- element: 'unmute',
- fields: {
- creator: Utils.attribute('creator'),
- name: Utils.attribute('name')
- }
- });
-
- JXT.extend(RTP, Bandwidth);
- JXT.extend(RTP, PayloadType, 'payloads');
- JXT.extend(RTP, Source, 'sources');
- JXT.extend(RTP, SourceGroup, 'sourceGroups');
-
- JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
-
- JXT.extend(Content, RTP);
- });
-
- JXT.withDefinition('jingle', _xmppConstants.Namespace.JINGLE_1, function (Jingle) {
-
- JXT.extend(Jingle, Mute);
- JXT.extend(Jingle, Unmute);
- JXT.extend(Jingle, ContentGroup, 'groups');
- JXT.add(Jingle, 'ringing', Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1, 'ringing'));
- JXT.add(Jingle, 'hold', Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1, 'hold'));
- JXT.add(Jingle, 'active', Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1, 'active'));
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],107:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var TYPE_MAP = {
- insert: 't',
- erase: 'e',
- wait: 'w'
-};
-
-var ACTION_MAP = {
- t: 'insert',
- e: 'erase',
- w: 'wait'
-};
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var RTT = JXT.define({
- name: 'rtt',
- namespace: _xmppConstants.Namespace.RTT_0,
- element: 'rtt',
- fields: {
- id: Utils.attribute('id'),
- event: Utils.attribute('event', 'edit'),
- seq: Utils.numberAttribute('seq'),
- actions: {
- get: function get() {
-
- var results = [];
- for (var i = 0, len = this.xml.childNodes.length; i < len; i++) {
- var child = this.xml.childNodes[i];
- var _name = child.localName;
- var action = {};
-
- if (child.namespaceURI !== _xmppConstants.Namespace.RTT_0) {
- continue;
- }
-
- if (ACTION_MAP[_name]) {
- action.type = ACTION_MAP[_name];
- } else {
- continue;
- }
-
- var pos = Utils.getAttribute(child, 'p');
- if (pos) {
- action.pos = parseInt(pos, 10);
- }
-
- var n = Utils.getAttribute(child, 'n');
- if (n) {
- action.num = parseInt(n, 10);
- }
-
- var t = Utils.getText(child);
- if (t && _name === 't') {
- action.text = t;
- }
-
- results.push(action);
- }
-
- return results;
- },
- set: function set(actions) {
-
- var self = this;
-
- for (var i = 0, len = this.xml.childNodes.length; i < len; i++) {
- this.xml.removeChild(this.xml.childNodes[i]);
- }
-
- actions.forEach(function (action) {
-
- if (!TYPE_MAP[action.type]) {
- return;
- }
-
- var child = Utils.createElement(_xmppConstants.Namespace.RTT_0, TYPE_MAP[action.type], _xmppConstants.Namespace.RTT_0);
-
- if (action.pos !== undefined) {
- Utils.setAttribute(child, 'p', action.pos.toString());
- }
-
- if (action.num) {
- Utils.setAttribute(child, 'n', action.num.toString());
- }
-
- if (action.text) {
- Utils.setText(child, action.text);
- }
-
- self.xml.appendChild(child);
- });
- }
- }
- }
- });
-
- JXT.extendMessage(RTT);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],108:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['aborted', 'account-disabled', 'credentials-expired', 'encryption-required', 'incorrect-encoding', 'invalid-authzid', 'invalid-mechanism', 'malformed-request', 'mechanism-too-weak', 'not-authorized', 'temporary-auth-failure'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Mechanisms = JXT.define({
- name: 'sasl',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'mechanisms',
- fields: {
- mechanisms: Utils.multiTextSub(_xmppConstants.Namespace.SASL, 'mechanism')
- }
- });
-
- JXT.define({
- name: 'saslAuth',
- eventName: 'sasl:auth',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'auth',
- topLevel: true,
- fields: {
- value: Utils.text(),
- mechanism: Utils.attribute('mechanism')
- }
- });
-
- JXT.define({
- name: 'saslChallenge',
- eventName: 'sasl:challenge',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'challenge',
- topLevel: true,
- fields: {
- value: Utils.text()
- }
- });
-
- JXT.define({
- name: 'saslResponse',
- eventName: 'sasl:response',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'response',
- topLevel: true,
- fields: {
- value: Utils.text()
- }
- });
-
- JXT.define({
- name: 'saslAbort',
- eventName: 'sasl:abort',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'abort',
- topLevel: true
- });
-
- JXT.define({
- name: 'saslSuccess',
- eventName: 'sasl:success',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'success',
- topLevel: true,
- fields: {
- value: Utils.text()
- }
- });
-
- JXT.define({
- name: 'saslFailure',
- eventName: 'sasl:failure',
- namespace: _xmppConstants.Namespace.SASL,
- element: 'failure',
- topLevel: true,
- fields: {
- lang: {
- get: function get() {
-
- return this._lang || '';
- },
- set: function set(value) {
-
- this._lang = value;
- }
- },
- condition: Utils.enumSub(_xmppConstants.Namespace.SASL, CONDITIONS),
- $text: {
- get: function get() {
-
- return Utils.getSubLangText(this.xml, _xmppConstants.Namespace.SASL, 'text', this.lang);
- }
- },
- text: {
- get: function get() {
-
- var text = this.$text;
- return text[this.lang] || '';
- },
- set: function set(value) {
-
- Utils.setSubLangText(this.xml, _xmppConstants.Namespace.SASL, 'text', value, this.lang);
- }
- }
- }
- });
-
- JXT.extendStreamFeatures(Mechanisms);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],109:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Session = JXT.define({
- name: 'session',
- namespace: _xmppConstants.Namespace.SESSION,
- element: 'session',
- fields: {
- required: JXT.utils.boolSub(_xmppConstants.Namespace.SESSION, 'required'),
- optional: JXT.utils.boolSub(_xmppConstants.Namespace.SESSION, 'optional')
- }
- });
-
- JXT.extendIQ(Session);
- JXT.extendStreamFeatures(Session);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],110:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var SHIM = {
- get: function get() {
-
- var headerSet = Utils.find(this.xml, _xmppConstants.Namespace.SHIM, 'headers');
- if (headerSet.length) {
- return Utils.getMultiSubText(headerSet[0], _xmppConstants.Namespace.SHIM, 'header', function (header) {
-
- var name = Utils.getAttribute(header, 'name');
- if (name) {
- return {
- name: name,
- value: Utils.getText(header)
- };
- }
- });
- }
- return [];
- },
- set: function set(values) {
-
- var headerSet = Utils.findOrCreate(this.xml, _xmppConstants.Namespace.SHIM, 'headers');
- JXT.setMultiSubText(headerSet, _xmppConstants.Namespace.SHIM, 'header', values, function (val) {
-
- var header = Utils.createElement(_xmppConstants.Namespace.SHIM, 'header', _xmppConstants.Namespace.SHIM);
- Utils.setAttribute(header, 'name', val.name);
- Utils.setText(header, val.value);
- headerSet.appendChild(header);
- });
- }
- };
-
- JXT.withMessage(function (Message) {
-
- JXT.add(Message, 'headers', SHIM);
- });
-
- JXT.withPresence(function (Presence) {
-
- JXT.add(Presence, 'headers', SHIM);
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],111:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var SMFeature = JXT.define({
- name: 'streamManagement',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'sm'
- });
-
- JXT.define({
- name: 'smEnable',
- eventName: 'stream:management:enable',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'enable',
- topLevel: true,
- fields: {
- resume: Utils.boolAttribute('resume')
- }
- });
-
- JXT.define({
- name: 'smEnabled',
- eventName: 'stream:management:enabled',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'enabled',
- topLevel: true,
- fields: {
- id: Utils.attribute('id'),
- resume: Utils.boolAttribute('resume')
- }
- });
-
- JXT.define({
- name: 'smResume',
- eventName: 'stream:management:resume',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'resume',
- topLevel: true,
- fields: {
- h: Utils.numberAttribute('h', false, 0),
- previd: Utils.attribute('previd')
- }
- });
-
- JXT.define({
- name: 'smResumed',
- eventName: 'stream:management:resumed',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'resumed',
- topLevel: true,
- fields: {
- h: Utils.numberAttribute('h', false, 0),
- previd: Utils.attribute('previd')
- }
- });
-
- JXT.define({
- name: 'smFailed',
- eventName: 'stream:management:failed',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'failed',
- topLevel: true
- });
-
- JXT.define({
- name: 'smAck',
- eventName: 'stream:management:ack',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'a',
- topLevel: true,
- fields: {
- h: Utils.numberAttribute('h', false, 0)
- }
- });
-
- JXT.define({
- name: 'smRequest',
- eventName: 'stream:management:request',
- namespace: _xmppConstants.Namespace.SMACKS_3,
- element: 'r',
- topLevel: true
- });
-
- JXT.extendStreamFeatures(SMFeature);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],112:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: 'stream',
- namespace: _xmppConstants.Namespace.STREAM,
- element: 'stream',
- fields: {
- lang: Utils.langAttribute(),
- id: Utils.attribute('id'),
- version: Utils.attribute('version', '1.0'),
- to: Utils.jidAttribute('to', true),
- from: Utils.jidAttribute('from', true)
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],113:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-var CONDITIONS = ['bad-format', 'bad-namespace-prefix', 'conflict', 'connection-timeout', 'host-gone', 'host-unknown', 'improper-addressing', 'internal-server-error', 'invalid-from', 'invalid-namespace', 'invalid-xml', 'not-authorized', 'not-well-formed', 'policy-violation', 'remote-connection-failed', 'reset', 'resource-constraint', 'restricted-xml', 'see-other-host', 'system-shutdown', 'undefined-condition', 'unsupported-encoding', 'unsupported-feature', 'unsupported-stanza-type', 'unsupported-version'];
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- JXT.define({
- name: 'streamError',
- namespace: _xmppConstants.Namespace.STREAM,
- element: 'error',
- topLevel: true,
- fields: {
- lang: {
- get: function get() {
-
- return this._lang || '';
- },
- set: function set(value) {
-
- this._lang = value;
- }
- },
- condition: Utils.enumSub(_xmppConstants.Namespace.STREAM_ERROR, CONDITIONS),
- seeOtherHost: {
- get: function get() {
-
- return Utils.getSubText(this.xml, _xmppConstants.Namespace.STREAM_ERROR, 'see-other-host');
- },
- set: function set(value) {
-
- this.condition = 'see-other-host';
- Utils.setSubText(this.xml, _xmppConstants.Namespace.STREAM_ERROR, 'see-other-host', value);
- }
- },
- $text: {
- get: function get() {
-
- return Utils.getSubLangText(this.xml, _xmppConstants.Namespace.STREAM_ERROR, 'text', this.lang);
- }
- },
- text: {
- get: function get() {
-
- var text = this.$text;
- return text[this.lang] || '';
- },
- set: function set(value) {
-
- Utils.setSubLangText(this.xml, _xmppConstants.Namespace.STREAM_ERROR, 'text', value, this.lang);
- }
- }
- }
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],114:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var StreamFeatures = JXT.define({
- name: 'streamFeatures',
- namespace: _xmppConstants.Namespace.STREAM,
- element: 'features',
- topLevel: true
- });
-
- var RosterVerFeature = JXT.define({
- name: 'rosterVersioning',
- namespace: _xmppConstants.Namespace.ROSTER_VERSIONING,
- element: 'ver'
- });
-
- var SubscriptionPreApprovalFeature = JXT.define({
- name: 'subscriptionPreApproval',
- namespace: _xmppConstants.Namespace.SUBSCRIPTION_PREAPPROVAL,
- element: 'sub'
- });
-
- JXT.extendStreamFeatures(RosterVerFeature);
- JXT.extendStreamFeatures(SubscriptionPreApprovalFeature);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],115:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var EntityTime = JXT.define({
- name: 'time',
- namespace: _xmppConstants.Namespace.TIME,
- element: 'time',
- fields: {
- utc: JXT.utils.dateSub(_xmppConstants.Namespace.TIME, 'utc'),
- tzo: JXT.utils.tzoSub(_xmppConstants.Namespace.TIME, 'tzo', 0)
- }
- });
-
- JXT.extendIQ(EntityTime);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],116:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var Tune = JXT.define({
- name: 'tune',
- namespace: _xmppConstants.Namespace.TUNE,
- element: 'tune',
- fields: {
- artist: Utils.textSub(_xmppConstants.Namespace.TUNE, 'artist'),
- length: Utils.numberSub(_xmppConstants.Namespace.TUNE, 'length'),
- rating: Utils.numberSub(_xmppConstants.Namespace.TUNE, 'rating'),
- source: Utils.textSub(_xmppConstants.Namespace.TUNE, 'source'),
- title: Utils.textSub(_xmppConstants.Namespace.TUNE, 'title'),
- track: Utils.textSub(_xmppConstants.Namespace.TUNE, 'track'),
- uri: Utils.textSub(_xmppConstants.Namespace.TUNE, 'uri')
- }
- });
-
- JXT.extendPubsubItem(Tune);
- JXT.extendMessage(Tune);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],117:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Utils = JXT.utils;
-
- var VCardTemp = JXT.define({
- name: 'vCardTemp',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'vCard',
- fields: {
- role: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'ROLE'),
- website: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'URL'),
- title: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'TITLE'),
- description: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'DESC'),
- fullName: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'FN'),
- birthday: Utils.dateSub(_xmppConstants.Namespace.VCARD_TEMP, 'BDAY'),
- nicknames: Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP, 'NICKNAME'),
- jids: Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP, 'JABBERID')
- }
- });
-
- var Email = JXT.define({
- name: '_email',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'EMAIL',
- fields: {
- email: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'USERID'),
- home: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'HOME'),
- work: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'WORK'),
- preferred: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'PREF')
- }
- });
-
- var PhoneNumber = JXT.define({
- name: '_tel',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'TEL',
- fields: {
- number: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'NUMBER'),
- home: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'HOME'),
- work: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'WORK'),
- mobile: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'CELL'),
- preferred: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'PREF')
- }
- });
-
- var Address = JXT.define({
- name: '_address',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'ADR',
- fields: {
- street: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'STREET'),
- street2: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'EXTADD'),
- country: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'CTRY'),
- city: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'LOCALITY'),
- region: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'REGION'),
- postalCode: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'PCODE'),
- pobox: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'POBOX'),
- home: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'HOME'),
- work: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'WORK'),
- preferred: Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP, 'PREF')
- }
- });
-
- var Organization = JXT.define({
- name: 'organization',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'ORG',
- fields: {
- name: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'ORGNAME'),
- unit: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'ORGUNIT')
- }
- });
-
- var Name = JXT.define({
- name: 'name',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'N',
- fields: {
- family: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'FAMILY'),
- given: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'GIVEN'),
- middle: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'MIDDLE'),
- prefix: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'PREFIX'),
- suffix: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'SUFFIX')
- }
- });
-
- var Photo = JXT.define({
- name: 'photo',
- namespace: _xmppConstants.Namespace.VCARD_TEMP,
- element: 'PHOTO',
- fields: {
- type: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'TYPE'),
- data: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'BINVAL'),
- url: Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP, 'EXTVAL')
- }
- });
-
- JXT.extend(VCardTemp, Email, 'emails');
- JXT.extend(VCardTemp, Address, 'addresses');
- JXT.extend(VCardTemp, PhoneNumber, 'phoneNumbers');
- JXT.extend(VCardTemp, Organization);
- JXT.extend(VCardTemp, Name);
- JXT.extend(VCardTemp, Photo);
-
- JXT.extendIQ(VCardTemp);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],118:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- var Version = JXT.define({
- name: 'version',
- namespace: _xmppConstants.Namespace.VERSION,
- element: 'query',
- fields: {
- name: JXT.utils.textSub(_xmppConstants.Namespace.VERSION, 'name'),
- version: JXT.utils.textSub(_xmppConstants.Namespace.VERSION, 'version'),
- os: JXT.utils.textSub(_xmppConstants.Namespace.VERSION, 'os')
- }
- });
-
- JXT.extendIQ(Version);
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],119:[function(require,module,exports){
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
- value: true
-});
-
-var _xmppConstants = require('xmpp-constants');
-
-exports['default'] = function (JXT) {
-
- JXT.withIQ(function (IQ) {
-
- JXT.add(IQ, 'visible', JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0, 'visible'));
- JXT.add(IQ, 'invisible', JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0, 'invisible'));
- });
-};
-
-module.exports = exports['default'];
-
-},{"xmpp-constants":212}],120:[function(require,module,exports){
-'use strict';
-
-var extend = require('lodash.assign');
-var uuid = require('uuid');
-
-var types = require('./lib/types');
-var helpers = require('./lib/helpers');
-var stanzaConstructor = require('./lib/stanza');
-
-
-function JXT() {
- this._LOOKUP = {};
- this._LOOKUP_EXT = {};
- this._TAGS = {};
- this._CB_DEFINITION = {};
- this._CB_TAG = {};
- this._ID = uuid.v4();
- this.utils = extend({}, types, helpers);
-}
-
-JXT.prototype.use = function (init) {
- if (!init['__JXT_LOADED_' + this._ID]) {
- init(this);
- }
- init['__JXT_LOADED_' + this._ID] = true;
- return 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;
- if (!this._CB_DEFINITION[name]) {
- this._CB_DEFINITION[name] = [];
- }
- this._CB_DEFINITION[name].push(cb);
-
- if (this._LOOKUP[name]) {
- cb(this._LOOKUP[name]);
- }
-};
-
-JXT.prototype.withTag = function (tag, cb) {
- if (!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);
- if (JXTClass) {
- return new JXTClass(null, xml);
- }
-};
-
-JXT.prototype.parse = function (str) {
- var xml = helpers.parse(str);
- if (!xml) {
- return;
- }
- return this.build(xml);
-};
-
-JXT.prototype.extend = function (ParentJXT, ChildJXT, multiName, hideSingle) {
- var parentName = ParentJXT.prototype._NS + '|' + ParentJXT.prototype._EL;
- var name = ChildJXT.prototype._name;
- var qName = ChildJXT.prototype._NS + '|' + ChildJXT.prototype._EL;
-
- this._LOOKUP[qName] = ChildJXT;
- if (!this._LOOKUP_EXT[qName]) {
- this._LOOKUP_EXT[qName] = {};
- }
- if (!this._LOOKUP_EXT[parentName]) {
- this._LOOKUP_EXT[parentName] = {};
- }
- this._LOOKUP_EXT[parentName][name] = ChildJXT;
-
- if (!multiName || (multiName && !hideSingle)) {
- this.add(ParentJXT, name, types.extension(ChildJXT));
- }
- if (multiName) {
- this.add(ParentJXT, multiName, types.multiExtension(ChildJXT));
- }
-};
-
-JXT.prototype.add = function (ParentJXT, fieldName, field) {
- field.enumerable = true;
- Object.defineProperty(ParentJXT.prototype, fieldName, field);
-};
-
-JXT.prototype.define = function (opts) {
- var self = this;
-
- var Stanza = stanzaConstructor(this, opts);
-
- var ns = Stanza.prototype._NS;
- var el = Stanza.prototype._EL;
- var tags = Stanza.prototype._TAGS;
-
- var name = ns + '|' + el;
- this._LOOKUP[name] = Stanza;
-
- tags.forEach(function (tag) {
- if (!self._TAGS[tag]) {
- self._TAGS[tag] = [];
- }
- self._TAGS[tag].push(Stanza);
- });
-
- var fieldNames = Object.keys(opts.fields || {});
- fieldNames.forEach(function (fieldName) {
- self.add(Stanza, fieldName, opts.fields[fieldName]);
- });
-
- if (this._CB_DEFINITION[name]) {
- this._CB_DEFINITION[name].forEach(function (handler) {
- handler(Stanza);
- });
- }
-
- tags.forEach(function (tag) {
- if (self._CB_TAG[tag]) {
- self._CB_TAG[tag].forEach(function (handler) {
- handler(Stanza);
- });
- }
- });
-
- return Stanza;
-};
-
-
-// Expose methods on the required module itself
-
-
-JXT.createRegistry = function () {
- return new JXT();
-};
-
-extend(JXT, helpers);
-extend(JXT, types);
-
-// Compatibility shim for JXT 1.x
-
-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":121,"./lib/stanza":122,"./lib/types":123,"lodash.assign":132,"uuid":199}],121:[function(require,module,exports){
-'use strict';
-
-var ltx = require('ltx');
-var DOMElement = require('ltx/lib/DOMElement');
-
-var XML_NS = exports.XML_NS = 'http://www.w3.org/XML/1998/namespace';
-
-
-exports.parse = function (str) {
- var xml = ltx.parse(str, {
- Element: DOMElement
- });
- if (xml.nodeType !== 1) {
- return;
- }
- return xml;
-};
-
-exports.createElement = function (NS, name, parentNS) {
- var el = new DOMElement(name);
- if (!parentNS || parentNS !== NS) {
- exports.setAttribute(el, 'xmlns', NS);
- }
- return el;
-};
-
-var find = exports.find = function (xml, NS, selector) {
- var results = [];
- var children = xml.getElementsByTagName(selector);
- for (var i = 0, len = children.length; i < len; i++) {
- var child = children[i];
- if (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];
- } else {
- var created = exports.createElement(NS, selector, xml.namespaceURI);
- xml.appendChild(created);
- return 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) {
- if (value || force) {
- xml.setAttribute(attr, value);
- } else {
- xml.removeAttribute(attr);
- }
-};
-
-exports.setAttributeNS = function (xml, NS, attr, value, force) {
- if (value || force) {
- xml.setAttributeNS(NS, attr, value);
- } else {
- xml.removeAttributeNS(NS, attr);
- }
-};
-
-exports.getBoolAttribute = function (xml, attr, defaultVal) {
- var val = xml.getAttribute(attr) || defaultVal || '';
- return val === 'true' || val === '1';
-};
-
-exports.setBoolAttribute = function (xml, attr, value) {
- if (value) {
- xml.setAttribute(attr, '1');
- } else {
- 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) {
- if (value) {
- sub = exports.createElement(NS, sub, xml.namespaceURI);
- sub.setAttribute(attr, value);
- xml.appendChild(sub);
- }
- } else {
- for (var i = 0; i < subs.length; i++) {
- if (value) {
- subs[i].setAttribute(attr, value);
- return;
- } else {
- subs[i].removeAttribute(attr);
- }
- }
- }
-};
-
-exports.getBoolSubAttribute = function (xml, NS, sub, attr, defaultVal) {
- var val = xml.getSubAttribute(NS, sub, attr) || defaultVal || '';
- return val === 'true' || val === '1';
-};
-
-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);
-
- defaultVal = defaultVal || '';
-
- if (!subs.length) {
- return defaultVal;
- }
-
- return subs[0].textContent || 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);
- if (value !== true) {
- sub.textContent = value;
- }
- xml.appendChild(sub);
- }
-};
-
-exports.getMultiSubText = function (xml, NS, element, extractor) {
- var subs = find(xml, NS, element);
- var 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);
- var values = [];
- builder = builder || function (value) {
- if (value) {
- var sub = exports.createElement(NS, element, xml.namespaceURI);
- sub.textContent = value;
- xml.appendChild(sub);
- }
- };
- if (typeof value === 'string') {
- values = (value || '').split('\n');
- } else {
- values = value;
- }
-
- var i, len;
- for(i = 0, len = subs.length; i < len; i++) {
- xml.removeChild(subs[i]);
- }
-
- for(i = 0, len = values.length; i < len; 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 {};
- }
-
- var lang, sub;
- var results = {};
- var langs = [];
-
- for (var 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;
- var subs = find(xml, NS, element);
- if (subs.length) {
- for (var i = 0; i < subs.length; i++) {
- xml.removeChild(subs[i]);
- }
- }
-
- if (typeof value === 'string') {
- sub = exports.createElement(NS, element, xml.namespaceURI);
- sub.textContent = value;
- xml.appendChild(sub);
- } else if (typeof value === 'object') {
- for (lang in value) {
- if (value.hasOwnProperty(lang)) {
- sub = exports.createElement(NS, element, xml.namespaceURI);
- if (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) {
- if (value) {
- var sub = exports.createElement(NS, element, xml.namespaceURI);
- xml.appendChild(sub);
- }
- } else {
- for (var i = 0; i < subs.length; i++) {
- if (value) {
- return;
- } else {
- xml.removeChild(subs[i]);
- }
- }
- }
-};
-
-},{"ltx":139,"ltx/lib/DOMElement":140}],122:[function(require,module,exports){
-'use strict';
-
-var helpers = require('./helpers');
-var extend = require('lodash.assign');
-
-
-var EXCLUDE = {
- constructor: true,
- parent: true,
- prototype: true,
- toJSON: true,
- toString: true,
- xml: true
-};
-
-
-module.exports = function (JXT, opts) {
- function Stanza(data, xml, parent) {
- var self = this;
-
- var parentNode = (xml || {}).parentNode || (parent || {}).xml;
- var 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; i < len; i++) {
- var child = self.xml.childNodes[i];
- var ChildJXT = JXT.getDefinition(child.localName, child.namespaceURI);
- if (ChildJXT !== undefined) {
- var name = ChildJXT.prototype._name;
- self._extensions[name] = new ChildJXT(null, child);
- self._extensions[name].parent = self;
- }
- }
-
- extend(self, data);
-
- if (opts.init) {
- opts.init.apply(self, [data]);
- }
-
- return self;
- }
-
- Stanza.prototype._isJXT = true;
- 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;
- var result = {};
-
- for (prop in this._extensions) {
- if (this._extensions[prop].toJSON && prop[0] !== '_') {
- result[prop] = this._extensions[prop].toJSON();
- }
- }
-
- for (prop in this) {
- var allowedName = !EXCLUDE[prop] && prop[0] !== '_';
- var isExtensionName = JXT.getExtensions(this._EL, this._NS)[prop];
-
- if (allowedName && !isExtensionName) {
- var val = this[prop];
- if (typeof val === 'function') {
- continue;
- }
- var type = Object.prototype.toString.call(val);
- if (type.indexOf('Object') >= 0) {
- if (Object.keys(val).length > 0) {
- if (val._isJXT) {
- result[prop] = val.toJSON();
- } else {
- result[prop] = val;
- }
- }
- } else if (type.indexOf('Array') >= 0) {
- if (val.length > 0) {
- var vals = [];
- var len = val.length;
- for (var n = 0; n < len; n++) {
- var nval = val[n];
- if (typeof nval !== 'undefined') {
- if (nval._isJXT) {
- vals.push(nval.toJSON());
- } else {
- vals.push(nval);
- }
- }
- }
- result[prop] = vals;
- }
- } else if (val !== undefined && val !== false && val !== '') {
- result[prop] = val;
- }
- }
- }
-
- return result;
- };
-
- return Stanza;
-};
-
-},{"./helpers":121,"lodash.assign":132}],123:[function(require,module,exports){
-(function (Buffer){
-'use strict';
-
-var helpers = require('./helpers');
-var extend = require('lodash.assign');
-
-var find = helpers.find;
-var createElement = helpers.createElement;
-
-
-var 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) {
- if (xml.textContent && xml.textContent !== '=') {
- return new Buffer(xml.textContent, 'base64');
- }
- return '';
- },
- function (xml, value) {
- if (typeof value === 'string') {
- 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);
- if (data) {
- return new Date(data);
- }
- if (now) {
- return new Date(Date.now());
- }
- },
- set: function (value) {
- if (!value) {
- return;
- }
- if (typeof value !== 'string') {
- 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);
- if (data) {
- return new Date(data);
- }
- if (now) {
- return new Date(Date.now());
- }
- },
- set: function (value) {
- if (!value) {
- return;
- }
- if (typeof value !== 'string') {
- 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);
- if (data) {
- return new Date(data);
- }
- if (now) {
- return new Date(Date.now());
- }
- },
- set: function (value) {
- if (!value) {
- return;
- }
- if (typeof value !== 'string') {
- 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;
- var data = helpers.getAttribute(this.xml, attr, '');
- if (!data) {
- return defaultVal;
- }
- var parsed = parse(data, 10);
- if (isNaN(parsed)) {
- return defaultVal;
- }
-
- return 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;
- var data = helpers.getSubText(this.xml, NS, sub, '');
- if (!data) {
- return defaultVal;
- }
-
- var parsed = parse(data, 10);
- if (isNaN(parsed)) {
- return defaultVal;
- }
-
- return 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;
- var name = ChildJXT.prototype._name;
- if (!this._extensions[name]) {
- var existing = find(this.xml, ChildJXT.prototype._NS, ChildJXT.prototype._EL);
- if (!existing.length) {
- this._extensions[name] = new ChildJXT({}, null, self);
- this.xml.appendChild(this._extensions[name].xml);
- } else {
- this._extensions[name] = new ChildJXT(null, existing[0], self);
- }
- this._extensions[name].parent = this;
- }
- return this._extensions[name];
- },
- set: function (value) {
- if (value) {
- var child = this[ChildJXT.prototype._name];
- if (value === true) {
- value = {};
- }
- extend(child, value);
- }
- }
- };
-};
-
-exports.multiExtension = function (ChildJXT) {
- return {
- get: function () {
- var self = this;
- var data = find(this.xml, ChildJXT.prototype._NS, ChildJXT.prototype._EL);
- var results = [];
-
- for (var i = 0, len = data.length; i < len; i++) {
- results.push(new ChildJXT({}, data[i], self));
- }
-
- return results;
- },
- set: function (value) {
- value = value || [];
-
- var self = this;
- var existing = find(this.xml, ChildJXT.prototype._NS, ChildJXT.prototype._EL);
-
- var i, len;
- for (i = 0, len = existing.length; i < len; i++) {
- self.xml.removeChild(existing[i]);
- }
-
- for (i = 0, len = value.length; i < len; 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;
- var result = [];
- enumValues.forEach(function (enumVal) {
- var exists = find(self.xml, NS, enumVal);
- if (exists.length) {
- result.push(exists[0].nodeName);
- }
- });
- return result[0] || '';
- },
- set: function (value) {
- var self = this;
- var alreadyExists = false;
-
- enumValues.forEach(function (enumVal) {
- var elements = find(self.xml, NS, enumVal);
- if (elements.length) {
- if (enumVal === value) {
- alreadyExists = true;
- } else {
- self.xml.removeChild(elements[0]);
- }
- }
- });
-
- if (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);
- if (!wrapper.length) {
- wrapper= createElement(NS, sub, this._NS);
- this.xml.appendChild(wrapper);
- } else {
- wrapper = wrapper[0];
- }
-
- var existing = find(wrapper, ChildJXT.prototype._NS, ChildJXT.prototype._EL);
- if (!existing.length) {
- this._extensions[name] = new ChildJXT({}, null, {xml: wrapper});
- wrapper.appendChild(this._extensions[name].xml);
- } else {
- this._extensions[name] = new ChildJXT(null, existing[0], {xml: wrapper});
- }
- 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]);
- }
-
- if (value) {
- var child = this[name];
- if (value === true) {
- value = {};
- }
- extend(child, value);
- }
- }
- };
-};
-
-exports.subMultiExtension = function (NS, sub, ChildJXT) {
- return {
- get: function () {
- var self = this;
- var results = [];
- var existing = find(this.xml, NS, sub);
- if (!existing.length) {
- return results;
- }
- existing = existing[0];
- var data = find(existing, ChildJXT.prototype._NS, ChildJXT.prototype._EL);
-
- data.forEach(function (xml) {
- results.push(new ChildJXT({}, xml, self));
- });
- return results;
- },
- set: function (values) {
- var self = this;
- var existing = find(this.xml, NS, sub);
- if (existing.length) {
- self.xml.removeChild(existing[0]);
- }
-
- if (!values.length) {
- return;
- }
-
- existing = createElement(NS, sub, this._NS);
-
- values.forEach(function (value) {
- var content = new ChildJXT(value, null, {
- xml: { namespaceURI: NS }
- });
- existing.appendChild(content.xml);
- });
-
- self.xml.appendChild(existing);
- }
- };
-};
-
-}).call(this,require("buffer").Buffer)
-},{"./helpers":121,"buffer":6,"lodash.assign":132}],124:[function(require,module,exports){
-/**
- * lodash 3.0.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/**
- * A specialized version of `_.forEach` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
-function arrayEach(array, iteratee) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
- }
- }
- return array;
-}
-
-module.exports = arrayEach;
-
-},{}],125:[function(require,module,exports){
-/**
- * lodash 3.2.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseCopy = require('lodash._basecopy'),
- keys = require('lodash.keys');
-
-/**
- * The base implementation of `_.assign` without support for argument juggling,
- * multiple sources, and `customizer` functions.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @returns {Object} Returns `object`.
- */
-function baseAssign(object, source) {
- return source == null
- ? object
- : baseCopy(source, keys(source), object);
-}
-
-module.exports = baseAssign;
-
-},{"lodash._basecopy":126,"lodash.keys":137}],126:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/**
- * Copies properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy properties from.
- * @param {Array} props The property names to copy.
- * @param {Object} [object={}] The object to copy properties to.
- * @returns {Object} Returns `object`.
- */
-function baseCopy(source, props, object) {
- object || (object = {});
-
- var index = -1,
- length = props.length;
-
- while (++index < length) {
- var key = props[index];
- object[key] = source[key];
- }
- return object;
-}
-
-module.exports = baseCopy;
-
-},{}],127:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var keys = require('lodash.keys');
-
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * The base implementation of `_.forEach` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array|Object|string} Returns `collection`.
- */
-var baseEach = createBaseEach(baseForOwn);
-
-/**
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
- * each property. Iteratee functions may exit iteration early by explicitly
- * returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
-var baseFor = createBaseFor();
-
-/**
- * The base implementation of `_.forOwn` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
-function baseForOwn(object, iteratee) {
- return baseFor(object, iteratee, keys);
-}
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * Creates a `baseEach` or `baseEachRight` function.
- *
- * @private
- * @param {Function} eachFunc The function to iterate over a collection.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- var length = collection ? getLength(collection) : 0;
- if (!isLength(length)) {
- return eachFunc(collection, iteratee);
- }
- var index = fromRight ? length : -1,
- iterable = toObject(collection);
-
- while ((fromRight ? index-- : ++index < length)) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
-}
-
-/**
- * Creates a base function for `_.forIn` or `_.forInRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var iterable = toObject(object),
- props = keysFunc(object),
- length = props.length,
- index = fromRight ? length : -1;
-
- while ((fromRight ? index-- : ++index < length)) {
- var key = props[index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object;
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-module.exports = baseEach;
-
-},{"lodash.keys":137}],128:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/**
- * A specialized version of `baseCallback` which only supports `this` binding
- * and specifying the number of arguments to provide to `func`.
- *
- * @private
- * @param {Function} func The function to bind.
- * @param {*} thisArg The `this` binding of `func`.
- * @param {number} [argCount] The number of arguments to provide to `func`.
- * @returns {Function} Returns the callback.
- */
-function bindCallback(func, thisArg, argCount) {
- if (typeof func != 'function') {
- return identity;
- }
- if (thisArg === undefined) {
- 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);
- };
-}
-
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-module.exports = bindCallback;
-
-},{}],129:[function(require,module,exports){
-/**
- * lodash 3.1.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var bindCallback = require('lodash._bindcallback'),
- isIterateeCall = require('lodash._isiterateecall'),
- restParam = require('lodash.restparam');
-
-/**
- * Creates a function that assigns properties of source object(s) to a given
- * destination object.
- *
- * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.
- *
- * @private
- * @param {Function} assigner The function to assign values.
- * @returns {Function} Returns the new assigner function.
- */
-function createAssigner(assigner) {
- return restParam(function(object, sources) {
- var index = -1,
- length = object == null ? 0 : sources.length,
- customizer = length > 2 ? sources[length - 2] : undefined,
- guard = length > 2 ? sources[2] : undefined,
- thisArg = length > 1 ? sources[length - 1] : undefined;
-
- if (typeof customizer == 'function') {
- customizer = bindCallback(customizer, thisArg, 5);
- length -= 2;
- } else {
- customizer = typeof thisArg == 'function' ? thisArg : undefined;
- length -= (customizer ? 1 : 0);
- }
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
- customizer = length < 3 ? undefined : customizer;
- length = 1;
- }
- while (++index < length) {
- var source = sources[index];
- if (source) {
- assigner(object, source, customizer);
- }
- }
- return object;
- });
-}
-
-module.exports = createAssigner;
-
-},{"lodash._bindcallback":128,"lodash._isiterateecall":131,"lodash.restparam":138}],130:[function(require,module,exports){
-/**
- * lodash 3.9.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
-}
-
-module.exports = getNative;
-
-},{}],131:[function(require,module,exports){
-/**
- * lodash 3.0.9 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** Used to detect unsigned integer values. */
-var reIsUint = /^\d+$/;
-
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
-
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return value > -1 && value % 1 == 0 && value < length;
-}
-
-/**
- * Checks if the provided arguments are from an iteratee call.
- *
- * @private
- * @param {*} value The potential iteratee value argument.
- * @param {*} index The potential iteratee index or key argument.
- * @param {*} object The potential iteratee object argument.
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.
- */
-function isIterateeCall(value, index, object) {
- if (!isObject(object)) {
- return false;
- }
- var type = typeof index;
- if (type == 'number'
- ? (isArrayLike(object) && isIndex(index, object.length))
- : (type == 'string' && index in object)) {
- var other = object[index];
- return value === value ? (value === other) : (other !== other);
- }
- return false;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-module.exports = isIterateeCall;
-
-},{}],132:[function(require,module,exports){
-/**
- * lodash 3.2.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseAssign = require('lodash._baseassign'),
- createAssigner = require('lodash._createassigner'),
- keys = require('lodash.keys');
-
-/**
- * A specialized version of `_.assign` for customizing assigned values without
- * support for argument juggling, multiple sources, and `this` binding `customizer`
- * functions.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {Function} customizer The function to customize assigned values.
- * @returns {Object} Returns `object`.
- */
-function assignWith(object, source, customizer) {
- var index = -1,
- props = keys(source),
- length = props.length;
-
- while (++index < length) {
- var key = props[index],
- value = object[key],
- result = customizer(value, source[key], key, object, source);
-
- if ((result === result ? (result !== value) : (value === value)) ||
- (value === undefined && !(key in object))) {
- object[key] = result;
- }
- }
- return object;
-}
-
-/**
- * Assigns own enumerable properties of source object(s) to the destination
- * object. Subsequent sources overwrite property assignments of previous sources.
- * If `customizer` is provided it is invoked to produce the assigned values.
- * The `customizer` is bound to `thisArg` and invoked with five arguments:
- * (objectValue, sourceValue, key, object, source).
- *
- * **Note:** This method mutates `object` and is based on
- * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
- *
- * @static
- * @memberOf _
- * @alias extend
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @param {Function} [customizer] The function to customize assigned values.
- * @param {*} [thisArg] The `this` binding of `customizer`.
- * @returns {Object} Returns `object`.
- * @example
- *
- * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
- * // => { 'user': 'fred', 'age': 40 }
- *
- * // using a customizer callback
- * var defaults = _.partialRight(_.assign, function(value, other) {
- * return _.isUndefined(value) ? other : value;
- * });
- *
- * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
- * // => { 'user': 'barney', 'age': 36 }
- */
-var assign = createAssigner(function(object, source, customizer) {
- return customizer
- ? assignWith(object, source, customizer)
- : baseAssign(object, source);
-});
-
-module.exports = assign;
-
-},{"lodash._baseassign":125,"lodash._createassigner":129,"lodash.keys":137}],133:[function(require,module,exports){
-(function (global){
-/**
- * lodash (Custom Build) <https://lodash.com/>
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- promiseTag = '[object Promise]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]',
- weakMapTag = '[object WeakMap]';
-
-var arrayBufferTag = '[object ArrayBuffer]',
- dataViewTag = '[object DataView]',
- 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]';
-
-/**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
- */
-var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
-/** Used to match `RegExp` flags from their coerced string values. */
-var reFlags = /\w*$/;
-
-/** Used to detect host constructors (Safari). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/** Used to detect unsigned integer values. */
-var reIsUint = /^(?:0|[1-9]\d*)$/;
-
-/** Used to identify `toStringTag` values supported by `_.clone`. */
-var cloneableTags = {};
-cloneableTags[argsTag] = cloneableTags[arrayTag] =
-cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
-cloneableTags[boolTag] = cloneableTags[dateTag] =
-cloneableTags[float32Tag] = cloneableTags[float64Tag] =
-cloneableTags[int8Tag] = cloneableTags[int16Tag] =
-cloneableTags[int32Tag] = cloneableTags[mapTag] =
-cloneableTags[numberTag] = cloneableTags[objectTag] =
-cloneableTags[regexpTag] = cloneableTags[setTag] =
-cloneableTags[stringTag] = cloneableTags[symbolTag] =
-cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
-cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
-cloneableTags[errorTag] = cloneableTags[funcTag] =
-cloneableTags[weakMapTag] = false;
-
-/** Detect free variable `global` from Node.js. */
-var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
-
-/** Detect free variable `self`. */
-var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
-
-/** Used as a reference to the global object. */
-var root = freeGlobal || freeSelf || Function('return this')();
-
-/** Detect free variable `exports`. */
-var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
-
-/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
-
-/** Detect the popular CommonJS extension `module.exports`. */
-var moduleExports = freeModule && freeModule.exports === freeExports;
-
-/**
- * Adds the key-value `pair` to `map`.
- *
- * @private
- * @param {Object} map The map to modify.
- * @param {Array} pair The key-value pair to add.
- * @returns {Object} Returns `map`.
- */
-function addMapEntry(map, pair) {
- // Don't return `map.set` because it's not chainable in IE 11.
- map.set(pair[0], pair[1]);
- return map;
-}
-
-/**
- * Adds `value` to `set`.
- *
- * @private
- * @param {Object} set The set to modify.
- * @param {*} value The value to add.
- * @returns {Object} Returns `set`.
- */
-function addSetEntry(set, value) {
- // Don't return `set.add` because it's not chainable in IE 11.
- set.add(value);
- return set;
-}
-
-/**
- * A specialized version of `_.forEach` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
-function arrayEach(array, iteratee) {
- var index = -1,
- length = array ? array.length : 0;
-
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
- }
- }
- return array;
-}
-
-/**
- * Appends the elements of `values` to `array`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {Array} values The values to append.
- * @returns {Array} Returns `array`.
- */
-function arrayPush(array, values) {
- var index = -1,
- length = values.length,
- offset = array.length;
-
- while (++index < length) {
- array[offset + index] = values[index];
- }
- return array;
-}
-
-/**
- * A specialized version of `_.reduce` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {*} [accumulator] The initial value.
- * @param {boolean} [initAccum] Specify using the first element of `array` as
- * the initial value.
- * @returns {*} Returns the accumulated value.
- */
-function arrayReduce(array, iteratee, accumulator, initAccum) {
- var index = -1,
- length = array ? array.length : 0;
-
- if (initAccum && length) {
- accumulator = array[++index];
- }
- while (++index < length) {
- accumulator = iteratee(accumulator, array[index], index, array);
- }
- return accumulator;
-}
-
-/**
- * The base implementation of `_.times` without support for iteratee shorthands
- * or max array length checks.
- *
- * @private
- * @param {number} n The number of times to invoke `iteratee`.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the array of results.
- */
-function baseTimes(n, iteratee) {
- var index = -1,
- result = Array(n);
-
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
-}
-
-/**
- * Gets the value at `key` of `object`.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {string} key The key of the property to get.
- * @returns {*} Returns the property value.
- */
-function getValue(object, key) {
- return object == null ? undefined : object[key];
-}
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/**
- * Converts `map` to its key-value pairs.
- *
- * @private
- * @param {Object} map The map to convert.
- * @returns {Array} Returns the key-value pairs.
- */
-function mapToArray(map) {
- var index = -1,
- result = Array(map.size);
-
- map.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
-}
-
-/**
- * Creates a unary function that invokes `func` with its argument transformed.
- *
- * @private
- * @param {Function} func The function to wrap.
- * @param {Function} transform The argument transform.
- * @returns {Function} Returns the new function.
- */
-function overArg(func, transform) {
- return function(arg) {
- return func(transform(arg));
- };
-}
-
-/**
- * Converts `set` to an array of its values.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the values.
- */
-function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- funcProto = Function.prototype,
- objectProto = Object.prototype;
-
-/** Used to detect overreaching core-js shims. */
-var coreJsData = root['__core-js_shared__'];
-
-/** Used to detect methods masquerading as native. */
-var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
- return uid ? ('Symbol(src)_1.' + uid) : '';
-}());
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = funcProto.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var Buffer = moduleExports ? root.Buffer : undefined,
- Symbol = root.Symbol,
- Uint8Array = root.Uint8Array,
- getPrototype = overArg(Object.getPrototypeOf, Object),
- objectCreate = Object.create,
- propertyIsEnumerable = objectProto.propertyIsEnumerable,
- splice = arrayProto.splice;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeGetSymbols = Object.getOwnPropertySymbols,
- nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
- nativeKeys = overArg(Object.keys, Object);
-
-/* Built-in method references that are verified to be native. */
-var DataView = getNative(root, 'DataView'),
- Map = getNative(root, 'Map'),
- Promise = getNative(root, 'Promise'),
- Set = getNative(root, 'Set'),
- WeakMap = getNative(root, 'WeakMap'),
- nativeCreate = getNative(Object, 'create');
-
-/** Used to detect maps, sets, and weakmaps. */
-var dataViewCtorString = toSource(DataView),
- mapCtorString = toSource(Map),
- promiseCtorString = toSource(Promise),
- setCtorString = toSource(Set),
- weakMapCtorString = toSource(WeakMap);
-
-/** Used to convert symbols to primitives and strings. */
-var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
-
-/**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
-function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
-}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
-function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
-}
-
-// Add methods to `Hash`.
-Hash.prototype.clear = hashClear;
-Hash.prototype['delete'] = hashDelete;
-Hash.prototype.get = hashGet;
-Hash.prototype.has = hashHas;
-Hash.prototype.set = hashSet;
-
-/**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
-function listCacheClear() {
- this.__data__ = [];
-}
-
-/**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- return index < 0 ? undefined : data[index][1];
-}
-
-/**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
-}
-
-/**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
-function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
-}
-
-// Add methods to `ListCache`.
-ListCache.prototype.clear = listCacheClear;
-ListCache.prototype['delete'] = listCacheDelete;
-ListCache.prototype.get = listCacheGet;
-ListCache.prototype.has = listCacheHas;
-ListCache.prototype.set = listCacheSet;
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapCacheGet(key) {
- return getMapData(this, key).get(key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapCacheHas(key) {
- return getMapData(this, key).has(key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
-function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
-}
-
-// Add methods to `MapCache`.
-MapCache.prototype.clear = mapCacheClear;
-MapCache.prototype['delete'] = mapCacheDelete;
-MapCache.prototype.get = mapCacheGet;
-MapCache.prototype.has = mapCacheHas;
-MapCache.prototype.set = mapCacheSet;
-
-/**
- * Creates a stack cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Stack(entries) {
- this.__data__ = new ListCache(entries);
-}
-
-/**
- * Removes all key-value entries from the stack.
- *
- * @private
- * @name clear
- * @memberOf Stack
- */
-function stackClear() {
- this.__data__ = new ListCache;
-}
-
-/**
- * Removes `key` and its value from the stack.
- *
- * @private
- * @name delete
- * @memberOf Stack
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function stackDelete(key) {
- return this.__data__['delete'](key);
-}
-
-/**
- * Gets the stack value for `key`.
- *
- * @private
- * @name get
- * @memberOf Stack
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function stackGet(key) {
- return this.__data__.get(key);
-}
-
-/**
- * Checks if a stack value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Stack
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function stackHas(key) {
- return this.__data__.has(key);
-}
-
-/**
- * Sets the stack `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Stack
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the stack cache instance.
- */
-function stackSet(key, value) {
- var cache = this.__data__;
- if (cache instanceof ListCache) {
- var pairs = cache.__data__;
- if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
- pairs.push([key, value]);
- return this;
- }
- cache = this.__data__ = new MapCache(pairs);
- }
- cache.set(key, value);
- return this;
-}
-
-// Add methods to `Stack`.
-Stack.prototype.clear = stackClear;
-Stack.prototype['delete'] = stackDelete;
-Stack.prototype.get = stackGet;
-Stack.prototype.has = stackHas;
-Stack.prototype.set = stackSet;
-
-/**
- * Creates an array of the enumerable property names of the array-like `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @param {boolean} inherited Specify returning inherited property names.
- * @returns {Array} Returns the array of property names.
- */
-function arrayLikeKeys(value, inherited) {
- // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
- // Safari 9 makes `arguments.length` enumerable in strict mode.
- var result = (isArray(value) || isArguments(value))
- ? baseTimes(value.length, String)
- : [];
-
- var length = result.length,
- skipIndexes = !!length;
-
- for (var key in value) {
- if ((inherited || hasOwnProperty.call(value, key)) &&
- !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
- result.push(key);
- }
- }
- return result;
-}
-
-/**
- * Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @private
- * @param {Object} object The object to modify.
- * @param {string} key The key of the property to assign.
- * @param {*} value The value to assign.
- */
-function assignValue(object, key, value) {
- var objValue = object[key];
- if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
- (value === undefined && !(key in object))) {
- object[key] = value;
- }
-}
-
-/**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of `_.assign` without support for multiple sources
- * or `customizer` functions.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @returns {Object} Returns `object`.
- */
-function baseAssign(object, source) {
- return object && copyObject(source, keys(source), object);
-}
-
-/**
- * The base implementation of `_.clone` and `_.cloneDeep` which tracks
- * traversed objects.
- *
- * @private
- * @param {*} value The value to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @param {boolean} [isFull] Specify a clone including symbols.
- * @param {Function} [customizer] The function to customize cloning.
- * @param {string} [key] The key of `value`.
- * @param {Object} [object] The parent object of `value`.
- * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
- * @returns {*} Returns the cloned value.
- */
-function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
- var result;
- if (customizer) {
- result = object ? customizer(value, key, object, stack) : customizer(value);
- }
- if (result !== undefined) {
- return result;
- }
- if (!isObject(value)) {
- return value;
- }
- var isArr = isArray(value);
- if (isArr) {
- result = initCloneArray(value);
- if (!isDeep) {
- return copyArray(value, result);
- }
- } else {
- var tag = getTag(value),
- isFunc = tag == funcTag || tag == genTag;
-
- if (isBuffer(value)) {
- return cloneBuffer(value, isDeep);
- }
- if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
- if (isHostObject(value)) {
- return object ? value : {};
- }
- result = initCloneObject(isFunc ? {} : value);
- if (!isDeep) {
- return copySymbols(value, baseAssign(result, value));
- }
- } else {
- if (!cloneableTags[tag]) {
- return object ? value : {};
- }
- result = initCloneByTag(value, tag, baseClone, isDeep);
- }
- }
- // Check for circular references and return its corresponding clone.
- stack || (stack = new Stack);
- var stacked = stack.get(value);
- if (stacked) {
- return stacked;
- }
- stack.set(value, result);
-
- if (!isArr) {
- var props = isFull ? getAllKeys(value) : keys(value);
- }
- arrayEach(props || value, function(subValue, key) {
- if (props) {
- key = subValue;
- subValue = value[key];
- }
- // Recursively populate clone (susceptible to call stack limits).
- assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
- });
- return result;
-}
-
-/**
- * The base implementation of `_.create` without support for assigning
- * properties to the created object.
- *
- * @private
- * @param {Object} prototype The object to inherit from.
- * @returns {Object} Returns the new object.
- */
-function baseCreate(proto) {
- return isObject(proto) ? objectCreate(proto) : {};
-}
-
-/**
- * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
- * `keysFunc` and `symbolsFunc` to get the enumerable property names and
- * symbols of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @param {Function} symbolsFunc The function to get the symbols of `object`.
- * @returns {Array} Returns the array of property names and symbols.
- */
-function baseGetAllKeys(object, keysFunc, symbolsFunc) {
- var result = keysFunc(object);
- return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
-}
-
-/**
- * The base implementation of `getTag`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-function baseGetTag(value) {
- return objectToString.call(value);
-}
-
-/**
- * The base implementation of `_.isNative` without bad shim checks.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function,
- * else `false`.
- */
-function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
-}
-
-/**
- * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
-function baseKeys(object) {
- if (!isPrototype(object)) {
- return nativeKeys(object);
- }
- var result = [];
- for (var key in Object(object)) {
- if (hasOwnProperty.call(object, key) && key != 'constructor') {
- result.push(key);
- }
- }
- return result;
-}
-
-/**
- * Creates a clone of `buffer`.
- *
- * @private
- * @param {Buffer} buffer The buffer to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Buffer} Returns the cloned buffer.
- */
-function cloneBuffer(buffer, isDeep) {
- if (isDeep) {
- return buffer.slice();
- }
- var result = new buffer.constructor(buffer.length);
- buffer.copy(result);
- return result;
-}
-
-/**
- * Creates a clone of `arrayBuffer`.
- *
- * @private
- * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
- * @returns {ArrayBuffer} Returns the cloned array buffer.
- */
-function cloneArrayBuffer(arrayBuffer) {
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
- new Uint8Array(result).set(new Uint8Array(arrayBuffer));
- return result;
-}
-
-/**
- * Creates a clone of `dataView`.
- *
- * @private
- * @param {Object} dataView The data view to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned data view.
- */
-function cloneDataView(dataView, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
- return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
-}
-
-/**
- * Creates a clone of `map`.
- *
- * @private
- * @param {Object} map The map to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned map.
- */
-function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
- return arrayReduce(array, addMapEntry, new map.constructor);
-}
-
-/**
- * Creates a clone of `regexp`.
- *
- * @private
- * @param {Object} regexp The regexp to clone.
- * @returns {Object} Returns the cloned regexp.
- */
-function cloneRegExp(regexp) {
- var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
- result.lastIndex = regexp.lastIndex;
- return result;
-}
-
-/**
- * Creates a clone of `set`.
- *
- * @private
- * @param {Object} set The set to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned set.
- */
-function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
- return arrayReduce(array, addSetEntry, new set.constructor);
-}
-
-/**
- * Creates a clone of the `symbol` object.
- *
- * @private
- * @param {Object} symbol The symbol object to clone.
- * @returns {Object} Returns the cloned symbol object.
- */
-function cloneSymbol(symbol) {
- return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
-}
-
-/**
- * Creates a clone of `typedArray`.
- *
- * @private
- * @param {Object} typedArray The typed array to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned typed array.
- */
-function cloneTypedArray(typedArray, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
-}
-
-/**
- * Copies the values of `source` to `array`.
- *
- * @private
- * @param {Array} source The array to copy values from.
- * @param {Array} [array=[]] The array to copy values to.
- * @returns {Array} Returns `array`.
- */
-function copyArray(source, array) {
- var index = -1,
- length = source.length;
-
- array || (array = Array(length));
- while (++index < length) {
- array[index] = source[index];
- }
- return array;
-}
-
-/**
- * Copies properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy properties from.
- * @param {Array} props The property identifiers to copy.
- * @param {Object} [object={}] The object to copy properties to.
- * @param {Function} [customizer] The function to customize copied values.
- * @returns {Object} Returns `object`.
- */
-function copyObject(source, props, object, customizer) {
- object || (object = {});
-
- var index = -1,
- length = props.length;
-
- while (++index < length) {
- var key = props[index];
-
- var newValue = customizer
- ? customizer(object[key], source[key], key, object, source)
- : undefined;
-
- assignValue(object, key, newValue === undefined ? source[key] : newValue);
- }
- return object;
-}
-
-/**
- * Copies own symbol properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy symbols from.
- * @param {Object} [object={}] The object to copy symbols to.
- * @returns {Object} Returns `object`.
- */
-function copySymbols(source, object) {
- return copyObject(source, getSymbols(source), object);
-}
-
-/**
- * Creates an array of own enumerable property names and symbols of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names and symbols.
- */
-function getAllKeys(object) {
- return baseGetAllKeys(object, keys, getSymbols);
-}
-
-/**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
-function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
-}
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : undefined;
-}
-
-/**
- * Creates an array of the own enumerable symbol properties of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of symbols.
- */
-var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
-
-/**
- * Gets the `toStringTag` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
-var getTag = baseGetTag;
-
-// Fallback for data views, maps, sets, and weak maps in IE 11,
-// for data views in Edge < 14, and promises in Node.js.
-if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
- (Map && getTag(new Map) != mapTag) ||
- (Promise && getTag(Promise.resolve()) != promiseTag) ||
- (Set && getTag(new Set) != setTag) ||
- (WeakMap && getTag(new WeakMap) != weakMapTag)) {
- getTag = function(value) {
- var result = objectToString.call(value),
- Ctor = result == objectTag ? value.constructor : undefined,
- ctorString = Ctor ? toSource(Ctor) : undefined;
-
- if (ctorString) {
- switch (ctorString) {
- case dataViewCtorString: return dataViewTag;
- case mapCtorString: return mapTag;
- case promiseCtorString: return promiseTag;
- case setCtorString: return setTag;
- case weakMapCtorString: return weakMapTag;
- }
- }
- return result;
- };
-}
-
-/**
- * Initializes an array clone.
- *
- * @private
- * @param {Array} array The array to clone.
- * @returns {Array} Returns the initialized clone.
- */
-function initCloneArray(array) {
- var length = array.length,
- result = array.constructor(length);
-
- // Add properties assigned by `RegExp#exec`.
- if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
- result.index = array.index;
- result.input = array.input;
- }
- return result;
-}
-
-/**
- * Initializes an object clone.
- *
- * @private
- * @param {Object} object The object to clone.
- * @returns {Object} Returns the initialized clone.
- */
-function initCloneObject(object) {
- return (typeof object.constructor == 'function' && !isPrototype(object))
- ? baseCreate(getPrototype(object))
- : {};
-}
-
-/**
- * Initializes an object clone based on its `toStringTag`.
- *
- * **Note:** This function only supports cloning values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {string} tag The `toStringTag` of the object to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the initialized clone.
- */
-function initCloneByTag(object, tag, cloneFunc, isDeep) {
- var Ctor = object.constructor;
- switch (tag) {
- case arrayBufferTag:
- return cloneArrayBuffer(object);
-
- case boolTag:
- case dateTag:
- return new Ctor(+object);
-
- case dataViewTag:
- return cloneDataView(object, isDeep);
-
- case float32Tag: case float64Tag:
- case int8Tag: case int16Tag: case int32Tag:
- case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
- return cloneTypedArray(object, isDeep);
-
- case mapTag:
- return cloneMap(object, isDeep, cloneFunc);
-
- case numberTag:
- case stringTag:
- return new Ctor(object);
-
- case regexpTag:
- return cloneRegExp(object);
-
- case setTag:
- return cloneSet(object, isDeep, cloneFunc);
-
- case symbolTag:
- return cloneSymbol(object);
- }
-}
-
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length &&
- (typeof value == 'number' || reIsUint.test(value)) &&
- (value > -1 && value % 1 == 0 && value < length);
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
-}
-
-/**
- * Checks if `func` has its source masked.
- *
- * @private
- * @param {Function} func The function to check.
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
- */
-function isMasked(func) {
- return !!maskSrcKey && (maskSrcKey in func);
-}
-
-/**
- * Checks if `value` is likely a prototype object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
- */
-function isPrototype(value) {
- var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
-
- return value === proto;
-}
-
-/**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
-function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
-}
-
-/**
- * This method is like `_.clone` except that it recursively clones `value`.
- *
- * @static
- * @memberOf _
- * @since 1.0.0
- * @category Lang
- * @param {*} value The value to recursively clone.
- * @returns {*} Returns the deep cloned value.
- * @see _.clone
- * @example
- *
- * var objects = [{ 'a': 1 }, { 'b': 2 }];
- *
- * var deep = _.cloneDeep(objects);
- * console.log(deep[0] === objects[0]);
- * // => false
- */
-function cloneDeep(value) {
- return baseClone(value, true, true);
-}
-
-/**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'a': 1 };
- * var other = { 'a': 1 };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is likely an `arguments` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an `arguments` object,
- * else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
-}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(document.body.children);
- * // => false
- *
- * _.isArray('abc');
- * // => false
- *
- * _.isArray(_.noop);
- * // => false
- */
-var isArray = Array.isArray;
-
-/**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
-function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
-}
-
-/**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object,
- * else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
-function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
-}
-
-/**
- * Checks if `value` is a buffer.
- *
- * @static
- * @memberOf _
- * @since 4.3.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
- * @example
- *
- * _.isBuffer(new Buffer(2));
- * // => true
- *
- * _.isBuffer(new Uint8Array(2));
- * // => false
- */
-var isBuffer = nativeIsBuffer || stubFalse;
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8-9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This method is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
-function keys(object) {
- return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
-}
-
-/**
- * This method returns a new empty array.
- *
- * @static
- * @memberOf _
- * @since 4.13.0
- * @category Util
- * @returns {Array} Returns the new empty array.
- * @example
- *
- * var arrays = _.times(2, _.stubArray);
- *
- * console.log(arrays);
- * // => [[], []]
- *
- * console.log(arrays[0] === arrays[1]);
- * // => false
- */
-function stubArray() {
- return [];
-}
-
-/**
- * This method returns `false`.
- *
- * @static
- * @memberOf _
- * @since 4.13.0
- * @category Util
- * @returns {boolean} Returns `false`.
- * @example
- *
- * _.times(2, _.stubFalse);
- * // => [false, false]
- */
-function stubFalse() {
- return false;
-}
-
-module.exports = cloneDeep;
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],134:[function(require,module,exports){
-/**
- * lodash 3.0.3 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var arrayEach = require('lodash._arrayeach'),
- baseEach = require('lodash._baseeach'),
- bindCallback = require('lodash._bindcallback'),
- isArray = require('lodash.isarray');
-
-/**
- * Creates a function for `_.forEach` or `_.forEachRight`.
- *
- * @private
- * @param {Function} arrayFunc The function to iterate over an array.
- * @param {Function} eachFunc The function to iterate over a collection.
- * @returns {Function} Returns the new each function.
- */
-function createForEach(arrayFunc, eachFunc) {
- return function(collection, iteratee, thisArg) {
- return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
- ? arrayFunc(collection, iteratee)
- : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
- };
-}
-
-/**
- * Iterates over elements of `collection` invoking `iteratee` for each element.
- * The `iteratee` is bound to `thisArg` and invoked with three arguments:
- * (value, index|key, collection). Iteratee functions may exit iteration early
- * by explicitly returning `false`.
- *
- * **Note:** As with other "Collections" methods, objects with a "length" property
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
- * may be used for object iteration.
- *
- * @static
- * @memberOf _
- * @alias each
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @returns {Array|Object|string} Returns `collection`.
- * @example
- *
- * _([1, 2]).forEach(function(n) {
- * console.log(n);
- * }).value();
- * // => logs each value from left to right and returns the array
- *
- * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
- * console.log(n, key);
- * });
- * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
- */
-var forEach = createForEach(arrayEach, baseEach);
-
-module.exports = forEach;
-
-},{"lodash._arrayeach":124,"lodash._baseeach":127,"lodash._bindcallback":128,"lodash.isarray":136}],135:[function(require,module,exports){
-/**
- * lodash (Custom Build) <https://lodash.com/>
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Built-in value references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/**
- * Checks if `value` is likely an `arguments` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an `arguments` object,
- * else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
-}
-
-/**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
-function isArrayLike(value) {
- return value != null && isLength(value.length) && !isFunction(value);
-}
-
-/**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object,
- * else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
-function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8-9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This method is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-module.exports = isArguments;
-
-},{}],136:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var arrayTag = '[object Array]',
- funcTag = '[object Function]';
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeIsArray = getNative(Array, 'isArray');
-
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(function() { return arguments; }());
- * // => false
- */
-var isArray = nativeIsArray || function(value) {
- return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
-};
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
-}
-
-module.exports = isArray;
-
-},{}],137:[function(require,module,exports){
-/**
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var getNative = require('lodash._getnative'),
- isArguments = require('lodash.isarguments'),
- isArray = require('lodash.isarray');
-
-/** Used to detect unsigned integer values. */
-var reIsUint = /^\d+$/;
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeKeys = getNative(Object, 'keys');
-
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
-
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return value > -1 && value % 1 == 0 && value < length;
-}
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * A fallback implementation of `Object.keys` which creates an array of the
- * own enumerable property names of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
-function shimKeys(object) {
- var props = keysIn(object),
- propsLength = props.length,
- length = propsLength && object.length;
-
- var allowIndexes = !!length && isLength(length) &&
- (isArray(object) || isArguments(object));
-
- var index = -1,
- result = [];
-
- while (++index < propsLength) {
- var key = props[index];
- if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
- result.push(key);
- }
- }
- return result;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
-var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? undefined : object.constructor;
- if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
- (typeof object != 'function' && isArrayLike(object))) {
- return shimKeys(object);
- }
- return isObject(object) ? nativeKeys(object) : [];
-};
-
-/**
- * Creates an array of the own and inherited enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keysIn(new Foo);
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
- */
-function keysIn(object) {
- if (object == null) {
- return [];
- }
- if (!isObject(object)) {
- object = Object(object);
- }
- var length = object.length;
- length = (length && isLength(length) &&
- (isArray(object) || isArguments(object)) && length) || 0;
-
- var Ctor = object.constructor,
- index = -1,
- isProto = typeof Ctor == 'function' && Ctor.prototype === object,
- result = Array(length),
- skipIndexes = length > 0;
-
- while (++index < length) {
- result[index] = (index + '');
- }
- for (var key in object) {
- if (!(skipIndexes && isIndex(key, length)) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
- }
- }
- return result;
-}
-
-module.exports = keys;
-
-},{"lodash._getnative":130,"lodash.isarguments":135,"lodash.isarray":136}],138:[function(require,module,exports){
-/**
- * lodash 3.6.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** Used as the `TypeError` message for "Functions" methods. */
-var FUNC_ERROR_TEXT = 'Expected a function';
-
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeMax = Math.max;
-
-/**
- * Creates a function that invokes `func` with the `this` binding of the
- * created function and arguments from `start` and beyond provided as an array.
- *
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
- *
- * @static
- * @memberOf _
- * @category Function
- * @param {Function} func The function to apply a rest parameter to.
- * @param {number} [start=func.length-1] The start position of the rest parameter.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var say = _.restParam(function(what, names) {
- * return what + ' ' + _.initial(names).join(', ') +
- * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
- * });
- *
- * say('hello', 'fred', 'barney', 'pebbles');
- * // => 'hello fred, barney, & pebbles'
- */
-function restParam(func, start) {
- if (typeof func != 'function') {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);
- return function() {
- var args = arguments,
- index = -1,
- length = nativeMax(args.length - start, 0),
- rest = Array(length);
-
- while (++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);
- index = -1;
- while (++index < start) {
- otherArgs[index] = args[index];
- }
- otherArgs[start] = rest;
- return func.apply(this, otherArgs);
- };
-}
-
-module.exports = restParam;
-
-},{}],139:[function(require,module,exports){
-'use strict'
-
-var parse = require('./lib/parse')
-var Parser = require('./lib/Parser')
-var escape = require('./lib/escape')
-var Element = require('./lib/Element')
-var equal = require('./lib/equal')
-var createElement = require('./lib/createElement')
-var tag = require('./lib/tag')
-var tagString = require('./lib/tagString')
-var is = require('./lib/is')
-
-exports = module.exports = tag
-
-exports.Element = Element
-
-exports.equal = equal.equal
-exports.nameEqual = equal.name
-exports.attrsEqual = equal.attrs
-exports.childrenEqual = equal.children
-
-exports.isNode = is.isNode
-exports.isElement = is.isElement
-exports.isText = is.isText
-
-exports.createElement = createElement
-
-exports.escapeXML = escape.escapeXML
-exports.unescapeXML = escape.unescapeXML
-exports.escapeXMLText = escape.escapeXMLText
-exports.unescapeXMLText = escape.unescapeXMLText
-
-exports.Parser = Parser
-exports.parse = parse
-
-exports.tag = tag
-exports.tagString = tagString
-
-},{"./lib/Element":141,"./lib/Parser":142,"./lib/createElement":144,"./lib/equal":145,"./lib/escape":146,"./lib/is":147,"./lib/parse":148,"./lib/tag":150,"./lib/tagString":151}],140:[function(require,module,exports){
-'use strict'
-
-var inherits = require('inherits')
-var Element = require('./Element')
-
-function DOMElement (name, attrs) {
- Element.call(this, name, attrs)
-
- this.nodeType = 1
- this.nodeName = this.localName
-}
-
-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) {
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- return this.getAttr(['xml', name].join(':'))
- }
- return this.getAttr(name, ns)
-}
-
-DOMElement.prototype.setAttributeNS = function (ns, name, value) {
- var prefix
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (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 (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (prefix) {
- this.attr([prefix, name].join(':'), null)
- }
-}
-
-DOMElement.prototype.appendChild = function (el) {
- this.cnode(el)
-}
-
-DOMElement.prototype.removeChild = function (el) {
- this.remove(el)
-}
-
-DOMElement.createElement = function (name, attrs /*, child1, child2, ...*/) {
- var el = new DOMElement(name, attrs)
-
- var children = Array.prototype.slice.call(arguments, 2)
-
- children.forEach(function (child) {
- el.appendChild(child)
- })
- return el
-}
-
-module.exports = DOMElement
-
-},{"./Element":141,"inherits":45}],141:[function(require,module,exports){
-'use strict'
-
-var escape = require('./escape')
-var escapeXML = escape.escapeXML
-var escapeXMLText = escape.escapeXMLText
-
-var equality = require('./equal')
-var equal = equality.equal
-var nameEqual = equality.name
-var attrsEqual = equality.attrs
-var childrenEqual = equality.children
-
-var clone = require('./clone')
-
-/**
- * Element
- *
- * Attributes are in the element.attrs object. Children is a list of
- * either other Elements or Strings for text content.
- **/
-function Element (name, attrs) {
- this.name = name
- this.parent = null
- this.children = []
- this.attrs = {}
- this.setAttrs(attrs)
-}
-
-/* Accessors */
-
-/**
- * if (element.is('message', 'jabber:client')) ...
- **/
-Element.prototype.is = function (name, xmlns) {
- return (this.getName() === name) &&
- (!xmlns || (this.getNS() === xmlns))
-}
-
-/* without prefix */
-Element.prototype.getName = function () {
- if (this.name.indexOf(':') >= 0) {
- return this.name.substr(this.name.indexOf(':') + 1)
- } else {
- return this.name
- }
-}
-
-/**
- * retrieves the namespace of the current element, upwards recursively
- **/
-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()
-}
-
-/**
- * find the namespace to the given prefix, upwards recursively
- **/
-Element.prototype.findNS = function (prefix) {
- if (!prefix) {
- /* default namespace */
- if (this.attrs.xmlns) {
- return this.attrs.xmlns
- } else if (this.parent) {
- return this.parent.findNS()
- }
- } else {
- /* prefixed namespace */
- var attr = 'xmlns:' + prefix
- if (this.attrs[attr]) {
- return this.attrs[attr]
- } else if (this.parent) {
- return this.parent.findNS(prefix)
- }
- }
-}
-
-/**
- * Recursiverly gets all xmlns defined, in the form of {url:prefix}
- **/
-Element.prototype.getXmlns = function () {
- var namespaces = {}
-
- if (this.parent) {
- namespaces = this.parent.getXmlns()
- }
-
- for (var attr in this.attrs) {
- var m = attr.match('xmlns:?(.*)')
- if (this.attrs.hasOwnProperty(attr) && m) {
- namespaces[this.attrs[attr]] = m[1]
- }
- }
- return namespaces
-}
-
-Element.prototype.setAttrs = function (attrs) {
- if (typeof attrs === 'string') {
- this.attrs.xmlns = attrs
- } else if (attrs) {
- Object.keys(attrs).forEach(function (key) {
- this.attrs[key] = attrs[key]
- }, this)
- }
-}
-
-/**
- * xmlns can be null, returns the matching attribute.
- **/
-Element.prototype.getAttr = function (name, xmlns) {
- if (!xmlns) {
- return this.attrs[name]
- }
-
- var namespaces = this.getXmlns()
-
- if (!namespaces[xmlns]) {
- return null
- }
-
- return this.attrs[[namespaces[xmlns], name].join(':')]
-}
-
-/**
- * xmlns can be null
- **/
-Element.prototype.getChild = function (name, xmlns) {
- return this.getChildren(name, xmlns)[0]
-}
-
-/**
- * xmlns can be null
- **/
-Element.prototype.getChildren = function (name, xmlns) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.getName &&
- (child.getName() === name) &&
- (!xmlns || (child.getNS() === xmlns))) {
- result.push(child)
- }
- }
- return result
-}
-
-/**
- * xmlns and recursive can be null
- **/
-Element.prototype.getChildByAttr = function (attr, val, xmlns, recursive) {
- return this.getChildrenByAttr(attr, val, xmlns, recursive)[0]
-}
-
-/**
- * xmlns and recursive can be null
- **/
-Element.prototype.getChildrenByAttr = function (attr, val, xmlns, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.attrs &&
- (child.attrs[attr] === val) &&
- (!xmlns || (child.getNS() === xmlns))) {
- result.push(child)
- }
- if (recursive && child.getChildrenByAttr) {
- result.push(child.getChildrenByAttr(attr, val, xmlns, true))
- }
- }
- if (recursive) {
- result = [].concat.apply([], result)
- }
- return result
-}
-
-Element.prototype.getChildrenByFilter = function (filter, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (filter(child)) {
- result.push(child)
- }
- if (recursive && child.getChildrenByFilter) {
- result.push(child.getChildrenByFilter(filter, true))
- }
- }
- if (recursive) {
- result = [].concat.apply([], result)
- }
- return result
-}
-
-Element.prototype.getText = function () {
- var text = ''
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if ((typeof child === 'string') || (typeof child === 'number')) {
- text += child
- }
- }
- return text
-}
-
-Element.prototype.getChildText = function (name, xmlns) {
- var child = this.getChild(name, xmlns)
- return child ? child.getText() : null
-}
-
-/**
- * Return all direct descendents that are Elements.
- * This differs from `getChildren` in that it will exclude text nodes,
- * processing instructions, etc.
- */
-Element.prototype.getChildElements = function () {
- return this.getChildrenByFilter(function (child) {
- return child instanceof Element
- })
-}
-
-/* Builder */
-
-/** returns uppermost parent */
-Element.prototype.root = function () {
- if (this.parent) {
- return this.parent.root()
- }
- return this
-}
-Element.prototype.tree = Element.prototype.root
-
-/** just parent or itself */
-Element.prototype.up = function () {
- if (this.parent) {
- return this.parent
- }
- return this
-}
-
-/** create child node and return it */
-Element.prototype.c = function (name, attrs) {
- return this.cnode(new Element(name, attrs))
-}
-
-Element.prototype.cnode = function (child) {
- this.children.push(child)
- if (typeof child === 'object') {
- child.parent = this
- }
- return child
-}
-
-/** add text node and return element */
-Element.prototype.t = function (text) {
- this.children.push(text)
- return this
-}
-
-/* Manipulation */
-
-/**
- * Either:
- * el.remove(childEl)
- * el.remove('author', 'urn:...')
- */
-Element.prototype.remove = function (el, xmlns) {
- var filter
- if (typeof el === 'string') {
- /* 1st parameter is tag name */
- filter = function (child) {
- return !(child.is &&
- child.is(el, xmlns))
- }
- } else {
- /* 1st parameter is element */
- filter = function (child) {
- return child !== el
- }
- }
-
- this.children = this.children.filter(filter)
-
- return this
-}
-
-Element.prototype.clone = function () {
- return clone(this)
-}
-
-Element.prototype.text = function (val) {
- if (val && this.children.length === 1) {
- this.children[0] = val
- return this
- }
- return this.getText()
-}
-
-Element.prototype.attr = function (attr, val) {
- if (typeof val !== 'undefined' || val === null) {
- if (!this.attrs) {
- this.attrs = {}
- }
- this.attrs[attr] = val
- return this
- }
- return this.attrs[attr]
-}
-
-/* Serialization */
-
-Element.prototype.toString = function () {
- var s = ''
- this.write(function (c) {
- s += c
- })
- return 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]
- /* Skip null/undefined */
- if (child || (child === 0)) {
- if (child.write) {
- child.write(writer)
- } else if (typeof child === 'string') {
- writer(escapeXMLText(child))
- } else if (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]
- if (v != null) { // === null || undefined
- writer(' ')
- writer(k)
- writer('="')
- if (typeof v !== 'string') {
- v = v.toString()
- }
- writer(escapeXML(v))
- writer('"')
- }
- }
- if (this.children.length === 0) {
- writer('/>')
- } else {
- this._addChildren(writer)
- }
-}
-
-Element.prototype.nameEquals = function (el) {
- return nameEqual(this, el)
-}
-
-Element.prototype.attrsEquals = function (el) {
- return attrsEqual(this, el)
-}
-
-Element.prototype.childrenEquals = function (el) {
- return childrenEqual(this, el)
-}
-
-Element.prototype.equals = function (el) {
- return equal(this, el)
-}
-
-module.exports = Element
-
-},{"./clone":143,"./equal":145,"./escape":146}],142:[function(require,module,exports){
-'use strict'
-
-var EventEmitter = require('events').EventEmitter
-var inherits = require('inherits')
-var Element = require('./Element')
-var LtxParser = require('./parsers/ltx')
-
-var Parser = function (options) {
- EventEmitter.call(this)
-
- var ParserInterface = this.Parser = (options && options.Parser) || this.DefaultParser
- var ElementInterface = this.Element = (options && options.Element) || this.DefaultElement
-
- this.parser = new ParserInterface()
-
- var el
- var self = this
- this.parser.on('startElement', function (name, attrs) {
- var child = new ElementInterface(name, attrs)
- if (!el) {
- el = child
- } else {
- el = el.cnode(child)
- }
- })
- this.parser.on('endElement', function (name) {
- if (!el) {
- /* Err */
- } else if (name === el.name) {
- if (el.parent) {
- el = el.parent
- } else if (!self.tree) {
- self.tree = el
- el = undefined
- }
- }
- })
- this.parser.on('text', function (str) {
- if (el) {
- el.t(str)
- }
- })
- this.parser.on('error', function (e) {
- self.error = e
- self.emit('error', e)
- })
-}
-
-inherits(Parser, EventEmitter)
-
-Parser.prototype.DefaultParser = LtxParser
-
-Parser.prototype.DefaultElement = Element
-
-Parser.prototype.write = function (data) {
- this.parser.write(data)
-}
-
-Parser.prototype.end = function (data) {
- this.parser.end(data)
-
- if (!this.error) {
- if (this.tree) {
- this.emit('tree', this.tree)
- } else {
- this.emit('error', new Error('Incomplete document'))
- }
- }
-}
-
-module.exports = Parser
-
-},{"./Element":141,"./parsers/ltx":149,"events":27,"inherits":45}],143:[function(require,module,exports){
-'use strict'
-
-module.exports = function clone (el) {
- var clone = new el.constructor(el.name, el.attrs)
- for (var i = 0; i < el.children.length; i++) {
- var child = el.children[i]
- clone.cnode(child.clone ? child.clone() : child)
- }
- return clone
-}
-
-},{}],144:[function(require,module,exports){
-'use strict'
-
-var Element = require('./Element')
-
-/**
- * JSX compatible API, use this function as pragma
- * https://facebook.github.io/jsx/
- *
- * @param {string} name name of the element
- * @param {object} attrs object of attribute key/value pairs
- * @return {Element} Element
- */
-module.exports = function createElement (name, attrs /*, child1, child2, ...*/) {
- var el = new Element(name, attrs)
-
- for (var i = 2; i < arguments.length; i++) {
- var child = arguments[i]
- if (child) el.cnode(child)
- }
-
- return el
-}
-
-},{"./Element":141}],145:[function(require,module,exports){
-'use strict'
-
-function nameEqual (a, b) {
- return a.name === b.name
-}
-
-function attrsEqual (a, b) {
- var attrs = a.attrs
- var keys = Object.keys(attrs)
- var length = keys.length
- if (length !== Object.keys(b.attrs).length) return false
- for (var i = 0, l = length; i < l; i++) {
- var key = keys[i]
- var value = attrs[key]
- if (value == null || b.attrs[key] == null) { // === null || undefined
- if (value !== b.attrs[key]) return false
- } else if (value.toString() !== b.attrs[key].toString()) {
- return false
- }
- }
- return true
-}
-
-function childrenEqual (a, b) {
- var children = a.children
- var length = children.length
- if (length !== b.children.length) return false
- for (var i = 0, l = length; i < l; i++) {
- var child = children[i]
- if (typeof child === 'string') {
- if (child !== b.children[i]) return false
- } else {
- if (!child.equals(b.children[i])) return false
- }
- }
- return true
-}
-
-function equal (a, b) {
- if (!nameEqual(a, b)) return false
- if (!attrsEqual(a, b)) return false
- if (!childrenEqual(a, b)) return false
- return true
-}
-
-module.exports.name = nameEqual
-module.exports.attrs = attrsEqual
-module.exports.children = childrenEqual
-module.exports.equal = equal
-
-},{}],146:[function(require,module,exports){
-'use strict'
-
-var escapeXMLTable = {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- '\'': '&apos;'
-}
-
-function escapeXMLReplace (match) {
- return escapeXMLTable[match]
-}
-
-var unescapeXMLTable = {
- '&amp;': '&',
- '&#38;': '&',
- '&lt;': '<',
- '&#60;': '<',
- '&gt;': '>',
- '&#62;': '>',
- '&quot;': '"',
- '&#34;': '"',
- '&apos;': "'",
- '&#39;': "'"
-}
-
-function unescapeXMLReplace (match) {
- return unescapeXMLTable[match]
-}
-
-exports.escapeXML = function escapeXML (s) {
- return s.replace(/&|<|>|"|'/g, escapeXMLReplace)
-}
-
-exports.unescapeXML = function unescapeXML (s) {
- return s.replace(/&(amp|#38|lt|#60|gt|#62|quot|#34|apos|#39);/g, unescapeXMLReplace)
-}
-
-exports.escapeXMLText = function escapeXMLText (s) {
- return s.replace(/&|<|>/g, escapeXMLReplace)
-}
-
-exports.unescapeXMLText = function unescapeXMLText (s) {
- return s.replace(/&(amp|#38|lt|#60|gt|#62);/g, unescapeXMLReplace)
-}
-
-},{}],147:[function(require,module,exports){
-'use strict'
-
-var Element = require('./Element')
-
-module.exports.isNode = function is (el) {
- return el instanceof Element || typeof el === 'string'
-}
-
-module.exports.isElement = function isElement (el) {
- return el instanceof Element
-}
-
-module.exports.isText = function isText (el) {
- return typeof el === 'string'
-}
-
-},{"./Element":141}],148:[function(require,module,exports){
-'use strict'
-
-var Parser = require('./Parser')
-
-module.exports = function parse (data, options) {
- var p
- if (typeof options === 'function') {
- p = new options() // eslint-disable-line
- } else {
- p = new Parser(options)
- }
-
- var result = null
- var error = null
-
- p.on('tree', function (tree) {
- result = tree
- })
- p.on('error', function (e) {
- error = e
- })
-
- p.write(data)
- p.end()
-
- if (error) {
- throw error
- } else {
- return result
- }
-}
-
-},{"./Parser":142}],149:[function(require,module,exports){
-'use strict'
-
-var inherits = require('inherits')
-var EventEmitter = require('events').EventEmitter
-var unescapeXML = require('../escape').unescapeXML
-
-var STATE_TEXT = 0
-var STATE_IGNORE_TAG = 1
-var STATE_TAG_NAME = 2
-var STATE_TAG = 3
-var STATE_ATTR_NAME = 4
-var STATE_ATTR_EQ = 5
-var STATE_ATTR_QUOT = 6
-var STATE_ATTR_VALUE = 7
-
-var SaxLtx = module.exports = function SaxLtx () {
- EventEmitter.call(this)
-
- var state = STATE_TEXT
- var remainder
- var tagName
- var attrs
- var endTag
- var selfClosing
- var attrQuote
- var recordStart = 0
- var attrName
-
- this._handleTagOpening = function (endTag, tagName, attrs) {
- if (!endTag) {
- this.emit('startElement', tagName, attrs)
- if (selfClosing) {
- this.emit('endElement', tagName)
- }
- } else {
- this.emit('endElement', tagName)
- }
- }
-
- this.write = function (data) {
- if (typeof data !== 'string') {
- data = data.toString()
- }
- var pos = 0
-
- /* Anything from previous write()? */
- if (remainder) {
- data = remainder + data
- pos += remainder.length
- remainder = null
- }
-
- function endRecording () {
- if (typeof recordStart === 'number') {
- var recorded = data.slice(recordStart, pos)
- recordStart = undefined
- return recorded
- }
- }
-
- for (; pos < data.length; pos++) {
- var c = data.charCodeAt(pos)
- // console.log("state", state, "c", c, data[pos])
- switch (state) {
- case STATE_TEXT:
- if (c === 60 /* < */) {
- var text = endRecording()
- if (text) {
- this.emit('text', unescapeXML(text))
- }
- state = STATE_TAG_NAME
- recordStart = pos + 1
- attrs = {}
- }
- break
- case STATE_TAG_NAME:
- if (c === 47 /* / */ && recordStart === pos) {
- recordStart = pos + 1
- endTag = true
- } else if (c === 33 /* ! */ || c === 63 /* ? */) {
- recordStart = undefined
- state = STATE_IGNORE_TAG
- } else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
- tagName = endRecording()
- pos--
- state = STATE_TAG
- }
- break
- case STATE_IGNORE_TAG:
- if (c === 62 /* > */) {
- state = STATE_TEXT
- }
- break
- case STATE_TAG:
- if (c === 62 /* > */) {
- this._handleTagOpening(endTag, tagName, attrs)
- tagName = undefined
- attrs = undefined
- endTag = undefined
- selfClosing = undefined
- state = STATE_TEXT
- recordStart = pos + 1
- } else if (c === 47 /* / */) {
- selfClosing = true
- } else if (c > 32) {
- recordStart = pos
- state = STATE_ATTR_NAME
- }
- break
- case STATE_ATTR_NAME:
- if (c <= 32 || c === 61 /* = */) {
- attrName = endRecording()
- pos--
- state = STATE_ATTR_EQ
- }
- break
- case STATE_ATTR_EQ:
- if (c === 61 /* = */) {
- state = STATE_ATTR_QUOT
- }
- break
- case STATE_ATTR_QUOT:
- if (c === 34 /* " */ || c === 39 /* ' */) {
- 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 = undefined
- state = STATE_TAG
- }
- break
- }
- }
-
- if (typeof recordStart === 'number' &&
- recordStart <= data.length) {
- remainder = data.slice(recordStart)
- recordStart = 0
- }
- }
- /*
- var origEmit = this.emit
- this.emit = function() {
- console.log('ltx', arguments)
- origEmit.apply(this, arguments)
- }
- */
-}
-inherits(SaxLtx, EventEmitter)
-
-SaxLtx.prototype.end = function (data) {
- if (data) {
- this.write(data)
- }
-
- /* Uh, yeah */
- this.write = function () {}
-}
-
-},{"../escape":146,"events":27,"inherits":45}],150:[function(require,module,exports){
-'use strict'
-
-var tagString = require('./tagString')
-var parse = require('./parse')
-
-module.exports = function tag (/* [literals], ...substitutions */) {
- return parse(tagString.apply(null, arguments))
-}
-
-},{"./parse":148,"./tagString":151}],151:[function(require,module,exports){
-'use strict'
-
-var escape = require('./escape').escapeXML
-
-module.exports = function tagString (/* [literals], ...substitutions */) {
- var literals = arguments[0]
-
- var str = ''
-
- for (var i = 1; i < arguments.length; i++) {
- str += literals[i - 1]
- str += escape(arguments[i])
- }
- str += literals[literals.length - 1]
-
- return str
-}
-
-},{"./escape":146}],152:[function(require,module,exports){
-(function (process){
-'use strict';
-
-if (!process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = nextTick;
-} else {
- module.exports = process.nextTick;
-}
-
-function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
-}
-
-}).call(this,require('_process'))
-},{"_process":153}],153:[function(require,module,exports){
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things. But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals. It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
-}
-(function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
-} ())
-function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
-
-
-}
-function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
-}
-
-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));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
-}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-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; };
-
-},{}],154:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/punycode v1.4.1 by @mathias */
-;(function(root) {
-
- /** Detect free variables */
- var freeExports = typeof exports == 'object' && exports &&
- !exports.nodeType && exports;
- var freeModule = typeof module == 'object' && module &&
- !module.nodeType && module;
- var freeGlobal = typeof global == 'object' && global;
- if (
- freeGlobal.global === freeGlobal ||
- freeGlobal.window === freeGlobal ||
- freeGlobal.self === freeGlobal
- ) {
- root = freeGlobal;
- }
-
- /**
- * The `punycode` object.
- * @name punycode
- * @type Object
- */
- var punycode,
-
- /** Highest positive signed 32-bit float value */
- maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
-
- /** Bootstring parameters */
- base = 36,
- tMin = 1,
- tMax = 26,
- skew = 38,
- damp = 700,
- initialBias = 72,
- initialN = 128, // 0x80
- delimiter = '-', // '\x2D'
-
- /** Regular expressions */
- regexPunycode = /^xn--/,
- regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
- regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
-
- /** Error messages */
- errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
- },
-
- /** Convenience shortcuts */
- baseMinusTMin = base - tMin,
- floor = Math.floor,
- stringFromCharCode = String.fromCharCode,
-
- /** Temporary variable */
- key;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
- function error(type) {
- throw new RangeError(errors[type]);
- }
-
- /**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
- function map(array, fn) {
- var length = array.length;
- var result = [];
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
- }
-
- /**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
- function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
- }
-
- /**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
- function ucs2decode(string) {
- var output = [],
- counter = 0,
- length = string.length,
- value,
- extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // high surrogate, and there is a next character
- extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // unmatched surrogate; only append this code unit, in case the next
- // code unit is the high surrogate of a surrogate pair
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- }
-
- /**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
- function ucs2encode(array) {
- return map(array, function(value) {
- var output = '';
- if (value > 0xFFFF) {
- value -= 0x10000;
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
- value = 0xDC00 | value & 0x3FF;
- }
- output += stringFromCharCode(value);
- return output;
- }).join('');
- }
-
- /**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
- function basicToDigit(codePoint) {
- if (codePoint - 48 < 10) {
- return codePoint - 22;
- }
- if (codePoint - 65 < 26) {
- return codePoint - 65;
- }
- if (codePoint - 97 < 26) {
- return codePoint - 97;
- }
- return base;
- }
-
- /**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
- function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
- }
-
- /**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
- function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
- }
-
- /**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
- function decode(input) {
- // Don't use UCS-2
- var output = [],
- inputLength = input.length,
- out,
- i = 0,
- n = initialN,
- bias = initialBias,
- basic,
- j,
- index,
- oldi,
- w,
- k,
- digit,
- t,
- /** Cached calculation results */
- baseMinusT;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output
- output.splice(i++, 0, n);
-
- }
-
- return ucs2encode(output);
- }
-
- /**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
- function encode(input) {
- var n,
- delta,
- handledCPCount,
- basicLength,
- bias,
- j,
- m,
- q,
- k,
- t,
- currentValue,
- output = [],
- /** `inputLength` will hold the number of code points in `input`. */
- inputLength,
- /** Cached calculation results */
- handledCPCountPlusOne,
- baseMinusT,
- qMinusT;
-
- // Convert the input in UCS-2 to Unicode
- input = ucs2decode(input);
-
- // Cache the length
- inputLength = input.length;
-
- // Initialize the state
- n = initialN;
- delta = 0;
- bias = initialBias;
-
- // Handle the basic code points
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- handledCPCount = basicLength = output.length;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string - if it is not empty - with a delimiter
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- for (m = maxInt, j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow
- handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
-
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
-
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer
- for (q = delta, k = base; /* no condition */; k += base) {
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- qMinusT = q - t;
- baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
- }
-
- /**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
- function toUnicode(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
- }
-
- /**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
- function toASCII(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Define the public API */
- punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '1.4.1',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
- };
-
- /** Expose `punycode` */
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if (
- typeof define == 'function' &&
- typeof define.amd == 'object' &&
- define.amd
- ) {
- define('punycode', function() {
- return punycode;
- });
- } else if (freeExports && freeModule) {
- if (module.exports == freeExports) {
- // in Node.js, io.js, or RingoJS v0.8.0+
- freeModule.exports = punycode;
- } else {
- // in Narwhal or RingoJS v0.7.0-
- for (key in punycode) {
- punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
- }
- }
- } else {
- // in Rhino or a web browser
- root.punycode = punycode;
- }
-
-}(this));
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],155:[function(require,module,exports){
-module.exports = require("./lib/_stream_duplex.js")
-
-},{"./lib/_stream_duplex.js":156}],156:[function(require,module,exports){
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
-
-'use strict';
-
-/*<replacement>*/
-
-var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) {
- keys.push(key);
- }return keys;
-};
-/*</replacement>*/
-
-module.exports = Duplex;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
-
-util.inherits(Duplex, Readable);
-
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
-}
-
-function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
-
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options && options.readable === false) this.readable = false;
-
- if (options && options.writable === false) this.writable = false;
-
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
-
- this.once('end', onend);
-}
-
-// the no-half-open enforcer
-function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended) return;
-
- // no more data can be written.
- // But allow more writes to happen in this tick.
- processNextTick(onEndNT, this);
-}
-
-function onEndNT(self) {
- self.end();
-}
-
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-},{"./_stream_readable":158,"./_stream_writable":160,"core-util-is":22,"inherits":45,"process-nextick-args":152}],157:[function(require,module,exports){
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
-
-'use strict';
-
-module.exports = PassThrough;
-
-var Transform = require('./_stream_transform');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(PassThrough, Transform);
-
-function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
-
- Transform.call(this, options);
-}
-
-PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
-};
-},{"./_stream_transform":159,"core-util-is":22,"inherits":45}],158:[function(require,module,exports){
-(function (process){
-'use strict';
-
-module.exports = Readable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var isArray = require('isarray');
-/*</replacement>*/
-
-Readable.ReadableState = ReadableState;
-
-/*<replacement>*/
-var EE = require('events').EventEmitter;
-
-var EElistenerCount = function (emitter, type) {
- return emitter.listeners(type).length;
-};
-/*</replacement>*/
-
-/*<replacement>*/
-var Stream;
-(function () {
- try {
- Stream = require('st' + 'ream');
- } catch (_) {} finally {
- if (!Stream) Stream = require('events').EventEmitter;
- }
-})();
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-/*<replacement>*/
-var bufferShim = require('buffer-shims');
-/*</replacement>*/
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-/*<replacement>*/
-var debugUtil = require('util');
-var debug = void 0;
-if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
-} else {
- debug = function () {};
-}
-/*</replacement>*/
-
-var BufferList = require('./internal/streams/BufferList');
-var StringDecoder;
-
-util.inherits(Readable, Stream);
-
-function prependListener(emitter, event, fn) {
- if (typeof emitter.prependListener === 'function') {
- return emitter.prependListener(event, fn);
- } else {
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
- }
-}
-
-var Duplex;
-function ReadableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
-
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~ ~this.highWaterMark;
-
- // A linked list is used to store data chunks instead of an array because the
- // linked list can remove elements from the beginning faster than
- // array.shift()
- this.buffer = new BufferList();
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // when piping, we only care about 'readable' events that happen
- // after read()ing all the bytes and not getting any pushback.
- this.ranOut = false;
-
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
-
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
-
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
-}
-
-var Duplex;
-function Readable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- if (!(this instanceof Readable)) return new Readable(options);
-
- this._readableState = new ReadableState(options, this);
-
- // legacy
- this.readable = true;
-
- if (options && typeof options.read === 'function') this._read = options.read;
-
- Stream.call(this);
-}
-
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
-
- if (!state.objectMode && typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = bufferShim.from(chunk, encoding);
- encoding = '';
- }
- }
-
- return readableAddChunk(this, state, chunk, encoding, false);
-};
-
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function (chunk) {
- var state = this._readableState;
- return readableAddChunk(this, state, chunk, '', true);
-};
-
-Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
-};
-
-function readableAddChunk(stream, state, chunk, encoding, addToFront) {
- var er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (chunk === null) {
- state.reading = false;
- 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 {
- var skipAdd;
- if (state.decoder && !addToFront && !encoding) {
- chunk = state.decoder.write(chunk);
- skipAdd = !state.objectMode && chunk.length === 0;
- }
-
- if (!addToFront) state.reading = false;
-
- // Don't add to the buffer if we've decoded to an empty string chunk and
- // we're not in object mode
- if (!skipAdd) {
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
-
- if (state.needReadable) emitReadable(stream);
- }
- }
-
- maybeReadMore(stream, state);
- }
- } else if (!addToFront) {
- state.reading = false;
- }
-
- return needMoreData(state);
-}
-
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes. This is to work around cases where hwm=0,
-// such as the repl. Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
- return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
-}
-
-// backwards compatibility.
-Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
-};
-
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2 to prevent increasing hwm excessively in
- // tiny amounts
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
-}
-
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function howMuchToRead(n, state) {
- if (n <= 0 || state.length === 0 && state.ended) return 0;
- if (state.objectMode) return 1;
- if (n !== n) {
- // Only flow one buffer at a time
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
- }
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
- if (n <= state.length) return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
-}
-
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function (n) {
- debug('read', n);
- n = parseInt(n, 10);
- var state = this._readableState;
- var nOrig = n;
-
- if (n !== 0) state.emittedReadable = false;
-
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
-
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
-
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- } else if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
-
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
-
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- } else {
- state.length -= n;
- }
-
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
-
- if (ret !== null) this.emit('data', ret);
-
- return ret;
-};
-
-function chunkInvalid(state, chunk) {
- var er = null;
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
-}
-
-function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
-
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
-}
-
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow. This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
- }
-}
-
-function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
-}
-
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data. that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- processNextTick(maybeReadMore_, stream, state);
- }
-}
-
-function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;else len = state.length;
- }
- state.readingMore = false;
-}
-
-// abstract method. to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function (n) {
- this.emit('error', new Error('not implemented'));
-};
-
-Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var 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);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
-
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
-
- var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
-
- dest.on('unpipe', onunpipe);
- function onunpipe(readable) {
- debug('onunpipe');
- if (readable === src) {
- cleanup();
- }
- }
-
- function onend() {
- debug('onend');
- dest.end();
- }
-
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
-
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- 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);
-
- cleanedUp = true;
-
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
-
- // If the user pushes more data while we're writing to dest then we'll end up
- // in ondata again. However, we only want to increase awaitDrain once because
- // dest will only emit one 'drain' event for the multiple writes.
- // => Introduce a guard on increasing awaitDrain.
- var increasedAwaitDrain = false;
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- increasedAwaitDrain = false;
- var ret = dest.write(chunk);
- if (false === ret && !increasedAwaitDrain) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', src._readableState.awaitDrain);
- src._readableState.awaitDrain++;
- increasedAwaitDrain = true;
- }
- src.pause();
- }
- }
-
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
- }
-
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
-
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
-
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
-
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
-
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
-
- return dest;
-};
-
-function pipeOnDrain(src) {
- return function () {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
-}
-
-Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
-
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
-
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
-
- if (!dest) dest = state.pipes;
-
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this);
- return this;
- }
-
- // slow case. multiple pipe destinations.
-
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
-
- for (var _i = 0; _i < len; _i++) {
- dests[_i].emit('unpipe', this);
- }return this;
- }
-
- // try to find the right one.
- var i = indexOf(state.pipes, dest);
- if (i === -1) return this;
-
- state.pipes.splice(i, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
-
- dest.emit('unpipe', this);
-
- return this;
-};
-
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
-
- if (ev === 'data') {
- // Start flowing on next tick if stream isn't explicitly paused
- if (this._readableState.flowing !== false) this.resume();
- } else if (ev === 'readable') {
- var state = this._readableState;
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.emittedReadable = false;
- if (!state.reading) {
- processNextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this, state);
- }
- }
- }
-
- return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
-
-function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
-}
-
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
-};
-
-function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- processNextTick(resume_, stream, state);
- }
-}
-
-function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
-
- state.resumeScheduled = false;
- state.awaitDrain = 0;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
-}
-
-Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
-};
-
-function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- while (state.flowing && stream.read() !== null) {}
-}
-
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function (stream) {
- var state = this._readableState;
- var paused = false;
-
- var self = this;
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) self.push(chunk);
- }
-
- self.push(null);
- });
-
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
-
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
-
- var ret = self.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
-
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function (method) {
- return function () {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
-
- // proxy certain important events.
- var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function (ev) {
- stream.on(ev, self.emit.bind(self, ev));
- });
-
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- self._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
-
- return self;
-};
-
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function fromList(n, state) {
- // nothing buffered
- if (state.length === 0) return null;
-
- var ret;
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
- // read it all, truncate the list
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- // read part of list
- ret = fromListPartial(n, state.buffer, state.decoder);
- }
-
- return ret;
-}
-
-// Extracts only enough buffered data to satisfy the amount requested.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function fromListPartial(n, list, hasStrings) {
- var ret;
- if (n < list.head.data.length) {
- // slice is the same for buffers and strings
- ret = list.head.data.slice(0, n);
- list.head.data = list.head.data.slice(n);
- } else if (n === list.head.data.length) {
- // first chunk is a perfect match
- ret = list.shift();
- } else {
- // result spans more than one buffer
- ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
- }
- return ret;
-}
-
-// Copies a specified amount of characters from the list of buffered data
-// chunks.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function copyFromBufferString(n, list) {
- var p = list.head;
- var c = 1;
- var ret = p.data;
- n -= ret.length;
- while (p = p.next) {
- var str = p.data;
- var nb = n > str.length ? str.length : n;
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
- n -= nb;
- if (n === 0) {
- if (nb === str.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = str.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
-}
-
-// Copies a specified amount of bytes from the list of buffered data chunks.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function copyFromBuffer(n, list) {
- var ret = bufferShim.allocUnsafe(n);
- var p = list.head;
- var c = 1;
- p.data.copy(ret);
- n -= p.data.length;
- while (p = p.next) {
- var buf = p.data;
- var nb = n > buf.length ? buf.length : n;
- buf.copy(ret, ret.length - n, 0, nb);
- n -= nb;
- if (n === 0) {
- if (nb === buf.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = buf.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
-}
-
-function endReadable(stream) {
- var state = stream._readableState;
-
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
-
- if (!state.endEmitted) {
- state.ended = true;
- processNextTick(endReadableNT, state, stream);
- }
-}
-
-function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- }
-}
-
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-
-function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":156,"./internal/streams/BufferList":161,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"isarray":48,"process-nextick-args":152,"string_decoder/":183,"util":4}],159:[function(require,module,exports){
-// a transform stream is a readable/writable stream where you do
-// something with the data. Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored. (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation. For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes. When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up. When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
-//
-// In a transform stream, the written data is placed in a buffer. When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks. If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
-//
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk. However,
-// a pathological inflate type of transform can cause excessive buffering
-// here. For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output. In this case, you could write a very small
-// amount of input, and end up with a very large amount of output. In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform. A single 4MB write could
-// cause the system to run out of memory.
-//
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
-
-'use strict';
-
-module.exports = Transform;
-
-var Duplex = require('./_stream_duplex');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(Transform, Duplex);
-
-function TransformState(stream) {
- this.afterTransform = function (er, data) {
- return afterTransform(stream, er, data);
- };
-
- this.needTransform = false;
- this.transforming = false;
- this.writecb = null;
- this.writechunk = null;
- this.writeencoding = null;
-}
-
-function afterTransform(stream, er, data) {
- var ts = stream._transformState;
- ts.transforming = false;
-
- var cb = ts.writecb;
-
- if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
-
- ts.writechunk = null;
- ts.writecb = null;
-
- if (data !== null && data !== undefined) stream.push(data);
-
- cb(er);
-
- var rs = stream._readableState;
- rs.reading = false;
- if (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(this);
-
- // when the writable side finishes, then flush out anything remaining.
- var stream = this;
-
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
-
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
-
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
-
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
-
- this.once('prefinish', function () {
- if (typeof this._flush === 'function') this._flush(function (er) {
- done(stream, er);
- });else done(stream);
- });
-}
-
-Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side. You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk. If you pass
-// an error, then that'll put the hurt on the whole operation. If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('Not implemented');
-};
-
-Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
-};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function (n) {
- var ts = this._transformState;
-
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
-};
-
-function done(stream, er) {
- if (er) return stream.emit('error', er);
-
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- var ws = stream._writableState;
- var 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);
-}
-},{"./_stream_duplex":156,"core-util-is":22,"inherits":45}],160:[function(require,module,exports){
-(function (process){
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-module.exports = Writable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-/*<replacement>*/
-var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
-/*</replacement>*/
-
-Writable.WritableState = WritableState;
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-/*<replacement>*/
-var internalUtil = {
- deprecate: require('util-deprecate')
-};
-/*</replacement>*/
-
-/*<replacement>*/
-var Stream;
-(function () {
- try {
- Stream = require('st' + 'ream');
- } catch (_) {} finally {
- if (!Stream) Stream = require('events').EventEmitter;
- }
-})();
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-/*<replacement>*/
-var bufferShim = require('buffer-shims');
-/*</replacement>*/
-
-util.inherits(Writable, Stream);
-
-function nop() {}
-
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
-var Duplex;
-function WritableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
-
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~ ~this.highWaterMark;
-
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
-
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
-
- // a flag to see when we're in the middle of a write.
- this.writing = false;
-
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
-
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
-
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
-
- // the amount that is being written when _write is called.
- this.writelen = 0;
-
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
-
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
-
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
-
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
-
- // count buffered requests
- this.bufferedRequestCount = 0;
-
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
-}
-
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
-};
-
-(function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function () {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
- });
- } catch (_) {}
-})();
-
-var Duplex;
-function Writable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- // Writable ctor is applied to Duplexes, though they're not
- // instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
-
- this._writableState = new WritableState(options, this);
-
- // legacy.
- this.writable = true;
-
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
-
- if (typeof options.writev === 'function') this._writev = options.writev;
- }
-
- Stream.call(this);
-}
-
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe, not readable'));
-};
-
-function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- processNextTick(cb, er);
-}
-
-// If we get something that is not a buffer, string, null, or undefined,
-// and we're not in objectMode, then that's an error.
-// Otherwise stream chunks are all considered to be of length=1, and the
-// watermarks determine how many objects to keep in the buffer, rather than
-// how many bytes or characters.
-function validChunk(stream, state, chunk, cb) {
- var valid = true;
- var er = false;
- // Always throw error if a null is written
- // if we are not in object mode then throw
- // if it is not a buffer, string, or undefined.
- if (chunk === null) {
- er = new TypeError('May not write null values to stream');
- } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- if (er) {
- stream.emit('error', er);
- processNextTick(cb, er);
- valid = false;
- }
- return valid;
-}
-
-Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
-
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
-
- if (typeof cb !== 'function') cb = nop;
-
- if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, chunk, encoding, cb);
- }
-
- return ret;
-};
-
-Writable.prototype.cork = function () {
- var state = this._writableState;
-
- state.corked++;
-};
-
-Writable.prototype.uncork = function () {
- var state = this._writableState;
-
- if (state.corked) {
- state.corked--;
-
- if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
-};
-
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
-};
-
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = bufferShim.from(chunk, encoding);
- }
- return chunk;
-}
-
-// if we're already writing something, then just put this
-// in the queue, and wait our turn. Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, chunk, encoding, cb) {
- chunk = decodeChunk(state, chunk, encoding);
-
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';
- var len = state.objectMode ? 1 : chunk.length;
-
- state.length += len;
-
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
-
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
-
- return ret;
-}
-
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
-}
-
-function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync) processNextTick(cb, er);else cb(er);
-
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
-}
-
-function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
-}
-
-function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
-
- onwriteStateUpdate(state);
-
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
-
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
-
- if (sync) {
- /*<replacement>*/
- asyncWrite(afterWrite, stream, state, finished, cb);
- /*</replacement>*/
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
-}
-
-function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
-}
-
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
-}
-
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
-
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
-
- var count = 0;
- while (entry) {
- buffer[count] = entry;
- entry = entry.next;
- count += 1;
- }
-
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
-
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
-
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
-
- if (entry === null) state.lastBufferedRequest = null;
- }
-
- state.bufferedRequestCount = 0;
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
-}
-
-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;
-
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
-
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
-
- // ignore unnecessary end() calls.
- if (!state.ending && !state.finished) endWritable(this, state, cb);
-};
-
-function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
-}
-
-function prefinish(stream, state) {
- if (!state.prefinished) {
- state.prefinished = true;
- stream.emit('prefinish');
- }
-}
-
-function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- if (state.pendingcb === 0) {
- prefinish(stream, state);
- state.finished = true;
- stream.emit('finish');
- } else {
- prefinish(stream, state);
- }
- }
- return need;
-}
-
-function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) processNextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
-}
-
-// It seems a linked list but it is not
-// there will be only 2 of these for each stream
-function CorkedRequest(state) {
- var _this = this;
-
- this.next = null;
- this.entry = null;
-
- this.finish = function (err) {
- var entry = _this.entry;
- _this.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- if (state.corkedRequestsFree) {
- state.corkedRequestsFree.next = _this;
- } else {
- state.corkedRequestsFree = _this;
- }
- };
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":156,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"process-nextick-args":152,"util-deprecate":194}],161:[function(require,module,exports){
-'use strict';
-
-var Buffer = require('buffer').Buffer;
-/*<replacement>*/
-var bufferShim = require('buffer-shims');
-/*</replacement>*/
-
-module.exports = BufferList;
-
-function BufferList() {
- this.head = null;
- this.tail = null;
- this.length = 0;
-}
-
-BufferList.prototype.push = function (v) {
- var entry = { data: v, next: null };
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
- this.tail = entry;
- ++this.length;
-};
-
-BufferList.prototype.unshift = function (v) {
- var entry = { data: v, next: this.head };
- if (this.length === 0) this.tail = entry;
- this.head = entry;
- ++this.length;
-};
-
-BufferList.prototype.shift = function () {
- if (this.length === 0) return;
- var ret = this.head.data;
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
- --this.length;
- return ret;
-};
-
-BufferList.prototype.clear = function () {
- this.head = this.tail = null;
- this.length = 0;
-};
-
-BufferList.prototype.join = function (s) {
- if (this.length === 0) return '';
- var p = this.head;
- var ret = '' + p.data;
- while (p = p.next) {
- ret += s + p.data;
- }return ret;
-};
-
-BufferList.prototype.concat = function (n) {
- if (this.length === 0) return bufferShim.alloc(0);
- if (this.length === 1) return this.head.data;
- var ret = bufferShim.allocUnsafe(n >>> 0);
- var p = this.head;
- var i = 0;
- while (p) {
- p.data.copy(ret, i);
- i += p.data.length;
- p = p.next;
- }
- return ret;
-};
-},{"buffer":6,"buffer-shims":5}],162:[function(require,module,exports){
-module.exports = require("./lib/_stream_passthrough.js")
-
-},{"./lib/_stream_passthrough.js":157}],163:[function(require,module,exports){
-(function (process){
-var Stream = (function (){
- try {
- return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
- } catch(_){}
-}());
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = Stream || exports;
-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');
-
-if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
- module.exports = Stream;
-}
-
-}).call(this,require('_process'))
-},{"./lib/_stream_duplex.js":156,"./lib/_stream_passthrough.js":157,"./lib/_stream_readable.js":158,"./lib/_stream_transform.js":159,"./lib/_stream_writable.js":160,"_process":153}],164:[function(require,module,exports){
-module.exports = require("./lib/_stream_transform.js")
-
-},{"./lib/_stream_transform.js":159}],165:[function(require,module,exports){
-module.exports = require("./lib/_stream_writable.js")
-
-},{"./lib/_stream_writable.js":160}],166:[function(require,module,exports){
-(function (Buffer){
-/*
-CryptoJS v3.1.2
-code.google.com/p/crypto-js
-(c) 2009-2013 by Jeff Mott. All rights reserved.
-code.google.com/p/crypto-js/wiki/License
-*/
-/** @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:
-
- - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-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.
-*/
-
-// constants table
-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
-]
-
-var 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
-]
-
-var 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
-]
-
-var 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
-]
-
-var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
-var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
-
-function bytesToWords (bytes) {
- var words = []
- for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
- words[b >>> 5] |= bytes[i] << (24 - b % 32)
- }
- return words
-}
-
-function wordsToBytes (words) {
- var bytes = []
- for (var b = 0; b < words.length * 32; b += 8) {
- bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
- }
- return bytes
-}
-
-function processBlock (H, M, offset) {
- // swap endian
- for (var i = 0; i < 16; i++) {
- var offset_i = offset + i
- var M_offset_i = M[offset_i]
-
- // Swap
- M[offset_i] = (
- (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
- (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
- )
- }
-
- // Working variables
- var al, bl, cl, dl, el
- var 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]
-
- // computation
- var t
- for (i = 0; i < 80; i += 1) {
- t = (al + M[offset + zl[i]]) | 0
- if (i < 16) {
- t += f1(bl, cl, dl) + hl[0]
- } else if (i < 32) {
- t += f2(bl, cl, dl) + hl[1]
- } else if (i < 48) {
- t += f3(bl, cl, dl) + hl[2]
- } else if (i < 64) {
- t += f4(bl, cl, dl) + hl[3]
- } else {// if (i<80) {
- t += f5(bl, cl, dl) + hl[4]
- }
- t = t | 0
- 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
- if (i < 16) {
- t += f5(br, cr, dr) + hr[0]
- } else if (i < 32) {
- t += f4(br, cr, dr) + hr[1]
- } else if (i < 48) {
- t += f3(br, cr, dr) + hr[2]
- } else if (i < 64) {
- t += f2(br, cr, dr) + hr[3]
- } else {// if (i<80) {
- t += f1(br, cr, dr) + hr[4]
- }
-
- t = t | 0
- t = rotl(t, sr[i])
- t = (t + er) | 0
- ar = er
- er = dr
- dr = rotl(cr, 10)
- cr = br
- br = t
- }
-
- // intermediate hash value
- 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 = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
-
- if (typeof message === 'string') {
- message = new Buffer(message, 'utf8')
- }
-
- var m = bytesToWords(message)
-
- var nBitsLeft = message.length * 8
- var nBitsTotal = message.length * 8
-
- // Add padding
- m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
- m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
- (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
- (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
- )
-
- for (var i = 0; i < m.length; i += 16) {
- processBlock(H, m, i)
- }
-
- // swap endian
- for (i = 0; i < 5; i++) {
- // shortcut
- var H_i = H[i]
-
- // Swap
- H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
- (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
- }
-
- var digestbytes = wordsToBytes(H)
- return new Buffer(digestbytes)
-}
-
-module.exports = ripemd160
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":6}],167:[function(require,module,exports){
-var util = require('util');
-var SJJ = require('sdp-jingle-json');
-var WildEmitter = require('wildemitter');
-var Peerconn = require('traceablepeerconnection');
-var adapter = require('webrtc-adapter');
-var cloneDeep = require('lodash.clonedeep');
-
-function PeerConnection(config, constraints) {
- var self = this;
- var item;
- WildEmitter.call(this);
-
- config = config || {};
- config.iceServers = config.iceServers || [];
-
- var detectedBrowser = adapter.browserDetails.browser;
-
- // make sure this only gets enabled in Google Chrome
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableChromeNativeSimulcast = false;
- if (constraints && constraints.optional &&
- detectedBrowser === 'chrome' &&
- navigator.appVersion.match(/Chromium\//) === null) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableChromeNativeSimulcast) {
- self.enableChromeNativeSimulcast = true;
- }
- });
- }
-
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableMultiStreamHacks = false;
- if (constraints && constraints.optional &&
- detectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableMultiStreamHacks) {
- self.enableMultiStreamHacks = true;
- }
- });
- }
- // EXPERIMENTAL FLAG, might get removed without notice
- this.restrictBandwidth = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetRestrictBandwidth) {
- self.restrictBandwidth = constraint.andyetRestrictBandwidth;
- }
- });
- }
-
- // EXPERIMENTAL FLAG, might get removed without notice
- // bundle up ice candidates, only works for jingle mode
- // number > 0 is the delay to wait for additional candidates
- // ~20ms seems good
- this.batchIceCandidates = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetBatchIce) {
- self.batchIceCandidates = constraint.andyetBatchIce;
- }
- });
- }
- this.batchedIceCandidates = [];
-
- // EXPERIMENTAL FLAG, might get removed without notice
- // this attemps to strip out candidates with an already known foundation
- // and type -- i.e. those which are gathered via the same TURN server
- // but different transports (TURN udp, tcp and tls respectively)
- if (constraints && constraints.optional && detectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFasterICE) {
- self.eliminateDuplicateCandidates = constraint.andyetFasterICE;
- }
- });
- }
- // EXPERIMENTAL FLAG, might get removed without notice
- // when using a server such as the jitsi videobridge we don't need to signal
- // our candidates
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetDontSignalCandidates) {
- self.dontSignalCandidates = constraint.andyetDontSignalCandidates;
- }
- });
- }
-
-
- // EXPERIMENTAL FLAG, might get removed without notice
- this.assumeSetLocalSuccess = false;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetAssumeSetLocalSuccess) {
- self.assumeSetLocalSuccess = constraint.andyetAssumeSetLocalSuccess;
- }
- });
- }
-
- // EXPERIMENTAL FLAG, might get removed without notice
- // working around https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- // pass in a timeout for this
- if (detectedBrowser === 'firefox') {
- if (constraints && constraints.optional) {
- this.wtFirefox = 0;
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFirefoxMakesMeSad) {
- self.wtFirefox = constraint.andyetFirefoxMakesMeSad;
- if (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);
-
- // proxy events
- this.pc.on('*', function () {
- self.emit.apply(self, arguments);
- });
-
- // proxy some events directly
- 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');
-
- // handle ice candidate and data channel events
- this.pc.onicecandidate = this._onIce.bind(this);
- this.pc.ondatachannel = this._onDataChannel.bind(this);
-
- this.localDescription = {
- contents: []
- };
- this.remoteDescription = {
- contents: []
- };
-
- this.config = {
- debug: false,
- sid: '',
- isInitiator: true,
- sdpSessionID: Date.now(),
- useJingle: false
- };
-
- this.iceCredentials = {
- local: {},
- remote: {}
- };
-
- // apply our config
- for (item in config) {
- this.config[item] = config[item];
- }
-
- if (this.config.debug) {
- this.on('*', function () {
- var logger = config.logger || console;
- logger.log('PeerConnection event:', arguments);
- });
- }
- this.hadLocalStunCandidate = false;
- this.hadRemoteStunCandidate = false;
- this.hadLocalRelayCandidate = false;
- this.hadRemoteRelayCandidate = false;
-
- this.hadLocalIPv6Candidate = false;
- this.hadRemoteIPv6Candidate = false;
-
- // keeping references for all our data channels
- // so they dont get garbage collected
- // can be removed once the following bugs have been fixed
- // https://crbug.com/405545
- // https://bugzilla.mozilla.org/show_bug.cgi?id=964092
- // to be filed for opera
- this._remoteDataChannels = [];
- this._localDataChannels = [];
-
- this._candidateBuffer = [];
-}
-
-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';
-};
-
-// Add a stream to the peer connection object
-PeerConnection.prototype.addStream = function (stream) {
- this.localStream = stream;
- this.pc.addStream(stream);
-};
-
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkLocalCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadLocalStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadLocalRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadLocalIPv6Candidate = true;
- }
-};
-
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkRemoteCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadRemoteStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadRemoteRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadRemoteIPv6Candidate = true;
- }
-};
-
-
-// Init and add ice candidate object with correct constructor
-PeerConnection.prototype.processIce = function (update, cb) {
- cb = cb || function () {};
- var self = this;
-
- // ignore any added ice candidates to avoid errors. why does the
- // spec not do this?
- if (this.pc.signalingState === 'closed') return cb();
-
- if (update.contents || (update.jingle && update.jingle.contents)) {
- var contentNames = this.remoteDescription.contents.map(function (c) { return c.name; });
- var contents = update.contents || update.jingle.contents;
-
- contents.forEach(function (content) {
- var transport = content.transport || {};
- var candidates = transport.candidates || [];
- var mline = contentNames.indexOf(content.name);
- var mid = content.name;
- var remoteContent = self.remoteDescription.contents.find(function (c) {
- return c.name === content.name;
- });
-
- // process candidates as a callback, in case we need to
- // update ufrag and pwd with offer/answer
- var processCandidates = function () {
- candidates.forEach(
- function (candidate) {
- var iceCandidate = SJJ.toCandidateSDP(candidate) + '\r\n';
- self.pc.addIceCandidate(
- new RTCIceCandidate({
- candidate: iceCandidate,
- sdpMLineIndex: mline,
- sdpMid: mid
- }), function () {
- // well, this success callback is pretty meaningless
- },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(iceCandidate);
- });
- cb();
- };
-
- if (self.iceCredentials.remote[content.name] && transport.ufrag &&
- self.iceCredentials.remote[content.name].ufrag !== transport.ufrag) {
- if (remoteContent) {
- remoteContent.transport.ufrag = transport.ufrag;
- remoteContent.transport.pwd = transport.pwd;
- var offer = {
- type: 'offer',
- jingle: self.remoteDescription
- };
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
- });
- self.pc.setRemoteDescription(new RTCSessionDescription(offer),
- function () {
- processCandidates();
- },
- function (err) {
- self.emit('error', err);
- }
- );
- } else {
- self.emit('error', 'ice restart failed to find matching content');
- }
- } else {
- processCandidates();
- }
- });
- } else {
- // working around https://code.google.com/p/webrtc/issues/detail?id=3669
- if (update.candidate && update.candidate.candidate.indexOf('a=') !== 0) {
- update.candidate.candidate = 'a=' + update.candidate.candidate;
- }
-
- if (this.wtFirefox && this.firefoxcandidatebuffer !== null) {
- // we cant add this yet due to https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- if (this.pc.localDescription && this.pc.localDescription.type === 'offer') {
- this.firefoxcandidatebuffer.push(update.candidate);
- return cb();
- }
- }
-
- self.pc.addIceCandidate(
- new RTCIceCandidate(update.candidate),
- function () { },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(update.candidate.candidate);
- cb();
- }
-};
-
-// Generate and emit an offer with the given constraints
-PeerConnection.prototype.offer = function (constraints, cb) {
- var self = this;
- var hasConstraints = arguments.length === 2;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- offerToReceiveAudio: 1,
- offerToReceiveVideo: 1
- };
- cb = hasConstraints ? cb : constraints;
- cb = cb || function () {};
-
- if (this.pc.signalingState === 'closed') return cb('Already closed');
-
- // Actually generate the offer
- this.pc.createOffer(
- function (offer) {
- // does not work for jingle, but jingle.js doesn't need
- // this hack...
- var expandedOffer = {
- type: 'offer',
- sdp: offer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- self.emit('offer', expandedOffer);
- cb(null, expandedOffer);
- }
- self._candidateBuffer = [];
- self.pc.setLocalDescription(offer,
- function () {
- var jingle;
- if (self.config.useJingle) {
- jingle = SJJ.toSessionJSON(offer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.sid = self.config.sid;
- self.localDescription = jingle;
-
- // Save ICE credentials
- jingle.contents.forEach(function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.iceCredentials.local[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
-
- expandedOffer.jingle = jingle;
- }
- expandedOffer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
-
- if (!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
- );
-};
-
-
-// Process an incoming offer so that ICE may proceed before deciding
-// to answer the request.
-PeerConnection.prototype.handleOffer = function (offer, cb) {
- cb = cb || function () {};
- var self = this;
- offer.type = 'offer';
- if (offer.jingle) {
- if (this.enableChromeNativeSimulcast) {
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- content.application.googConferenceFlag = true;
- }
-
- });
- }
- if (this.enableMultiStreamHacks) {
- // add a mixed video stream as first stream
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- var sources = content.application.sources || [];
- if (sources.length === 0 || sources[0].ssrc !== "3735928559") {
- sources.unshift({
- ssrc: "3735928559", // 0xdeadbeef
- parameters: [
- {
- key: "cname",
- value: "deadbeef"
- },
- {
- key: "msid",
- value: "mixyourfecintothis please"
- }
- ]
- });
- content.application.sources = sources;
- }
- }
- });
- }
- if (self.restrictBandwidth > 0) {
- if (offer.jingle.contents.length >= 2 && offer.jingle.contents[1].name === 'video') {
- var content = offer.jingle.contents[1];
- var hasBw = content.application && content.application.bandwidth && content.application.bandwidth.bandwidth;
- if (!hasBw) {
- offer.jingle.contents[1].application.bandwidth = { type: 'AS', bandwidth: self.restrictBandwidth.toString() };
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- // Save ICE credentials
- offer.jingle.contents.forEach(function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.iceCredentials.remote[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
- 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) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(new RTCSessionDescription(offer),
- function () {
- cb();
- },
- cb
- );
-};
-
-// Answer an offer with audio only
-PeerConnection.prototype.answerAudioOnly = function (cb) {
- var mediaConstraints = {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: false
- }
- };
- this._answer(mediaConstraints, cb);
-};
-
-// Answer an offer without offering to recieve
-PeerConnection.prototype.answerBroadcastOnly = function (cb) {
- var mediaConstraints = {
- mandatory: {
- OfferToReceiveAudio: false,
- OfferToReceiveVideo: false
- }
- };
- this._answer(mediaConstraints, cb);
-};
-
-// Answer an offer with given constraints default is audio/video
-PeerConnection.prototype.answer = function (constraints, cb) {
- var hasConstraints = arguments.length === 2;
- var callback = hasConstraints ? cb : constraints;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
- }
- };
-
- this._answer(mediaConstraints, callback);
-};
-
-// Process an answer
-PeerConnection.prototype.handleAnswer = function (answer, cb) {
- cb = cb || function () {};
- var self = this;
- if (answer.jingle) {
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
- });
- self.remoteDescription = answer.jingle;
-
- // Save ICE credentials
- answer.jingle.contents.forEach(function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.iceCredentials.remote[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
- }
- answer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(
- new RTCSessionDescription(answer),
- function () {
- if (self.wtFirefox) {
- window.setTimeout(function () {
- self.firefoxcandidatebuffer.forEach(function (candidate) {
- // add candidates later
- 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
- );
-};
-
-// Close the peer connection
-PeerConnection.prototype.close = function () {
- this.pc.close();
-
- this._localDataChannels = [];
- this._remoteDataChannels = [];
-
- this.emit('close');
-};
-
-// Internal code sharing for various types of answer methods
-PeerConnection.prototype._answer = function (constraints, cb) {
- cb = cb || function () {};
- var self = this;
- if (!this.pc.remoteDescription) {
- // the old API is used, call handleOffer
- throw new Error('remoteDescription not set');
- }
-
- if (this.pc.signalingState === 'closed') return cb('Already closed');
-
- self.pc.createAnswer(
- function (answer) {
- var sim = [];
- if (self.enableChromeNativeSimulcast) {
- // native simulcast part 1: add another SSRC
- answer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- if (answer.jingle.contents.length >= 2 && answer.jingle.contents[1].name === 'video') {
- var groups = answer.jingle.contents[1].application.sourceGroups || [];
- var hasSim = false;
- groups.forEach(function (group) {
- if (group.semantics == 'SIM') hasSim = true;
- });
- if (!hasSim &&
- answer.jingle.contents[1].application.sources.length) {
- var newssrc = JSON.parse(JSON.stringify(answer.jingle.contents[1].application.sources[0]));
- newssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].application.sources.push(newssrc);
-
- sim.push(answer.jingle.contents[1].application.sources[0].ssrc);
- sim.push(newssrc.ssrc);
- groups.push({
- semantics: 'SIM',
- sources: sim
- });
-
- // also create an RTX one for the SIM one
- var rtxssrc = JSON.parse(JSON.stringify(newssrc));
- rtxssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].application.sources.push(rtxssrc);
- groups.push({
- semantics: 'FID',
- sources: [newssrc.ssrc, rtxssrc.ssrc]
- });
-
- answer.jingle.contents[1].application.sourceGroups = groups;
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- var expandedAnswer = {
- type: 'answer',
- sdp: answer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- // not safe to do when doing simulcast mangling
- var copy = cloneDeep(expandedAnswer);
- self.emit('answer', copy);
- cb(null, copy);
- }
- 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) {
- // native simulcast part 2:
- // signal multiple tracks to the receiver
- // for anything in the SIM group
- if (!expandedAnswer.jingle) {
- expandedAnswer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.jingle.contents[1].application.sources.forEach(function (source, idx) {
- // the floor idx/2 is a hack that relies on a particular order
- // of groups, alternating between sim and rtx
- source.parameters = source.parameters.map(function (parameter) {
- if (parameter.key === 'msid') {
- parameter.value += '-' + Math.floor(idx / 2);
- }
- return parameter;
- });
- });
- expandedAnswer.sdp = SJJ.toSessionSDP(expandedAnswer.jingle, {
- sid: self.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
- if (!self.assumeSetLocalSuccess) {
- var copy = cloneDeep(expandedAnswer);
- self.emit('answer', copy);
- cb(null, copy);
- }
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- }
- );
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- },
- constraints
- );
-};
-
-// Internal method for emitting ice candidates on our peer object
-PeerConnection.prototype._onIce = function (event) {
- var self = this;
- if (event.candidate) {
- if (this.dontSignalCandidates) return;
- var ice = event.candidate;
-
- var expandedCandidate = {
- candidate: {
- candidate: ice.candidate,
- sdpMid: ice.sdpMid,
- sdpMLineIndex: ice.sdpMLineIndex
- }
- };
- this._checkLocalCandidate(ice.candidate);
-
- var cand = SJJ.toCandidateJSON(ice.candidate);
-
- var already;
- var idx;
- if (this.eliminateDuplicateCandidates && cand.type === 'relay') {
- // drop candidates with same foundation, component
- // take local type pref into account so we don't ignore udp
- // ones when we know about a TCP one. unlikely but...
- already = this._candidateBuffer.filter(
- function (c) {
- return c.type === 'relay';
- }).map(function (c) {
- return c.foundation + ':' + c.component;
- }
- );
- idx = already.indexOf(cand.foundation + ':' + cand.component);
- // remember: local type pref of udp is 0, tcp 1, tls 2
- if (idx > -1 && ((cand.priority >> 24) >= (already[idx].priority >> 24))) {
- // drop it, same foundation with higher (worse) type pref
- return;
- }
- }
- if (this.config.bundlePolicy === 'max-bundle') {
- // drop candidates which are duplicate for audio/video/data
- // duplicate means same host/port but different sdpMid
- 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);
- if (idx > -1) return;
- }
- // also drop rtcp candidates since we know the peer supports RTCP-MUX
- // this is a workaround until browsers implement this natively
- if (this.config.rtcpMuxPolicy === 'require' && cand.component === '2') {
- return;
- }
- this._candidateBuffer.push(cand);
-
- if (self.config.useJingle) {
- if (!ice.sdpMid) { // firefox doesn't set this
- if (self.pc.remoteDescription && self.pc.remoteDescription.type === 'offer') {
- // preserve name from remote
- ice.sdpMid = self.remoteDescription.contents[ice.sdpMLineIndex].name;
- } else {
- ice.sdpMid = self.localDescription.contents[ice.sdpMLineIndex].name;
- }
- }
- if (!self.iceCredentials.local[ice.sdpMid]) {
- var jingle = SJJ.toSessionJSON(self.pc.localDescription.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.contents.forEach(function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.iceCredentials.local[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
- }
- expandedCandidate.jingle = {
- contents: [{
- name: ice.sdpMid,
- creator: self._role(),
- transport: {
- transportType: 'iceUdp',
- ufrag: self.iceCredentials.local[ice.sdpMid].ufrag,
- pwd: self.iceCredentials.local[ice.sdpMid].pwd,
- candidates: [
- cand
- ]
- }
- }]
- };
- if (self.batchIceCandidates > 0) {
- if (self.batchedIceCandidates.length === 0) {
- window.setTimeout(function () {
- var contents = {};
- self.batchedIceCandidates.forEach(function (content) {
- content = content.contents[0];
- if (!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);
- }
- self.batchedIceCandidates.push(expandedCandidate.jingle);
- return;
- }
-
- }
- this.emit('ice', expandedCandidate);
- } else {
- this.emit('endOfCandidates');
- }
-};
-
-// Internal method for processing a new data channel being added by the
-// other peer.
-PeerConnection.prototype._onDataChannel = function (event) {
- // make sure we keep a reference so this doesn't get garbage collected
- var channel = event.channel;
- this._remoteDataChannels.push(channel);
-
- this.emit('addChannel', channel);
-};
-
-// Create a data channel spec reference:
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannelInit
-PeerConnection.prototype.createDataChannel = function (name, opts) {
- var channel = this.pc.createDataChannel(name, opts);
-
- // make sure we keep a reference so this doesn't get garbage collected
- this._localDataChannels.push(channel);
-
- return channel;
-};
-
-PeerConnection.prototype.getStats = function (cb) {
- this.pc.getStats(null,
- function (res) {
- cb(null, res);
- },
- function (err) {
- cb(err);
- }
- );
-};
-
-module.exports = PeerConnection;
-
-},{"lodash.clonedeep":133,"sdp-jingle-json":168,"traceablepeerconnection":184,"util":197,"webrtc-adapter":201,"wildemitter":211}],168:[function(require,module,exports){
-var toSDP = require('./lib/tosdp');
-var toJSON = require('./lib/tojson');
-
-
-// Converstion from JSON to SDP
-
-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;
-
-
-// Conversion from SDP to JSON
-
-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":171,"./lib/tosdp":172}],169:[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) {
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- return mediaLines[i];
- }
- }
- // Continue searching in parent session section
- if (!sessionLines) {
- return false;
- }
-
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- return sessionLines[j];
- }
- }
-
- return false;
-};
-
-exports.findLines = function (prefix, mediaLines, sessionLines) {
- var results = [];
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- results.push(mediaLines[i]);
- }
- }
- if (results.length || !sessionLines) {
- return results;
- }
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- results.push(sessionLines[j]);
- }
- }
- return results;
-};
-
-exports.mline = function (line) {
- var parts = line.substr(2).split(' ');
- var parsed = {
- media: parts[0],
- port: parts[1],
- proto: parts[2],
- formats: []
- };
- for (var i = 3; i < parts.length; i++) {
- if (parts[i]) {
- parsed.formats.push(parts[i]);
- }
- }
- return parsed;
-};
-
-exports.rtpmap = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- id: parts.shift()
- };
-
- parts = parts[0].split('/');
-
- parsed.name = parts[0];
- parsed.clockrate = parts[1];
- parsed.channels = parts.length == 3 ? parts[2] : '1';
- return parsed;
-};
-
-exports.sctpmap = function (line) {
- // based on -05 draft
- var parts = line.substr(10).split(' ');
- var parsed = {
- number: parts.shift(),
- protocol: parts.shift(),
- streams: parts.shift()
- };
- return parsed;
-};
-
-
-exports.fmtp = function (line) {
- var kv, key, value;
- var parts = line.substr(line.indexOf(' ') + 1).split(';');
- var parsed = [];
- for (var i = 0; i < parts.length; i++) {
- kv = parts[i].split('=');
- key = kv[0].trim();
- value = kv[1];
- if (key && value) {
- parsed.push({key: key, value: value});
- } else if (key) {
- parsed.push({key: '', value: key});
- }
- }
- return parsed;
-};
-
-exports.crypto = function (line) {
- var parts = line.substr(9).split(' ');
- var 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(' ');
- var parsed = {};
-
- var idpart = parts.shift();
- var sp = idpart.indexOf('/');
- if (sp >= 0) {
- parsed.id = idpart.substr(0, sp);
- parsed.senders = idpart.substr(sp + 1);
- } else {
- parsed.id = idpart;
- parsed.senders = 'sendrecv';
- }
-
- parsed.uri = parts.shift() || '';
-
- return parsed;
-};
-
-exports.rtcpfb = function (line) {
- var parts = line.substr(10).split(' ');
- var parsed = {};
- parsed.id = parts.shift();
- parsed.type = parts.shift();
- if (parsed.type === 'trr-int') {
- parsed.value = parts.shift();
- } else {
- parsed.subtype = parts.shift() || '';
- }
- parsed.parameters = parts;
- return parsed;
-};
-
-exports.candidate = function (line) {
- var parts;
- if (line.indexOf('a=candidate:') === 0) {
- parts = line.substring(12).split(' ');
- } else { // no a=candidate
- parts = line.substring(10).split(' ');
- }
-
- var candidate = {
- foundation: parts[0],
- component: parts[1],
- protocol: parts[2].toLowerCase(),
- priority: parts[3],
- ip: parts[4],
- port: parts[5],
- // skip parts[6] == 'typ'
- type: parts[7],
- generation: '0'
- };
-
- for (var i = 8; i < parts.length; i += 2) {
- if (parts[i] === 'raddr') {
- candidate.relAddr = parts[i + 1];
- } else if (parts[i] === 'rport') {
- candidate.relPort = parts[i + 1];
- } else if (parts[i] === 'generation') {
- candidate.generation = parts[i + 1];
- } else if (parts[i] === 'tcptype') {
- candidate.tcpType = parts[i + 1];
- }
- }
-
- candidate.network = '1';
-
- return candidate;
-};
-
-exports.sourceGroups = function (lines) {
- var parsed = [];
- for (var 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) {
- // http://tools.ietf.org/html/rfc5576
- var parsed = [];
- var sources = {};
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].substr(7).split(' ');
- var ssrc = parts.shift();
-
- if (!sources[ssrc]) {
- var source = {
- ssrc: ssrc,
- parameters: []
- };
- parsed.push(source);
-
- // Keep an index
- sources[ssrc] = source;
- }
-
- parts = parts.join(' ').split(':');
- var attribute = parts.shift();
- var value = parts.join(':') || null;
-
- sources[ssrc].parameters.push({
- key: attribute,
- value: value
- });
- }
-
- return parsed;
-};
-
-exports.groups = function (lines) {
- // http://tools.ietf.org/html/rfc5888
- var parsed = [];
- var parts;
- for (var 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(':');
- var parsed = {};
- parsed.type = parts.shift();
- parsed.bandwidth = parts.shift();
- return parsed;
-};
-
-exports.msid = function (line) {
- var data = line.substr(7);
- var parts = data.split(' ');
- return {
- msid: data,
- mslabel: parts[0],
- label: parts[1]
- };
-};
-
-},{}],170:[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'
- }
- }
-};
-
-},{}],171:[function(require,module,exports){
-var SENDERS = require('./senders');
-var parsers = require('./parsers');
-var idCounter = Math.random();
-
-
-exports._setIdCounter = function (counter) {
- idCounter = counter;
-};
-
-exports.toSessionJSON = function (sdp, opts) {
- var i;
- var creators = opts.creators || [];
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
-
- // Divide the SDP into session and media sections.
- var media = sdp.split('\r\nm=');
- for (i = 1; i < media.length; i++) {
- media[i] = 'm=' + media[i];
- if (i !== media.length - 1) {
- media[i] += '\r\n';
- }
- }
- var session = media.shift() + '\r\n';
- var sessionLines = parsers.lines(session);
- var parsed = {};
-
- var 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);
- if (groupLines.length) {
- parsed.groups = parsers.groups(groupLines);
- }
-
- return parsed;
-};
-
-exports.toMediaJSON = function (media, session, opts) {
- var creator = opts.creator || 'initiator';
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
- var lines = parsers.lines(media);
- var sessionLines = parsers.lines(session);
- var mline = parsers.mline(lines[0]);
-
- var content = {
- creator: creator,
- name: mline.media,
- application: {
- applicationType: 'rtp',
- media: mline.media,
- payloads: [],
- encryption: [],
- feedback: [],
- headerExtensions: []
- },
- transport: {
- transportType: 'iceUdp',
- candidates: [],
- fingerprints: []
- }
- };
- if (mline.media == 'application') {
- // FIXME: the description is most likely to be independent
- // of the SDP and should be processed by other parts of the library
- content.application = {
- applicationType: 'datachannel'
- };
- content.transport.sctp = [];
- }
- var desc = content.application;
- var trans = content.transport;
-
- // If we have a mid, use that for the content name instead.
- var mid = parsers.findLine('a=mid:', lines);
- if (mid) {
- content.name = mid.substr(6);
- }
-
- if (parsers.findLine('a=sendrecv', lines, sessionLines)) {
- content.senders = 'both';
- } else if (parsers.findLine('a=sendonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].sendonly;
- } else if (parsers.findLine('a=recvonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].recvonly;
- } else if (parsers.findLine('a=inactive', lines, sessionLines)) {
- content.senders = 'none';
- }
-
- if (desc.applicationType == 'rtp') {
- var bandwidth = parsers.findLine('b=', lines);
- if (bandwidth) {
- desc.bandwidth = parsers.bandwidth(bandwidth);
- }
-
- var ssrc = parsers.findLine('a=ssrc:', lines);
- if (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);
- // There should only be one fmtp line per payload
- 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));
- });
-
- if (parsers.findLine('a=rtcp-mux', lines)) {
- desc.mux = true;
- }
-
- 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);
- var sources = desc.sources = parsers.sources(ssrcLines || []);
-
- var 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++) {
- var found = false;
- for (var j = 0; j < sources[i].parameters.length; j++) {
- if (sources[i].parameters[j].key === key) {
- found = true;
- }
- }
- if (!found) {
- sources[i].parameters.push({ key: key, value: msid[key] });
- }
- }
- });
- }
-
- if (parsers.findLine('a=x-google-flag:conference', lines, sessionLines)) {
- desc.googConferenceFlag = true;
- }
- }
-
- // transport specific attributes
- var fingerprintLines = parsers.findLines('a=fingerprint:', lines, sessionLines);
- var setup = parsers.findLine('a=setup:', lines, sessionLines);
- fingerprintLines.forEach(function (line) {
- var fp = parsers.fingerprint(line);
- if (setup) {
- fp.setup = setup.substr(8);
- }
- trans.fingerprints.push(fp);
- });
-
- var ufragLine = parsers.findLine('a=ice-ufrag:', lines, sessionLines);
- var 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 (desc.applicationType == 'datachannel') {
- 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]);
- candidate.id = (idCounter++).toString(36).substr(0, 12);
- return candidate;
-};
-
-},{"./parsers":169,"./senders":170}],172:[function(require,module,exports){
-var SENDERS = require('./senders');
-
-
-exports.toSessionSDP = function (session, opts) {
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
- var sid = opts.sid || session.sid || Date.now();
- var time = opts.time || Date.now();
-
- var sdp = [
- 'v=0',
- 'o=- ' + sid + ' ' + time + ' IN IP4 0.0.0.0',
- 's=-',
- 't=0 0'
- ];
-
- var contents = session.contents || [];
- var hasSources = false;
- contents.forEach(function (content) {
- if (content.application.sources &&
- content.application.sources.length) {
- hasSources = true;
- }
- });
-
- if (hasSources) {
- sdp.push('a=msid-semantic: WMS *');
- }
-
- var groups = session.groups || [];
- groups.forEach(function (group) {
- sdp.push('a=group:' + group.semantics + ' ' + group.contents.join(' '));
- });
-
-
- contents.forEach(function (content) {
- sdp.push(exports.toMediaSDP(content, opts));
- });
-
- return sdp.join('\r\n') + '\r\n';
-};
-
-exports.toMediaSDP = function (content, opts) {
- var sdp = [];
-
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
- var desc = content.application;
- var transport = content.transport;
- var payloads = desc.payloads || [];
- var fingerprints = (transport && transport.fingerprints) || [];
-
- var mline = [];
- if (desc.applicationType == 'datachannel') {
- mline.push('application');
- mline.push('1');
- mline.push('DTLS/SCTP');
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- mline.push(map.number);
- });
- }
- } else {
- mline.push(desc.media);
- mline.push('1');
- if (fingerprints.length > 0) {
- mline.push('UDP/TLS/RTP/SAVPF');
- } else if (desc.encryption && desc.encryption.length > 0) {
- mline.push('RTP/SAVPF');
- } else {
- 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');
- if (desc.bandwidth && desc.bandwidth.type && desc.bandwidth.bandwidth) {
- sdp.push('b=' + desc.bandwidth.type + ':' + desc.bandwidth.bandwidth);
- }
- if (desc.applicationType == 'rtp') {
- sdp.push('a=rtcp:1 IN IP4 0.0.0.0');
- }
-
- if (transport) {
- if (transport.ufrag) {
- sdp.push('a=ice-ufrag:' + transport.ufrag);
- }
- if (transport.pwd) {
- sdp.push('a=ice-pwd:' + transport.pwd);
- }
-
- var pushedSetup = false;
- fingerprints.forEach(function (fingerprint) {
- sdp.push('a=fingerprint:' + fingerprint.hash + ' ' + fingerprint.value);
- if (fingerprint.setup && !pushedSetup) {
- sdp.push('a=setup:' + fingerprint.setup);
- }
- });
-
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- sdp.push('a=sctpmap:' + map.number + ' ' + map.protocol + ' ' + map.streams);
- });
- }
- }
-
- if (desc.applicationType == 'rtp') {
- sdp.push('a=' + (SENDERS[role][direction][content.senders] || 'sendrecv'));
- }
- sdp.push('a=mid:' + content.name);
-
- if (desc.sources && desc.sources.length) {
- (desc.sources[0].parameters || []).forEach(function (param) {
- if (param.key === 'msid') {
- sdp.push('a=msid:' + param.value);
- }
- });
- }
-
- if (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 : ''));
- });
- if (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 && payload.channels != '1') {
- rtpmap += '/' + payload.channels;
- }
- sdp.push(rtpmap);
-
- if (payload.parameters && payload.parameters.length) {
- var fmtp = ['a=fmtp:' + payload.id];
- var parameters = [];
- payload.parameters.forEach(function (param) {
- parameters.push((param.key ? param.key + '=' : '') + param.value);
- });
- fmtp.push(parameters.join(';'));
- sdp.push(fmtp.join(' '));
- }
-
- if (payload.feedback) {
- payload.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:' + payload.id + ' trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- sdp.push('a=rtcp-fb:' + payload.id + ' ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
- }
- });
- }
- });
-
- if (desc.feedback) {
- desc.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:* trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- 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 || [];
- candidates.forEach(function (candidate) {
- sdp.push(exports.toCandidateSDP(candidate));
- });
-
- return 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;
- sdp.push('typ');
- sdp.push(type);
- if (type === 'srflx' || type === 'prflx' || type === 'relay') {
- if (candidate.relAddr && candidate.relPort) {
- sdp.push('raddr');
- sdp.push(candidate.relAddr);
- sdp.push('rport');
- sdp.push(candidate.relPort);
- }
- }
- if (candidate.tcpType && candidate.protocol.toUpperCase() == 'TCP') {
- sdp.push('tcptype');
- sdp.push(candidate.tcpType);
- }
-
- sdp.push('generation');
- sdp.push(candidate.generation || '0');
-
- // FIXME: apparently this is wrong per spec
- // but then, we need this when actually putting this into
- // SDP so it's going to stay.
- // decision needs to be revisited when browsers dont
- // accept this any longer
- return 'a=candidate:' + sdp.join(' ');
-};
-
-},{"./senders":170}],173:[function(require,module,exports){
- /* eslint-env node */
-'use strict';
-
-// SDP helpers.
-var SDPUtils = {};
-
-// Generate an alphanumeric identifier for cname or mids.
-// TODO: use UUIDs instead? https://gist.github.com/jed/982883
-SDPUtils.generateIdentifier = function() {
- return Math.random().toString(36).substr(2, 10);
-};
-
-// The RTCP CNAME used by all peerconnections from the same JS.
-SDPUtils.localCName = SDPUtils.generateIdentifier();
-
-// Splits SDP into lines, dealing with both CRLF and LF.
-SDPUtils.splitLines = function(blob) {
- return blob.trim().split('\n').map(function(line) {
- return line.trim();
- });
-};
-// Splits SDP into sessionpart and mediasections. Ensures CRLF.
-SDPUtils.splitSections = function(blob) {
- var parts = blob.split('\nm=');
- return parts.map(function(part, index) {
- return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
- });
-};
-
-// Returns lines that start with a certain prefix.
-SDPUtils.matchPrefix = function(blob, prefix) {
- return SDPUtils.splitLines(blob).filter(function(line) {
- return line.indexOf(prefix) === 0;
- });
-};
-
-// Parses an ICE candidate line. Sample input:
-// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8
-// rport 55996"
-SDPUtils.parseCandidate = function(line) {
- var parts;
- // Parse both variants.
- if (line.indexOf('a=candidate:') === 0) {
- parts = line.substring(12).split(' ');
- } else {
- parts = line.substring(10).split(' ');
- }
-
- var candidate = {
- foundation: parts[0],
- component: parts[1],
- protocol: parts[2].toLowerCase(),
- priority: parseInt(parts[3], 10),
- ip: parts[4],
- port: parseInt(parts[5], 10),
- // skip parts[6] == 'typ'
- type: parts[7]
- };
-
- for (var i = 8; i < parts.length; i += 2) {
- switch (parts[i]) {
- case 'raddr':
- candidate.relatedAddress = parts[i + 1];
- break;
- case 'rport':
- candidate.relatedPort = parseInt(parts[i + 1], 10);
- break;
- case 'tcptype':
- candidate.tcpType = parts[i + 1];
- break;
- default: // Unknown extensions are silently ignored.
- break;
- }
- }
- return candidate;
-};
-
-// Translates a candidate object into SDP candidate attribute.
-SDPUtils.writeCandidate = 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;
- sdp.push('typ');
- sdp.push(type);
- if (type !== 'host' && candidate.relatedAddress &&
- candidate.relatedPort) {
- sdp.push('raddr');
- sdp.push(candidate.relatedAddress); // was: relAddr
- sdp.push('rport');
- sdp.push(candidate.relatedPort); // was: relPort
- }
- if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
- sdp.push('tcptype');
- sdp.push(candidate.tcpType);
- }
- return 'candidate:' + sdp.join(' ');
-};
-
-// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
-// a=rtpmap:111 opus/48000/2
-SDPUtils.parseRtpMap = function(line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- payloadType: parseInt(parts.shift(), 10) // was: id
- };
-
- parts = parts[0].split('/');
-
- parsed.name = parts[0];
- parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
- // was: channels
- parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1;
- return parsed;
-};
-
-// Generate an a=rtpmap line from RTCRtpCodecCapability or
-// RTCRtpCodecParameters.
-SDPUtils.writeRtpMap = function(codec) {
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
- (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
-};
-
-// Parses an a=extmap line (headerextension from RFC 5285). Sample input:
-// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
-SDPUtils.parseExtmap = function(line) {
- var parts = line.substr(9).split(' ');
- return {
- id: parseInt(parts[0], 10),
- uri: parts[1]
- };
-};
-
-// Generates a=extmap line from RTCRtpHeaderExtensionParameters or
-// RTCRtpHeaderExtension.
-SDPUtils.writeExtmap = function(headerExtension) {
- return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +
- ' ' + headerExtension.uri + '\r\n';
-};
-
-// Parses an ftmp line, returns dictionary. Sample input:
-// a=fmtp:96 vbr=on;cng=on
-// Also deals with vbr=on; cng=on
-SDPUtils.parseFmtp = function(line) {
- var parsed = {};
- var kv;
- var parts = line.substr(line.indexOf(' ') + 1).split(';');
- for (var j = 0; j < parts.length; j++) {
- kv = parts[j].trim().split('=');
- parsed[kv[0].trim()] = kv[1];
- }
- return parsed;
-};
-
-// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
-SDPUtils.writeFmtp = function(codec) {
- var line = '';
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- if (codec.parameters && Object.keys(codec.parameters).length) {
- var params = [];
- Object.keys(codec.parameters).forEach(function(param) {
- params.push(param + '=' + codec.parameters[param]);
- });
- line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
- }
- return line;
-};
-
-// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
-// a=rtcp-fb:98 nack rpsi
-SDPUtils.parseRtcpFb = function(line) {
- var parts = line.substr(line.indexOf(' ') + 1).split(' ');
- return {
- type: parts.shift(),
- parameter: parts.join(' ')
- };
-};
-// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
-SDPUtils.writeRtcpFb = function(codec) {
- var lines = '';
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
- // FIXME: special handling for trr-int?
- codec.rtcpFeedback.forEach(function(fb) {
- lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +
- (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +
- '\r\n';
- });
- }
- return lines;
-};
-
-// Parses an RFC 5576 ssrc media attribute. Sample input:
-// a=ssrc:3735928559 cname:something
-SDPUtils.parseSsrcMedia = function(line) {
- var sp = line.indexOf(' ');
- var parts = {
- ssrc: parseInt(line.substr(7, sp - 7), 10)
- };
- var colon = line.indexOf(':', sp);
- if (colon > -1) {
- parts.attribute = line.substr(sp + 1, colon - sp - 1);
- parts.value = line.substr(colon + 1);
- } else {
- parts.attribute = line.substr(sp + 1);
- }
- return parts;
-};
-
-// Extracts DTLS parameters from SDP media section or sessionpart.
-// FIXME: for consistency with other functions this should only
-// get the fingerprint line as input. See also getIceParameters.
-SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
- var lines = SDPUtils.splitLines(mediaSection);
- // Search in session part, too.
- lines = lines.concat(SDPUtils.splitLines(sessionpart));
- var fpLine = lines.filter(function(line) {
- return line.indexOf('a=fingerprint:') === 0;
- })[0].substr(14);
- // Note: a=setup line is ignored since we use the 'auto' role.
- var dtlsParameters = {
- role: 'auto',
- fingerprints: [{
- algorithm: fpLine.split(' ')[0],
- value: fpLine.split(' ')[1]
- }]
- };
- return dtlsParameters;
-};
-
-// Serializes DTLS parameters to SDP.
-SDPUtils.writeDtlsParameters = function(params, setupType) {
- var sdp = 'a=setup:' + setupType + '\r\n';
- params.fingerprints.forEach(function(fp) {
- sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
- });
- return sdp;
-};
-// Parses ICE information from SDP media section or sessionpart.
-// FIXME: for consistency with other functions this should only
-// get the ice-ufrag and ice-pwd lines as input.
-SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
- var lines = SDPUtils.splitLines(mediaSection);
- // Search in session part, too.
- lines = lines.concat(SDPUtils.splitLines(sessionpart));
- var iceParameters = {
- usernameFragment: lines.filter(function(line) {
- return line.indexOf('a=ice-ufrag:') === 0;
- })[0].substr(12),
- password: lines.filter(function(line) {
- return line.indexOf('a=ice-pwd:') === 0;
- })[0].substr(10)
- };
- return iceParameters;
-};
-
-// Serializes ICE parameters to SDP.
-SDPUtils.writeIceParameters = function(params) {
- return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
- 'a=ice-pwd:' + params.password + '\r\n';
-};
-
-// Parses the SDP media section and returns RTCRtpParameters.
-SDPUtils.parseRtpParameters = function(mediaSection) {
- var description = {
- codecs: [],
- headerExtensions: [],
- fecMechanisms: [],
- rtcp: []
- };
- var lines = SDPUtils.splitLines(mediaSection);
- var mline = lines[0].split(' ');
- for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
- var pt = mline[i];
- var rtpmapline = SDPUtils.matchPrefix(
- mediaSection, 'a=rtpmap:' + pt + ' ')[0];
- if (rtpmapline) {
- var codec = SDPUtils.parseRtpMap(rtpmapline);
- var fmtps = SDPUtils.matchPrefix(
- mediaSection, 'a=fmtp:' + pt + ' ');
- // Only the first a=fmtp:<pt> is considered.
- codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
- codec.rtcpFeedback = SDPUtils.matchPrefix(
- mediaSection, 'a=rtcp-fb:' + pt + ' ')
- .map(SDPUtils.parseRtcpFb);
- description.codecs.push(codec);
- // parse FEC mechanisms from rtpmap lines.
- switch (codec.name.toUpperCase()) {
- case 'RED':
- case 'ULPFEC':
- description.fecMechanisms.push(codec.name.toUpperCase());
- break;
- default: // only RED and ULPFEC are recognized as FEC mechanisms.
- break;
- }
- }
- }
- SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {
- description.headerExtensions.push(SDPUtils.parseExtmap(line));
- });
- // FIXME: parse rtcp.
- return description;
-};
-
-// Generates parts of the SDP media section describing the capabilities /
-// parameters.
-SDPUtils.writeRtpDescription = function(kind, caps) {
- var sdp = '';
-
- // Build the mline.
- sdp += 'm=' + kind + ' ';
- sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
- sdp += ' UDP/TLS/RTP/SAVPF ';
- sdp += caps.codecs.map(function(codec) {
- if (codec.preferredPayloadType !== undefined) {
- return codec.preferredPayloadType;
- }
- return codec.payloadType;
- }).join(' ') + '\r\n';
-
- sdp += 'c=IN IP4 0.0.0.0\r\n';
- sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
-
- // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
- caps.codecs.forEach(function(codec) {
- sdp += SDPUtils.writeRtpMap(codec);
- sdp += SDPUtils.writeFmtp(codec);
- sdp += SDPUtils.writeRtcpFb(codec);
- });
- // FIXME: add headerExtensions, fecMechanismş and rtcp.
- sdp += 'a=rtcp-mux\r\n';
- return sdp;
-};
-
-// Parses the SDP media section and returns an array of
-// RTCRtpEncodingParameters.
-SDPUtils.parseRtpEncodingParameters = function(mediaSection) {
- var encodingParameters = [];
- var description = SDPUtils.parseRtpParameters(mediaSection);
- var hasRed = description.fecMechanisms.indexOf('RED') !== -1;
- var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
-
- // filter a=ssrc:... cname:, ignore PlanB-msid
- var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
- .map(function(line) {
- return SDPUtils.parseSsrcMedia(line);
- })
- .filter(function(parts) {
- return parts.attribute === 'cname';
- });
- var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
- var secondarySsrc;
-
- var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
- .map(function(line) {
- var parts = line.split(' ');
- parts.shift();
- return parts.map(function(part) {
- return parseInt(part, 10);
- });
- });
- if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {
- secondarySsrc = flows[0][1];
- }
-
- description.codecs.forEach(function(codec) {
- if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {
- var encParam = {
- ssrc: primarySsrc,
- codecPayloadType: parseInt(codec.parameters.apt, 10),
- rtx: {
- payloadType: codec.payloadType,
- ssrc: secondarySsrc
- }
- };
- encodingParameters.push(encParam);
- if (hasRed) {
- encParam = JSON.parse(JSON.stringify(encParam));
- encParam.fec = {
- ssrc: secondarySsrc,
- mechanism: hasUlpfec ? 'red+ulpfec' : 'red'
- };
- encodingParameters.push(encParam);
- }
- }
- });
- if (encodingParameters.length === 0 && primarySsrc) {
- encodingParameters.push({
- ssrc: primarySsrc
- });
- }
-
- // we support both b=AS and b=TIAS but interpret AS as TIAS.
- var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
- if (bandwidth.length) {
- if (bandwidth[0].indexOf('b=TIAS:') === 0) {
- bandwidth = parseInt(bandwidth[0].substr(7), 10);
- } else if (bandwidth[0].indexOf('b=AS:') === 0) {
- bandwidth = parseInt(bandwidth[0].substr(5), 10);
- }
- encodingParameters.forEach(function(params) {
- params.maxBitrate = bandwidth;
- });
- }
- return encodingParameters;
-};
-
-SDPUtils.writeSessionBoilerplate = function() {
- // FIXME: sess-id should be an NTP timestamp.
- return 'v=0\r\n' +
- 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
- 's=-\r\n' +
- 't=0 0\r\n';
-};
-
-SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
- var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
-
- // Map ICE parameters (ufrag, pwd) to SDP.
- sdp += SDPUtils.writeIceParameters(
- transceiver.iceGatherer.getLocalParameters());
-
- // Map DTLS parameters to SDP.
- sdp += SDPUtils.writeDtlsParameters(
- transceiver.dtlsTransport.getLocalParameters(),
- type === 'offer' ? 'actpass' : 'active');
-
- sdp += 'a=mid:' + transceiver.mid + '\r\n';
-
- if (transceiver.rtpSender && transceiver.rtpReceiver) {
- sdp += 'a=sendrecv\r\n';
- } else if (transceiver.rtpSender) {
- sdp += 'a=sendonly\r\n';
- } else if (transceiver.rtpReceiver) {
- sdp += 'a=recvonly\r\n';
- } else {
- sdp += 'a=inactive\r\n';
- }
-
- // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
- if (transceiver.rtpSender) {
- var msid = 'msid:' + stream.id + ' ' +
- transceiver.rtpSender.track.id + '\r\n';
- sdp += 'a=' + msid;
- sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
- ' ' + msid;
- }
- // FIXME: this should be written by writeRtpDescription.
- sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
- ' cname:' + SDPUtils.localCName + '\r\n';
- return sdp;
-};
-
-// Gets the direction from the mediaSection or the sessionpart.
-SDPUtils.getDirection = function(mediaSection, sessionpart) {
- // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
- var lines = SDPUtils.splitLines(mediaSection);
- for (var i = 0; i < lines.length; i++) {
- switch (lines[i]) {
- case 'a=sendrecv':
- case 'a=sendonly':
- case 'a=recvonly':
- case 'a=inactive':
- return lines[i].substr(2);
- default:
- // FIXME: What should happen here?
- }
- }
- if (sessionpart) {
- return SDPUtils.getDirection(sessionpart);
- }
- return 'sendrecv';
-};
-
-// Expose public methods.
-module.exports = SDPUtils;
-
-},{}],174:[function(require,module,exports){
-(function (Buffer){
-// prototype class for hash functions
-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) {
- if (typeof data === 'string') {
- enc = enc || 'utf8'
- data = new Buffer(data, enc)
- }
-
- var l = this._len += data.length
- var s = this._s || 0
- var f = 0
- var buffer = this._block
-
- while (s < l) {
- var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
- var ch = (t - f)
-
- for (var i = 0; i < ch; i++) {
- buffer[(s % this._blockSize) + i] = data[i + f]
- }
-
- s += ch
- f += ch
-
- if ((s % this._blockSize) === 0) {
- this._update(buffer)
- }
- }
- this._s = s
-
- return this
-}
-
-Hash.prototype.digest = function (enc) {
- // Suppose the length of the message M, in bits, is l
- var l = this._len * 8
-
- // Append the bit 1 to the end of the message
- this._block[this._len % this._blockSize] = 0x80
-
- // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
- this._block.fill(0, this._len % this._blockSize + 1)
-
- if (l % (this._blockSize * 8) >= this._finalSize * 8) {
- this._update(this._block)
- this._block.fill(0)
- }
-
- // to this append the block which is equal to the number l written in binary
- // TODO: handle case where l is > Math.pow(2, 29)
- 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":6}],175:[function(require,module,exports){
-var exports = module.exports = function SHA (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":176,"./sha1":177,"./sha224":178,"./sha256":179,"./sha384":180,"./sha512":181}],176:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
- * in FIPS PUB 180-1
- * This source code is derived from sha1.js of the same repository.
- * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
- * operation was added.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
-]
-
-var W = new Array(80)
-
-function Sha () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha, Hash)
-
-Sha.prototype.init = function () {
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- this._e = 0xc3d2e1f0
-
- return this
-}
-
-function rotl5 (num) {
- return (num << 5) | (num >>> 27)
-}
-
-function rotl30 (num) {
- return (num << 30) | (num >>> 2)
-}
-
-function ft (s, b, c, d) {
- if (s === 0) return (b & c) | ((~b) & d)
- if (s === 2) return (b & c) | (b & d) | (c & d)
- return b ^ c ^ d
-}
-
-Sha.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
-
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]
-
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20)
- var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
-
- e = d
- d = c
- c = rotl30(b)
- b = a
- a = t
- }
-
- 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)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"buffer":6,"inherits":45}],177:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
-]
-
-var W = new Array(80)
-
-function Sha1 () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha1, Hash)
-
-Sha1.prototype.init = function () {
- this._a = 0x67452301
- this._b = 0xefcdab89
- this._c = 0x98badcfe
- this._d = 0x10325476
- this._e = 0xc3d2e1f0
-
- return this
-}
-
-function rotl1 (num) {
- return (num << 1) | (num >>> 31)
-}
-
-function rotl5 (num) {
- return (num << 5) | (num >>> 27)
-}
-
-function rotl30 (num) {
- return (num << 30) | (num >>> 2)
-}
-
-function ft (s, b, c, d) {
- if (s === 0) return (b & c) | ((~b) & d)
- if (s === 2) return (b & c) | (b & d) | (c & d)
- return b ^ c ^ d
-}
-
-Sha1.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
-
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])
-
- for (var j = 0; j < 80; ++j) {
- var s = ~~(j / 20)
- var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
-
- e = d
- d = c
- c = rotl30(b)
- b = a
- a = t
- }
-
- 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)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha1
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"buffer":6,"inherits":45}],178:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Sha256 = require('./sha256')
-var Hash = require('./hash')
-
-var W = new Array(64)
-
-function Sha224 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha224, Sha256)
-
-Sha224.prototype.init = function () {
- this._a = 0xc1059ed8
- this._b = 0x367cd507
- this._c = 0x3070dd17
- this._d = 0xf70e5939
- this._e = 0xffc00b31
- this._f = 0x68581511
- this._g = 0x64f98fa7
- this._h = 0xbefa4fa4
-
- return this
-}
-
-Sha224.prototype._hash = function () {
- var H = new Buffer(28)
-
- 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)
-
- return H
-}
-
-module.exports = Sha224
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"./sha256":179,"buffer":6,"inherits":45}],179:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
- 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
- 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
- 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
- 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
- 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
- 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
- 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
- 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
- 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
- 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
- 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
- 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
- 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
- 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
-]
-
-var W = new Array(64)
-
-function Sha256 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha256, Hash)
-
-Sha256.prototype.init = function () {
- this._a = 0x6a09e667
- this._b = 0xbb67ae85
- this._c = 0x3c6ef372
- this._d = 0xa54ff53a
- this._e = 0x510e527f
- this._f = 0x9b05688c
- this._g = 0x1f83d9ab
- this._h = 0x5be0cd19
-
- return this
-}
-
-function ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function sigma0 (x) {
- return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
-}
-
-function sigma1 (x) {
- return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
-}
-
-function gamma0 (x) {
- return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
-}
-
-function gamma1 (x) {
- return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
-}
-
-Sha256.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
-
- for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
- for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0
-
- for (var j = 0; j < 64; ++j) {
- var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0
- var T2 = (sigma0(a) + maj(a, b, c)) | 0
-
- h = g
- g = f
- f = e
- e = (d + T1) | 0
- d = c
- c = b
- b = a
- a = (T1 + T2) | 0
- }
-
- 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)
-
- 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)
-
- return H
-}
-
-module.exports = Sha256
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"buffer":6,"inherits":45}],180:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var SHA512 = require('./sha512')
-var Hash = require('./hash')
-
-var W = new Array(160)
-
-function Sha384 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha384, SHA512)
-
-Sha384.prototype.init = function () {
- this._ah = 0xcbbb9d5d
- this._bh = 0x629a292a
- this._ch = 0x9159015a
- this._dh = 0x152fecd8
- this._eh = 0x67332667
- this._fh = 0x8eb44a87
- this._gh = 0xdb0c2e0d
- this._hh = 0x47b5481d
-
- this._al = 0xc1059ed8
- this._bl = 0x367cd507
- this._cl = 0x3070dd17
- this._dl = 0xf70e5939
- this._el = 0xffc00b31
- this._fl = 0x68581511
- this._gl = 0x64f98fa7
- this._hl = 0xbefa4fa4
-
- return this
-}
-
-Sha384.prototype._hash = function () {
- var H = new Buffer(48)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._ah, this._al, 0)
- writeInt64BE(this._bh, this._bl, 8)
- writeInt64BE(this._ch, this._cl, 16)
- writeInt64BE(this._dh, this._dl, 24)
- writeInt64BE(this._eh, this._el, 32)
- writeInt64BE(this._fh, this._fl, 40)
-
- return H
-}
-
-module.exports = Sha384
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"./sha512":181,"buffer":6,"inherits":45}],181:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
-]
-
-var W = new Array(160)
-
-function Sha512 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha512, Hash)
-
-Sha512.prototype.init = function () {
- this._ah = 0x6a09e667
- this._bh = 0xbb67ae85
- this._ch = 0x3c6ef372
- this._dh = 0xa54ff53a
- this._eh = 0x510e527f
- this._fh = 0x9b05688c
- this._gh = 0x1f83d9ab
- this._hh = 0x5be0cd19
-
- this._al = 0xf3bcc908
- this._bl = 0x84caa73b
- this._cl = 0xfe94f82b
- this._dl = 0x5f1d36f1
- this._el = 0xade682d1
- this._fl = 0x2b3e6c1f
- this._gl = 0xfb41bd6b
- this._hl = 0x137e2179
-
- return this
-}
-
-function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function sigma0 (x, xl) {
- return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
-}
-
-function sigma1 (x, xl) {
- return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
-}
-
-function Gamma0 (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
-}
-
-function Gamma0l (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
-}
-
-function Gamma1 (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
-}
-
-function Gamma1l (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
-}
-
-function getCarry (a, b) {
- return (a >>> 0) < (b >>> 0) ? 1 : 0
-}
-
-Sha512.prototype._update = function (M) {
- var W = this._w
-
- var ah = this._ah | 0
- var bh = this._bh | 0
- var ch = this._ch | 0
- var dh = this._dh | 0
- var eh = this._eh | 0
- var fh = this._fh | 0
- var gh = this._gh | 0
- var hh = this._hh | 0
-
- var al = this._al | 0
- var bl = this._bl | 0
- var cl = this._cl | 0
- var dl = this._dl | 0
- var el = this._el | 0
- var fl = this._fl | 0
- var gl = this._gl | 0
- var hl = this._hl | 0
-
- for (var i = 0; i < 32; i += 2) {
- W[i] = M.readInt32BE(i * 4)
- W[i + 1] = M.readInt32BE(i * 4 + 4)
- }
- for (; i < 160; i += 2) {
- var xh = W[i - 15 * 2]
- var xl = W[i - 15 * 2 + 1]
- var gamma0 = Gamma0(xh, xl)
- var gamma0l = Gamma0l(xl, xh)
-
- xh = W[i - 2 * 2]
- xl = W[i - 2 * 2 + 1]
- var gamma1 = Gamma1(xh, xl)
- var gamma1l = Gamma1l(xl, xh)
-
- // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
- var Wi7h = W[i - 7 * 2]
- var Wi7l = W[i - 7 * 2 + 1]
-
- var Wi16h = W[i - 16 * 2]
- var Wi16l = W[i - 16 * 2 + 1]
-
- var Wil = (gamma0l + Wi7l) | 0
- var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0
- Wil = (Wil + gamma1l) | 0
- Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0
- Wil = (Wil + Wi16l) | 0
- Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0
-
- W[i] = Wih
- W[i + 1] = Wil
- }
-
- for (var j = 0; j < 160; j += 2) {
- Wih = W[j]
- Wil = W[j + 1]
-
- var majh = maj(ah, bh, ch)
- var majl = maj(al, bl, cl)
-
- var sigma0h = sigma0(ah, al)
- var sigma0l = sigma0(al, ah)
- var sigma1h = sigma1(eh, el)
- var sigma1l = sigma1(el, eh)
-
- // t1 = h + sigma1 + ch + K[j] + W[j]
- var Kih = K[j]
- var Kil = K[j + 1]
-
- var chh = Ch(eh, fh, gh)
- var chl = Ch(el, fl, gl)
-
- var t1l = (hl + sigma1l) | 0
- var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0
- t1l = (t1l + chl) | 0
- t1h = (t1h + chh + getCarry(t1l, chl)) | 0
- t1l = (t1l + Kil) | 0
- t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0
- t1l = (t1l + Wil) | 0
- t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0
-
- // t2 = sigma0 + maj
- var t2l = (sigma0l + majl) | 0
- var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0
-
- hh = gh
- hl = gl
- gh = fh
- gl = fl
- fh = eh
- fl = el
- el = (dl + t1l) | 0
- eh = (dh + t1h + getCarry(el, dl)) | 0
- dh = ch
- dl = cl
- ch = bh
- cl = bl
- bh = ah
- bl = al
- al = (t1l + t2l) | 0
- ah = (t1h + t2h + getCarry(al, t1l)) | 0
- }
-
- 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._ah = (this._ah + ah + getCarry(this._al, al)) | 0
- this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0
- this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0
- this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0
- this._eh = (this._eh + eh + getCarry(this._el, el)) | 0
- this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0
- this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0
- this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0
-}
-
-Sha512.prototype._hash = function () {
- var H = new Buffer(64)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._ah, this._al, 0)
- writeInt64BE(this._bh, this._bl, 8)
- writeInt64BE(this._ch, this._cl, 16)
- writeInt64BE(this._dh, this._dl, 24)
- writeInt64BE(this._eh, this._el, 32)
- writeInt64BE(this._fh, this._fl, 40)
- writeInt64BE(this._gh, this._gl, 48)
- writeInt64BE(this._hh, this._hl, 56)
-
- return H
-}
-
-module.exports = Sha512
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":174,"buffer":6,"inherits":45}],182:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-module.exports = Stream;
-
-var EE = require('events').EventEmitter;
-var 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');
-
-// Backwards-compat with node 0.4.x
-Stream.Stream = Stream;
-
-
-
-// old-style streams. Note that the pipe method (the only relevant
-// part of this class) is overridden in the Readable class.
-
-function Stream() {
- EE.call(this);
-}
-
-Stream.prototype.pipe = function(dest, options) {
- var source = this;
-
- function ondata(chunk) {
- if (dest.writable) {
- if (false === dest.write(chunk) && source.pause) {
- source.pause();
- }
- }
- }
-
- source.on('data', ondata);
-
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
-
- dest.on('drain', ondrain);
-
- // If the 'end' option is not supplied, dest.end() will be called when
- // source gets the 'end' or 'close' events. Only dest.end() once.
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on('end', onend);
- source.on('close', onclose);
- }
-
- var didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- dest.end();
- }
-
-
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- if (typeof dest.destroy === 'function') dest.destroy();
- }
-
- // don't leave dangling pipes when there are errors.
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, 'error') === 0) {
- throw er; // Unhandled stream error in pipe.
- }
- }
-
- source.on('error', onerror);
- dest.on('error', onerror);
-
- // remove all the event listeners that were added.
- 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);
- }
-
- source.on('end', cleanup);
- source.on('close', cleanup);
-
- dest.on('close', cleanup);
-
- dest.emit('pipe', source);
-
- // Allow for unix-like usage: A.pipe(B).pipe(C)
- return dest;
-};
-
-},{"events":27,"inherits":45,"readable-stream/duplex.js":155,"readable-stream/passthrough.js":162,"readable-stream/readable.js":163,"readable-stream/transform.js":164,"readable-stream/writable.js":165}],183:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var Buffer = require('buffer').Buffer;
-
-var 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 true;
- default: return false;
- }
- }
-
-
-function assertEncoding(encoding) {
- if (encoding && !isBufferEncoding(encoding)) {
- throw new Error('Unknown encoding: ' + encoding);
- }
-}
-
-// StringDecoder provides an interface for efficiently splitting a series of
-// buffers into a series of JS strings without breaking apart multi-byte
-// characters. CESU-8 is handled as part of the UTF-8 encoding.
-//
-// @TODO Handling all encodings inside a single object makes it very difficult
-// to reason about this code, so it should be split up in the future.
-// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
-// points as used by CESU-8.
-var StringDecoder = exports.StringDecoder = function(encoding) {
- this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
- assertEncoding(encoding);
- switch (this.encoding) {
- case 'utf8':
- // CESU-8 represents each of Surrogate Pair by 3-bytes
- this.surrogateSize = 3;
- break;
- case 'ucs2':
- case 'utf16le':
- // UTF-16 represents each of Surrogate Pair by 2-bytes
- this.surrogateSize = 2;
- this.detectIncompleteChar = utf16DetectIncompleteChar;
- break;
- case 'base64':
- // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
- this.surrogateSize = 3;
- this.detectIncompleteChar = base64DetectIncompleteChar;
- break;
- default:
- this.write = passThroughWrite;
- return;
- }
-
- // Enough space to store all bytes of a single character. UTF-8 needs 4
- // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
- this.charBuffer = new Buffer(6);
- // Number of bytes received for the current incomplete multi-byte character.
- this.charReceived = 0;
- // Number of bytes expected for the current incomplete multi-byte character.
- this.charLength = 0;
-};
-
-
-// write decodes the given buffer and returns it as JS string that is
-// guaranteed to not contain any partial multi-byte characters. Any partial
-// character found at the end of the buffer is buffered up, and will be
-// returned when calling write again with the remaining bytes.
-//
-// Note: Converting a Buffer containing an orphan surrogate to a String
-// currently works, but converting a String to a Buffer (via `new Buffer`, or
-// Buffer#write) will replace incomplete surrogates with the unicode
-// replacement character. See https://codereview.chromium.org/121173009/ .
-StringDecoder.prototype.write = function(buffer) {
- var charStr = '';
- // if our last write ended with an incomplete multibyte character
- while (this.charLength) {
- // determine how many remaining bytes this buffer has to offer for this char
- var available = (buffer.length >= this.charLength - this.charReceived) ?
- this.charLength - this.charReceived :
- buffer.length;
-
- // add the new bytes to the char buffer
- buffer.copy(this.charBuffer, this.charReceived, 0, available);
- this.charReceived += available;
-
- if (this.charReceived < this.charLength) {
- // still not enough chars in this buffer? wait for more ...
- return '';
- }
-
- // remove bytes belonging to the current character from the buffer
- buffer = buffer.slice(available, buffer.length);
-
- // get the character that was split
- charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
-
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- var charCode = charStr.charCodeAt(charStr.length - 1);
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- this.charLength += this.surrogateSize;
- charStr = '';
- continue;
- }
- this.charReceived = this.charLength = 0;
-
- // if there are no more bytes in this buffer, just emit our char
- if (buffer.length === 0) {
- return charStr;
- }
- break;
- }
-
- // determine and set charLength / charReceived
- this.detectIncompleteChar(buffer);
-
- var end = buffer.length;
- if (this.charLength) {
- // buffer the incomplete character bytes we got
- 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;
- var charCode = charStr.charCodeAt(end);
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- var size = this.surrogateSize;
- this.charLength += size;
- this.charReceived += size;
- this.charBuffer.copy(this.charBuffer, size, 0, size);
- buffer.copy(this.charBuffer, 0, 0, size);
- return charStr.substring(0, end);
- }
-
- // or just emit the charStr
- return charStr;
-};
-
-// detectIncompleteChar determines if there is an incomplete UTF-8 character at
-// the end of the given buffer. If so, it sets this.charLength to the byte
-// length that character, and sets this.charReceived to the number of bytes
-// that are available for this character.
-StringDecoder.prototype.detectIncompleteChar = function(buffer) {
- // determine how many bytes we have to check at the end of this buffer
- var i = (buffer.length >= 3) ? 3 : buffer.length;
-
- // Figure out if one of the last i bytes of our buffer announces an
- // incomplete char.
- for (; i > 0; i--) {
- var c = buffer[buffer.length - i];
-
- // See http://en.wikipedia.org/wiki/UTF-8#Description
-
- // 110XXXXX
- if (i == 1 && c >> 5 == 0x06) {
- this.charLength = 2;
- break;
- }
-
- // 1110XXXX
- if (i <= 2 && c >> 4 == 0x0E) {
- this.charLength = 3;
- break;
- }
-
- // 11110XXX
- if (i <= 3 && c >> 3 == 0x1E) {
- this.charLength = 4;
- break;
- }
- }
- this.charReceived = i;
-};
-
-StringDecoder.prototype.end = function(buffer) {
- var res = '';
- if (buffer && buffer.length)
- res = this.write(buffer);
-
- if (this.charReceived) {
- var cr = this.charReceived;
- var buf = this.charBuffer;
- var enc = this.encoding;
- res += buf.slice(0, cr).toString(enc);
- }
-
- return res;
-};
-
-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;
-}
-
-},{"buffer":6}],184:[function(require,module,exports){
-// based on https://github.com/ESTOS/strophe.jingle/
-// adds wildemitter support
-var util = require('util');
-var adapter = require('webrtc-adapter'); // jshint ignore:line
-var WildEmitter = require('wildemitter');
-
-function dumpSDP(description) {
- return {
- type: description.type,
- sdp: description.sdp
- };
-}
-
-function dumpStream(stream) {
- var info = {
- label: stream.id,
- };
- if (stream.getAudioTracks().length) {
- info.audio = stream.getAudioTracks().map(function (track) {
- return track.id;
- });
- }
- if (stream.getVideoTracks().length) {
- info.video = stream.getVideoTracks().map(function (track) {
- return track.id;
- });
- }
- return 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);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- };
- this.onaddstream = null;
- this.peerconnection.onaddstream = function (event) {
- self.trace('onaddstream', dumpStream(event.stream));
- if (self.onaddstream !== null) {
- self.onaddstream(event);
- }
- };
- this.onremovestream = null;
- this.peerconnection.onremovestream = function (event) {
- self.trace('onremovestream', dumpStream(event.stream));
- if (self.onremovestream !== null) {
- self.onremovestream(event);
- }
- };
- this.onsignalingstatechange = null;
- this.peerconnection.onsignalingstatechange = function (event) {
- self.trace('onsignalingstatechange', self.signalingState);
- if (self.onsignalingstatechange !== null) {
- self.onsignalingstatechange(event);
- }
- };
- this.oniceconnectionstatechange = null;
- this.peerconnection.oniceconnectionstatechange = function (event) {
- self.trace('oniceconnectionstatechange', self.iceConnectionState);
- if (self.oniceconnectionstatechange !== null) {
- self.oniceconnectionstatechange(event);
- }
- };
- this.onnegotiationneeded = null;
- this.peerconnection.onnegotiationneeded = function (event) {
- self.trace('onnegotiationneeded');
- if (self.onnegotiationneeded !== null) {
- self.onnegotiationneeded(event);
- }
- };
- self.ondatachannel = null;
- this.peerconnection.ondatachannel = function (event) {
- self.trace('ondatachannel', event);
- if (self.ondatachannel !== null) {
- self.ondatachannel(event);
- }
- };
- this.getLocalStreams = this.peerconnection.getLocalStreams.bind(this.peerconnection);
- this.getRemoteStreams = this.peerconnection.getRemoteStreams.bind(this.peerconnection);
-}
-
-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) {
- this.trace('createDataChannel', label, opts);
- return this.peerconnection.createDataChannel(label, opts);
-};
-
-TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setLocalDescription', dumpSDP(description));
- return this.peerconnection.setLocalDescription(
- description
- ).then(
- function () {
- self.trace('setLocalDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setLocalDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.setRemoteDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setRemoteDescription', dumpSDP(description));
- return this.peerconnection.setRemoteDescription(
- description
- ).then(
- function () {
- self.trace('setRemoteDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setRemoteDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.close = function () {
- this.trace('stop');
- if (this.peerconnection.signalingState != 'closed') {
- this.peerconnection.close();
- }
-};
-
-TraceablePeerConnection.prototype.createOffer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createOffer', constraints);
- return this.peerconnection.createOffer(
- constraints
- ).then(
- function (offer) {
- self.trace('createOfferOnSuccess', dumpSDP(offer));
- if (successCallback) successCallback(offer);
- },
- function (err) {
- self.trace('createOfferOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.createAnswer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createAnswer', constraints);
- return this.peerconnection.createAnswer(
- constraints
- ).then(
- function (answer) {
- self.trace('createAnswerOnSuccess', dumpSDP(answer));
- if (successCallback) successCallback(answer);
- },
- function (err) {
- self.trace('createAnswerOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.addIceCandidate = function (candidate, successCallback, failureCallback) {
- var self = this;
- this.trace('addIceCandidate', candidate);
- return this.peerconnection.addIceCandidate(
- candidate
- ).then(
- function () {
- //self.trace('addIceCandidateOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('addIceCandidateOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.getStats = function () {
- this.peerconnection.getStats.apply(this.peerconnection, arguments);
-};
-
-module.exports = TraceablePeerConnection;
-
-},{"util":197,"webrtc-adapter":185,"wildemitter":211}],185:[function(require,module,exports){
-arguments[4][33][0].apply(exports,arguments)
-},{"./chrome/chrome_shim":186,"./edge/edge_shim":188,"./firefox/firefox_shim":190,"./safari/safari_shim":192,"./utils":193,"dup":33}],186:[function(require,module,exports){
-arguments[4][34][0].apply(exports,arguments)
-},{"../utils.js":193,"./getusermedia":187,"dup":34}],187:[function(require,module,exports){
-arguments[4][35][0].apply(exports,arguments)
-},{"../utils.js":193,"dup":35}],188:[function(require,module,exports){
-arguments[4][36][0].apply(exports,arguments)
-},{"../utils":193,"./getusermedia":189,"dup":36,"sdp":173}],189:[function(require,module,exports){
-arguments[4][37][0].apply(exports,arguments)
-},{"dup":37}],190:[function(require,module,exports){
-arguments[4][38][0].apply(exports,arguments)
-},{"../utils":193,"./getusermedia":191,"dup":38}],191:[function(require,module,exports){
-arguments[4][39][0].apply(exports,arguments)
-},{"../utils":193,"dup":39}],192:[function(require,module,exports){
-arguments[4][40][0].apply(exports,arguments)
-},{"dup":40}],193:[function(require,module,exports){
-arguments[4][41][0].apply(exports,arguments)
-},{"dup":41}],194:[function(require,module,exports){
-(function (global){
-
-/**
- * Module exports.
- */
-
-module.exports = deprecate;
-
-/**
- * Mark that a method should not be used.
- * Returns a modified function which warns once by default.
- *
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
- *
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
- * will throw an Error when invoked.
- *
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
- * will invoke `console.trace()` instead of `console.error()`.
- *
- * @param {Function} fn - the function to deprecate
- * @param {String} msg - the string to print to the console when `fn` is invoked
- * @returns {Function} a new "deprecated" version of `fn`
- * @api public
- */
-
-function deprecate (fn, msg) {
- if (config('noDeprecation')) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (config('throwDeprecation')) {
- throw new Error(msg);
- } else if (config('traceDeprecation')) {
- console.trace(msg);
- } else {
- console.warn(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-}
-
-/**
- * Checks `localStorage` for boolean values for the given `name`.
- *
- * @param {String} name
- * @returns {Boolean}
- * @api private
- */
-
-function config (name) {
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
- try {
- if (!global.localStorage) return false;
- } catch (_) {
- return false;
- }
- var val = global.localStorage[name];
- if (null == val) return false;
- return String(val).toLowerCase() === 'true';
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],195:[function(require,module,exports){
-arguments[4][45][0].apply(exports,arguments)
-},{"dup":45}],196:[function(require,module,exports){
-module.exports = function isBuffer(arg) {
- return arg && typeof arg === 'object'
- && typeof arg.copy === 'function'
- && typeof arg.fill === 'function'
- && typeof arg.readUInt8 === 'function';
-}
-},{}],197:[function(require,module,exports){
-(function (process,global){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var formatRegExp = /%[sdj%]/g;
-exports.format = function(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(' ');
- }
-
- var i = 1;
- var args = arguments;
- var len = args.length;
- var 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;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += ' ' + x;
- } else {
- str += ' ' + inspect(x);
- }
- }
- return str;
-};
-
-
-// Mark that a method should not be used.
-// Returns a modified function which warns once by default.
-// If --no-deprecation is set, then it is a no-op.
-exports.deprecate = function(fn, msg) {
- // Allow for deprecating things in the process of starting up.
- if (isUndefined(global.process)) {
- return function() {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
-
- if (process.noDeprecation === true) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-};
-
-
-var debugs = {};
-var debugEnviron;
-exports.debuglog = function(set) {
- if (isUndefined(debugEnviron))
- debugEnviron = process.env.NODE_DEBUG || '';
- set = set.toUpperCase();
- if (!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];
-};
-
-
-/**
- * Echos the value of a value. Trys to print the value out
- * in the best way possible given the different types.
- *
- * @param {Object} obj The object to print out.
- * @param {Object} opts Optional options object that alters the output.
- */
-/* legacy: obj, showHidden, depth, colors*/
-function inspect(obj, opts) {
- // default options
- var ctx = {
- seen: [],
- stylize: stylizeNoColor
- };
- // legacy...
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- // legacy...
- ctx.showHidden = opts;
- } else if (opts) {
- // got an "options" object
- exports._extend(ctx, opts);
- }
- // set default options
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-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]
-};
-
-// Don't use 'blue' not visible on cmd.exe
-inspect.styles = {
- 'special': 'cyan',
- 'number': 'yellow',
- 'boolean': 'yellow',
- 'undefined': 'grey',
- 'null': 'bold',
- 'string': 'green',
- 'date': 'magenta',
- // "name": intentionally not styling
- 'regexp': 'red'
-};
-
-
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
-
- if (style) {
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
- '\u001b[' + inspect.colors[style][1] + 'm';
- } else {
- return str;
- }
-}
-
-
-function stylizeNoColor(str, styleType) {
- return str;
-}
-
-
-function arrayToHash(array) {
- var hash = {};
-
- array.forEach(function(val, idx) {
- hash[val] = true;
- });
-
- return hash;
-}
-
-
-function formatValue(ctx, value, recurseTimes) {
- // Provide a hook for user-specified inspect functions.
- // Check that value is an object with an inspect function on it
- if (ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- // Filter out the util module, it's inspect function is special
- value.inspect !== exports.inspect &&
- // Also filter out any prototype objects using the circular check.
- !(value.constructor && value.constructor.prototype === value)) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
-
- // Primitive types cannot have properties
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
-
- // Look up the keys of the object.
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
-
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
-
- // IE doesn't make error fields non-enumerable
- // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
- if (isError(value)
- && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
- return formatError(value);
- }
-
- // Some type of object without properties can be shortcutted.
- if (keys.length === 0) {
- 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 = false, braces = ['{', '}'];
-
- // Make Array say that they are Array
- if (isArray(value)) {
- array = true;
- braces = ['[', ']'];
- }
-
- // Make functions say that they are functions
- if (isFunction(value)) {
- var n = value.name ? ': ' + value.name : '';
- base = ' [Function' + n + ']';
- }
-
- // Make RegExps say that they are RegExps
- if (isRegExp(value)) {
- base = ' ' + RegExp.prototype.toString.call(value);
- }
-
- // Make dates with properties first say the date
- if (isDate(value)) {
- base = ' ' + Date.prototype.toUTCString.call(value);
- }
-
- // Make error with message first say the error
- if (isError(value)) {
- base = ' ' + formatError(value);
- }
-
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
-
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- } else {
- return ctx.stylize('[Object]', 'special');
- }
- }
-
- ctx.seen.push(value);
-
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function(key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
-
- ctx.seen.pop();
-
- return 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');
- }
- if (isNumber(value))
- return ctx.stylize('' + value, 'number');
- if (isBoolean(value))
- return ctx.stylize('' + value, 'boolean');
- // For some reason typeof null is "object", so special case here.
- if (isNull(value))
- return ctx.stylize('null', 'null');
-}
-
-
-function formatError(value) {
- return '[' + Error.prototype.toString.call(value) + ']';
-}
-
-
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- String(i), true));
- } else {
- output.push('');
- }
- }
- keys.forEach(function(key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- key, true));
- }
- });
- return output;
-}
-
-
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize('[Getter/Setter]', 'special');
- } else {
- str = ctx.stylize('[Getter]', 'special');
- }
- } else {
- if (desc.set) {
- str = ctx.stylize('[Setter]', 'special');
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = '[' + key + ']';
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf('\n') > -1) {
- if (array) {
- str = str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n').substr(2);
- } else {
- str = '\n' + str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n');
- }
- }
- } else {
- str = ctx.stylize('[Circular]', 'special');
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify('' + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, 'name');
- } else {
- name = name.replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, 'string');
- }
- }
-
- return name + ': ' + str;
-}
-
-
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function(prev, cur) {
- numLinesEst++;
- if (cur.indexOf('\n') >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
- }, 0);
-
- if (length > 60) {
- return braces[0] +
- (base === '' ? '' : base + '\n ') +
- ' ' +
- output.join(',\n ') +
- ' ' +
- braces[1];
- }
-
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
-}
-
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = require('./support/isBuffer');
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-
-
-function pad(n) {
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
-}
-
-
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
- 'Oct', 'Nov', 'Dec'];
-
-// 26 Feb 16:19:34
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()),
- pad(d.getMinutes()),
- pad(d.getSeconds())].join(':');
- return [d.getDate(), months[d.getMonth()], time].join(' ');
-}
-
-
-// log is just a thin wrapper to console.log that prepends a timestamp
-exports.log = function() {
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
-};
-
-
-/**
- * Inherit the prototype methods from one constructor into another.
- *
- * The Function.prototype.inherits from lang.js rewritten as a standalone
- * function (not on Function.prototype). NOTE: If this file is to be loaded
- * during bootstrapping this function needs to be rewritten using some native
- * functions as prototype setup using normal JavaScript does not work as
- * expected during bootstrapping (see mirror.js in r114903).
- *
- * @param {function} ctor Constructor function which needs to inherit the
- * prototype.
- * @param {function} superCtor Constructor function to inherit prototype from.
- */
-exports.inherits = require('inherits');
-
-exports._extend = function(origin, add) {
- // Don't do anything if add isn't an object
- if (!add || !isObject(add)) return origin;
-
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-};
-
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":196,"_process":153,"inherits":195}],198:[function(require,module,exports){
-(function (global){
-
-var rng;
-
-var crypto = global.crypto || global.msCrypto; // for IE 11
-if (crypto && crypto.getRandomValues) {
- // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
- // Moderately fast, high quality
- var _rnds8 = new Uint8Array(16);
- rng = function whatwgRNG() {
- crypto.getRandomValues(_rnds8);
- return _rnds8;
- };
-}
-
-if (!rng) {
- // Math.random()-based (RNG)
- //
- // If all else fails, use Math.random(). It's fast, but is of unspecified
- // quality.
- var _rnds = new Array(16);
- rng = function() {
- for (var i = 0, r; i < 16; i++) {
- if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
- _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
- }
-
- return _rnds;
- };
-}
-
-module.exports = rng;
-
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],199:[function(require,module,exports){
-// uuid.js
-//
-// Copyright (c) 2010-2012 Robert Kieffer
-// MIT License - http://opensource.org/licenses/mit-license.php
-
-// Unique ID creation requires a high quality random # generator. We feature
-// detect to determine the best RNG source, normalizing to a function that
-// returns 128-bits of randomness, since that's what's usually required
-var _rng = require('./rng');
-
-// Maps for number <-> hex string conversion
-var _byteToHex = [];
-var _hexToByte = {};
-for (var i = 0; i < 256; i++) {
- _byteToHex[i] = (i + 0x100).toString(16).substr(1);
- _hexToByte[_byteToHex[i]] = i;
-}
-
-// **`parse()` - Parse a UUID into it's component bytes**
-function parse(s, buf, offset) {
- var i = (buf && offset) || 0, ii = 0;
-
- buf = buf || [];
- s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
- if (ii < 16) { // Don't overflow!
- buf[i + ii++] = _hexToByte[oct];
- }
- });
-
- // Zero out remaining bytes if string was short
- while (ii < 16) {
- buf[i + ii++] = 0;
- }
-
- return buf;
-}
-
-// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
-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++]];
-}
-
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
-
-// random #'s we need to init node and clockseq
-var _seedBytes = _rng();
-
-// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-var _nodeId = [
- _seedBytes[0] | 0x01,
- _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-];
-
-// Per 4.2.2, randomize (14 bit) clockseq
-var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
-
-// Previous uuid creation time
-var _lastMSecs = 0, _lastNSecs = 0;
-
-// See https://github.com/broofa/node-uuid for API details
-function v1(options, buf, offset) {
- var i = buf && offset || 0;
- var b = buf || [];
-
- options = options || {};
-
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
-
- // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
- var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
-
- // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
-
- // Time since last uuid creation (in msecs)
- var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
-
- // Per 4.2.1.2, Bump clockseq on clock regression
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- }
-
- // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- }
-
- // Per 4.2.1.2 Throw error if too many uuids are requested
- if (nsecs >= 10000) {
- throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
- }
-
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq;
-
- // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
- msecs += 12219292800000;
-
- // `time_low`
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff;
-
- // `time_mid`
- var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff;
-
- // `time_high_and_version`
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
- b[i++] = tmh >>> 16 & 0xff;
-
- // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
- b[i++] = clockseq >>> 8 | 0x80;
-
- // `clock_seq_low`
- b[i++] = clockseq & 0xff;
-
- // `node`
- var node = options.node || _nodeId;
- for (var n = 0; n < 6; n++) {
- b[i + n] = node[n];
- }
-
- return buf ? buf : unparse(b);
-}
-
-// **`v4()` - Generate random UUID**
-
-// See https://github.com/broofa/node-uuid for API details
-function v4(options, buf, offset) {
- // Deprecated - 'format' argument, as supported in v1.2
- var i = buf && offset || 0;
-
- if (typeof(options) == 'string') {
- buf = options == 'binary' ? new Array(16) : null;
- options = null;
- }
- options = options || {};
-
- var rnds = options.random || (options.rng || _rng)();
-
- // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
-
- // Copy bytes to buffer, if provided
- if (buf) {
- for (var ii = 0; ii < 16; ii++) {
- buf[i + ii] = rnds[ii];
- }
- }
-
- return buf || unparse(rnds);
-}
-
-// Export public API
-var uuid = v4;
-uuid.v1 = v1;
-uuid.v4 = v4;
-uuid.parse = parse;
-uuid.unparse = unparse;
-
-module.exports = uuid;
-
-},{"./rng":198}],200:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
-
-/* More information about these options at jshint.com/docs/options */
-/* jshint browser: true, camelcase: true, curly: true, devel: true,
- eqeqeq: true, forin: false, globalstrict: true, node: true,
- quotmark: single, undef: true, unused: strict */
-/* global mozRTCIceCandidate, mozRTCPeerConnection, Promise,
-mozRTCSessionDescription, webkitRTCPeerConnection, MediaStreamTrack,
-MediaStream, RTCIceGatherer, RTCIceTransport, RTCDtlsTransport,
-RTCRtpSender, RTCRtpReceiver*/
-/* exported trace,requestUserMedia */
-
-'use strict';
-
-var getUserMedia = null;
-var attachMediaStream = null;
-var reattachMediaStream = null;
-var webrtcDetectedBrowser = null;
-var webrtcDetectedVersion = null;
-var webrtcMinimumVersion = null;
-var webrtcUtils = {
- log: function() {
- // suppress console.log output when being included as a module.
- if (typeof module !== 'undefined' ||
- typeof require === 'function' && typeof define === 'function') {
- return;
- }
- console.log.apply(console, arguments);
- },
- extractVersion: function(uastring, expr, pos) {
- var match = uastring.match(expr);
- return match && match.length >= pos && parseInt(match[pos], 10);
- }
-};
-
-function trace(text) {
- // This function is used for logging.
- if (text[text.length - 1] === '\n') {
- text = text.substring(0, text.length - 1);
- }
- if (window.performance) {
- var now = (window.performance.now() / 1000).toFixed(3);
- webrtcUtils.log(now + ': ' + text);
- } else {
- webrtcUtils.log(text);
- }
-}
-
-if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- // If prefixed srcObject property exists, return it.
- // Otherwise use the shimmed property, _srcObject
- return 'mozSrcObject' in this ? this.mozSrcObject : this._srcObject;
- },
- set: function(stream) {
- if ('mozSrcObject' in this) {
- this.mozSrcObject = stream;
- } else {
- // Use _srcObject as a private property for this shim
- this._srcObject = stream;
- // TODO: revokeObjectUrl(this.src) when !stream to release resources?
- this.src = URL.createObjectURL(stream);
- }
- }
- });
- }
- // Proxy existing globals
- getUserMedia = window.navigator && window.navigator.getUserMedia;
-}
-
-// Attach a media stream to an element.
-attachMediaStream = function(element, stream) {
- element.srcObject = stream;
-};
-
-reattachMediaStream = function(to, from) {
- to.srcObject = from.srcObject;
-};
-
-if (typeof window === 'undefined' || !window.navigator) {
- webrtcUtils.log('This does not appear to be a browser');
- webrtcDetectedBrowser = 'not a browser';
-} else if (navigator.mozGetUserMedia) {
- webrtcUtils.log('This appears to be Firefox');
-
- webrtcDetectedBrowser = 'firefox';
-
- // the detected firefox version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Firefox\/([0-9]+)\./, 1);
-
- // the minimum firefox version still supported by adapter.
- webrtcMinimumVersion = 31;
-
- // Shim for RTCPeerConnection on older versions.
- if (!window.RTCPeerConnection) {
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- if (webrtcDetectedVersion < 38) {
- // .urls is not supported in FF < 38.
- // create RTCIceServers with a single url.
- if (pcConfig && pcConfig.iceServers) {
- var newIceServers = [];
- for (var 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]
- };
- if (server.urls[j].indexOf('turn') === 0) {
- 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); // jscs:ignore requireCapitalizedConstructors
- };
- window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (mozRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- if (arguments.length) {
- return mozRTCPeerConnection.generateCertificate.apply(null,
- arguments);
- } else {
- return mozRTCPeerConnection.generateCertificate;
- }
- }
- });
- }
-
- window.RTCSessionDescription = mozRTCSessionDescription;
- window.RTCIceCandidate = mozRTCIceCandidate;
- }
-
- // getUserMedia constraints shim.
- getUserMedia = function(constraints, onSuccess, onError) {
- var constraintsToFF37 = function(c) {
- if (typeof c !== 'object' || c.require) {
- return c;
- }
- var require = [];
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = c[key] = (typeof c[key] === 'object') ?
- c[key] : {ideal: c[key]};
- if (r.min !== undefined ||
- r.max !== undefined || r.exact !== undefined) {
- require.push(key);
- }
- if (r.exact !== undefined) {
- if (typeof r.exact === 'number') {
- r.min = r.max = r.exact;
- } else {
- c[key] = r.exact;
- }
- delete r.exact;
- }
- if (r.ideal !== undefined) {
- c.advanced = c.advanced || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[key] = {min: r.ideal, max: r.ideal};
- } else {
- oc[key] = r.ideal;
- }
- c.advanced.push(oc);
- delete r.ideal;
- if (!Object.keys(r).length) {
- delete c[key];
- }
- }
- });
- if (require.length) {
- c.require = require;
- }
- return c;
- };
- if (webrtcDetectedVersion < 38) {
- webrtcUtils.log('spec: ' + JSON.stringify(constraints));
- if (constraints.audio) {
- constraints.audio = constraintsToFF37(constraints.audio);
- }
- if (constraints.video) {
- constraints.video = constraintsToFF37(constraints.video);
- }
- webrtcUtils.log('ff37: ' + JSON.stringify(constraints));
- }
- return navigator.mozGetUserMedia(constraints, onSuccess, onError);
- };
-
- navigator.getUserMedia = getUserMedia;
-
- // Shim for mediaDevices on older versions.
- if (!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);
- });
- };
-
- if (webrtcDetectedVersion < 41) {
- // Work around http://bugzil.la/1169665
- var orgEnumerateDevices =
- navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
- navigator.mediaDevices.enumerateDevices = function() {
- return orgEnumerateDevices().then(undefined, function(e) {
- if (e.name === 'NotFoundError') {
- return [];
- }
- throw e;
- });
- };
- }
-} else if (navigator.webkitGetUserMedia && window.webkitRTCPeerConnection) {
- webrtcUtils.log('This appears to be Chrome');
-
- webrtcDetectedBrowser = 'chrome';
-
- // the detected chrome version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Chrom(e|ium)\/([0-9]+)\./, 2);
-
- // the minimum chrome version still supported by adapter.
- webrtcMinimumVersion = 38;
-
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- // Translate iceTransportPolicy to iceTransports,
- // see https://code.google.com/p/webrtc/issues/detail?id=4869
- if (pcConfig && pcConfig.iceTransportPolicy) {
- pcConfig.iceTransports = pcConfig.iceTransportPolicy;
- }
-
- var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
- var origGetStats = pc.getStats.bind(pc);
- pc.getStats = function(selector, successCallback, errorCallback) { // jshint ignore: line
- var self = this;
- var args = arguments;
-
- // If selector is a function then we are in the old style stats so just
- // pass back the original getStats format to avoid breaking old users.
- if (arguments.length > 0 && typeof selector === 'function') {
- return origGetStats(selector, successCallback);
- }
-
- var fixChromeStats = function(response) {
- var standardReport = {};
- var reports = response.result();
- 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;
- });
-
- return standardReport;
- };
-
- if (arguments.length >= 2) {
- var successCallbackWrapper = function(response) {
- args[1](fixChromeStats(response));
- };
-
- return origGetStats.apply(this, [successCallbackWrapper, arguments[0]]);
- }
-
- // promise-support
- return new Promise(function(resolve, reject) {
- if (args.length === 1 && selector === null) {
- origGetStats.apply(self, [
- function(response) {
- resolve.apply(null, [fixChromeStats(response)]);
- }, reject]);
- } else {
- origGetStats.apply(self, [resolve, reject]);
- }
- });
- };
-
- return pc;
- };
- window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (webkitRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- if (arguments.length) {
- return webkitRTCPeerConnection.generateCertificate.apply(null,
- arguments);
- } else {
- return webkitRTCPeerConnection.generateCertificate;
- }
- }
- });
- }
-
- // add promise support
- ['createOffer', 'createAnswer'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var self = this;
- if (arguments.length < 1 || (arguments.length === 1 &&
- typeof(arguments[0]) === 'object')) {
- var opts = arguments.length === 1 ? arguments[0] : undefined;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [resolve, reject, opts]);
- });
- } else {
- return nativeMethod.apply(this, arguments);
- }
- };
- });
-
- ['setLocalDescription', 'setRemoteDescription',
- 'addIceCandidate'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var args = arguments;
- var self = this;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [args[0],
- function() {
- resolve();
- if (args.length >= 2) {
- args[1].apply(null, []);
- }
- },
- function(err) {
- reject(err);
- if (args.length >= 3) {
- args[2].apply(null, [err]);
- }
- }]
- );
- });
- };
- });
-
- // getUserMedia constraints shim.
- var constraintsToChrome = function(c) {
- if (typeof c !== 'object' || c.mandatory || c.optional) {
- return c;
- }
- var cc = {};
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
- if (r.exact !== undefined && typeof r.exact === 'number') {
- r.min = r.max = r.exact;
- }
- var oldname = function(prefix, name) {
- if (prefix) {
- return prefix + name.charAt(0).toUpperCase() + name.slice(1);
- }
- return (name === 'deviceId') ? 'sourceId' : name;
- };
- if (r.ideal !== undefined) {
- cc.optional = cc.optional || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[oldname('min', key)] = r.ideal;
- cc.optional.push(oc);
- oc = {};
- oc[oldname('max', key)] = r.ideal;
- cc.optional.push(oc);
- } else {
- oc[oldname('', key)] = r.ideal;
- cc.optional.push(oc);
- }
- }
- if (r.exact !== undefined && typeof r.exact !== 'number') {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname('', key)] = r.exact;
- } else {
- ['min', 'max'].forEach(function(mix) {
- if (r[mix] !== undefined) {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname(mix, key)] = r[mix];
- }
- });
- }
- });
- if (c.advanced) {
- cc.optional = (cc.optional || []).concat(c.advanced);
- }
- return cc;
- };
-
- getUserMedia = function(constraints, onSuccess, onError) {
- if (constraints.audio) {
- constraints.audio = constraintsToChrome(constraints.audio);
- }
- if (constraints.video) {
- constraints.video = constraintsToChrome(constraints.video);
- }
- webrtcUtils.log('chrome: ' + JSON.stringify(constraints));
- return navigator.webkitGetUserMedia(constraints, onSuccess, onError);
- };
- navigator.getUserMedia = getUserMedia;
-
- if (!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: ''};
- }));
- });
- });
- }};
- }
-
- // A shim for getUserMedia method on the mediaDevices object.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (!navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia = function(constraints) {
- return requestUserMedia(constraints);
- };
- } else {
- // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
- // function which returns a Promise, it does not accept spec-style
- // constraints.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- webrtcUtils.log('spec: ' + JSON.stringify(c)); // whitespace for alignment
- c.audio = constraintsToChrome(c.audio);
- c.video = constraintsToChrome(c.video);
- webrtcUtils.log('chrome: ' + JSON.stringify(c));
- return origGetUserMedia(c);
- };
- }
-
- // Dummy devicechange event methods.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
- navigator.mediaDevices.addEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.addEventListener called.');
- };
- }
- if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
- navigator.mediaDevices.removeEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.removeEventListener called.');
- };
- }
-
- // Attach a media stream to an element.
- attachMediaStream = function(element, stream) {
- if (webrtcDetectedVersion >= 43) {
- element.srcObject = stream;
- } else if (typeof element.src !== 'undefined') {
- element.src = URL.createObjectURL(stream);
- } else {
- webrtcUtils.log('Error attaching stream to element.');
- }
- };
- reattachMediaStream = function(to, from) {
- if (webrtcDetectedVersion >= 43) {
- to.srcObject = from.srcObject;
- } else {
- to.src = from.src;
- }
- };
-
-} else if (navigator.mediaDevices && navigator.userAgent.match(
- /Edge\/(\d+).(\d+)$/)) {
- webrtcUtils.log('This appears to be Edge');
- webrtcDetectedBrowser = 'edge';
-
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Edge\/(\d+).(\d+)$/, 2);
-
- // The minimum version still supported by adapter.
- // This is the build number for Edge.
- webrtcMinimumVersion = 10547;
-
- if (window.RTCIceGatherer) {
- // Generate an alphanumeric identifier for cname or mids.
- // TODO: use UUIDs instead? https://gist.github.com/jed/982883
- var generateIdentifier = function() {
- return Math.random().toString(36).substr(2, 10);
- };
-
- // The RTCP CNAME used by all peerconnections from the same JS.
- var localCName = generateIdentifier();
-
- // SDP helpers - to be moved into separate module.
- var SDPUtils = {};
-
- // Splits SDP into lines, dealing with both CRLF and LF.
- SDPUtils.splitLines = function(blob) {
- return blob.trim().split('\n').map(function(line) {
- return line.trim();
- });
- };
-
- // Splits SDP into sessionpart and mediasections. Ensures CRLF.
- SDPUtils.splitSections = function(blob) {
- var parts = blob.split('\r\nm=');
- return parts.map(function(part, index) {
- return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
- });
- };
-
- // Returns lines that start with a certain prefix.
- SDPUtils.matchPrefix = function(blob, prefix) {
- return SDPUtils.splitLines(blob).filter(function(line) {
- return line.indexOf(prefix) === 0;
- });
- };
-
- // Parses an ICE candidate line. Sample input:
- // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8 rport 55996"
- SDPUtils.parseCandidate = function(line) {
- var parts;
- // Parse both variants.
- if (line.indexOf('a=candidate:') === 0) {
- parts = line.substring(12).split(' ');
- } else {
- parts = line.substring(10).split(' ');
- }
-
- var candidate = {
- foundation: parts[0],
- component: parts[1],
- protocol: parts[2].toLowerCase(),
- priority: parseInt(parts[3], 10),
- ip: parts[4],
- port: parseInt(parts[5], 10),
- // skip parts[6] == 'typ'
- type: parts[7]
- };
-
- for (var i = 8; i < parts.length; i += 2) {
- switch (parts[i]) {
- case 'raddr':
- candidate.relatedAddress = parts[i + 1];
- break;
- case 'rport':
- candidate.relatedPort = parseInt(parts[i + 1], 10);
- break;
- case 'tcptype':
- candidate.tcpType = parts[i + 1];
- break;
- default: // Unknown extensions are silently ignored.
- break;
- }
- }
- return candidate;
- };
-
- // Translates a candidate object into SDP candidate attribute.
- SDPUtils.writeCandidate = 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;
- sdp.push('typ');
- sdp.push(type);
- if (type !== 'host' && candidate.relatedAddress &&
- candidate.relatedPort) {
- sdp.push('raddr');
- sdp.push(candidate.relatedAddress); // was: relAddr
- sdp.push('rport');
- sdp.push(candidate.relatedPort); // was: relPort
- }
- if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
- sdp.push('tcptype');
- sdp.push(candidate.tcpType);
- }
- return 'candidate:' + sdp.join(' ');
- };
-
- // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
- // a=rtpmap:111 opus/48000/2
- SDPUtils.parseRtpMap = function(line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- payloadType: parseInt(parts.shift(), 10) // was: id
- };
-
- parts = parts[0].split('/');
-
- parsed.name = parts[0];
- parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
- parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1; // was: channels
- return parsed;
- };
-
- // Generate an a=rtpmap line from RTCRtpCodecCapability or RTCRtpCodecParameters.
- SDPUtils.writeRtpMap = function(codec) {
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
- (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
- };
-
- // Parses an ftmp line, returns dictionary. Sample input:
- // a=fmtp:96 vbr=on;cng=on
- // Also deals with vbr=on; cng=on
- SDPUtils.parseFmtp = function(line) {
- var parsed = {};
- var kv;
- var parts = line.substr(line.indexOf(' ') + 1).split(';');
- for (var j = 0; j < parts.length; j++) {
- kv = parts[j].trim().split('=');
- parsed[kv[0].trim()] = kv[1];
- }
- return parsed;
- };
-
- // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
- SDPUtils.writeFtmp = function(codec) {
- var line = '';
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- if (codec.parameters && codec.parameters.length) {
- var params = [];
- Object.keys(codec.parameters).forEach(function(param) {
- params.push(param + '=' + codec.parameters[param]);
- });
- line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
- }
- return line;
- };
-
- // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
- // a=rtcp-fb:98 nack rpsi
- SDPUtils.parseRtcpFb = function(line) {
- var parts = line.substr(line.indexOf(' ') + 1).split(' ');
- return {
- type: parts.shift(),
- parameter: parts.join(' ')
- };
- };
- // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
- SDPUtils.writeRtcpFb = function(codec) {
- var lines = '';
- var pt = codec.payloadType;
- if (codec.preferredPayloadType !== undefined) {
- pt = codec.preferredPayloadType;
- }
- if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
- // FIXME: special handling for trr-int?
- codec.rtcpFeedback.forEach(function(fb) {
- lines += 'a=rtcp-fb:' + pt + ' ' + fb.type + ' ' + fb.parameter +
- '\r\n';
- });
- }
- return lines;
- };
-
- // Parses an RFC 5576 ssrc media attribute. Sample input:
- // a=ssrc:3735928559 cname:something
- SDPUtils.parseSsrcMedia = function(line) {
- var sp = line.indexOf(' ');
- var parts = {
- ssrc: line.substr(7, sp - 7),
- };
- var colon = line.indexOf(':', sp);
- if (colon > -1) {
- parts.attribute = line.substr(sp + 1, colon - sp - 1);
- parts.value = line.substr(colon + 1);
- } else {
- parts.attribute = line.substr(sp + 1);
- }
- return parts;
- };
-
- // Extracts DTLS parameters from SDP media section or sessionpart.
- // FIXME: for consistency with other functions this should only
- // get the fingerprint line as input. See also getIceParameters.
- SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
- var lines = SDPUtils.splitLines(mediaSection);
- lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
- var fpLine = lines.filter(function(line) {
- return line.indexOf('a=fingerprint:') === 0;
- })[0].substr(14);
- // Note: a=setup line is ignored since we use the 'auto' role.
- var dtlsParameters = {
- role: 'auto',
- fingerprints: [{
- algorithm: fpLine.split(' ')[0],
- value: fpLine.split(' ')[1]
- }]
- };
- return dtlsParameters;
- };
-
- // Serializes DTLS parameters to SDP.
- SDPUtils.writeDtlsParameters = function(params, setupType) {
- var sdp = 'a=setup:' + setupType + '\r\n';
- params.fingerprints.forEach(function(fp) {
- sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
- });
- return sdp;
- };
- // Parses ICE information from SDP media section or sessionpart.
- // FIXME: for consistency with other functions this should only
- // get the ice-ufrag and ice-pwd lines as input.
- SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
- var lines = SDPUtils.splitLines(mediaSection);
- lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
- var iceParameters = {
- usernameFragment: lines.filter(function(line) {
- return line.indexOf('a=ice-ufrag:') === 0;
- })[0].substr(12),
- password: lines.filter(function(line) {
- return line.indexOf('a=ice-pwd:') === 0;
- })[0].substr(10)
- };
- return iceParameters;
- };
-
- // Serializes ICE parameters to SDP.
- SDPUtils.writeIceParameters = function(params) {
- return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
- 'a=ice-pwd:' + params.password + '\r\n';
- };
-
- // Parses the SDP media section and returns RTCRtpParameters.
- SDPUtils.parseRtpParameters = function(mediaSection) {
- var description = {
- codecs: [],
- headerExtensions: [],
- fecMechanisms: [],
- rtcp: []
- };
- var lines = SDPUtils.splitLines(mediaSection);
- var mline = lines[0].split(' ');
- for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
- var pt = mline[i];
- var rtpmapline = SDPUtils.matchPrefix(
- mediaSection, 'a=rtpmap:' + pt + ' ')[0];
- if (rtpmapline) {
- var codec = SDPUtils.parseRtpMap(rtpmapline);
- var fmtps = SDPUtils.matchPrefix(
- mediaSection, 'a=fmtp:' + pt + ' ');
- // Only the first a=fmtp:<pt> is considered.
- codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
- codec.rtcpFeedback = SDPUtils.matchPrefix(
- mediaSection, 'a=rtcp-fb:' + pt + ' ')
- .map(SDPUtils.parseRtcpFb);
- description.codecs.push(codec);
- }
- }
- // FIXME: parse headerExtensions, fecMechanisms and rtcp.
- return description;
- };
-
- // Generates parts of the SDP media section describing the capabilities / parameters.
- SDPUtils.writeRtpDescription = function(kind, caps) {
- var sdp = '';
-
- // Build the mline.
- sdp += 'm=' + kind + ' ';
- sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
- sdp += ' UDP/TLS/RTP/SAVPF ';
- sdp += caps.codecs.map(function(codec) {
- if (codec.preferredPayloadType !== undefined) {
- return codec.preferredPayloadType;
- }
- return codec.payloadType;
- }).join(' ') + '\r\n';
-
- sdp += 'c=IN IP4 0.0.0.0\r\n';
- sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
-
- // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
- caps.codecs.forEach(function(codec) {
- sdp += SDPUtils.writeRtpMap(codec);
- sdp += SDPUtils.writeFtmp(codec);
- sdp += SDPUtils.writeRtcpFb(codec);
- });
- // FIXME: add headerExtensions, fecMechanismş and rtcp.
- sdp += 'a=rtcp-mux\r\n';
- return sdp;
- };
-
- SDPUtils.writeSessionBoilerplate = function() {
- // FIXME: sess-id should be an NTP timestamp.
- return 'v=0\r\n' +
- 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
- 's=-\r\n' +
- 't=0 0\r\n';
- };
-
- SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
- var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
-
- // Map ICE parameters (ufrag, pwd) to SDP.
- sdp += SDPUtils.writeIceParameters(
- transceiver.iceGatherer.getLocalParameters());
-
- // Map DTLS parameters to SDP.
- sdp += SDPUtils.writeDtlsParameters(
- transceiver.dtlsTransport.getLocalParameters(),
- type === 'offer' ? 'actpass' : 'active');
-
- sdp += 'a=mid:' + transceiver.mid + '\r\n';
-
- if (transceiver.rtpSender && transceiver.rtpReceiver) {
- sdp += 'a=sendrecv\r\n';
- } else if (transceiver.rtpSender) {
- sdp += 'a=sendonly\r\n';
- } else if (transceiver.rtpReceiver) {
- sdp += 'a=recvonly\r\n';
- } else {
- sdp += 'a=inactive\r\n';
- }
-
- // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
- if (transceiver.rtpSender) {
- var msid = 'msid:' + stream.id + ' ' +
- transceiver.rtpSender.track.id + '\r\n';
- sdp += 'a=' + msid;
- sdp += 'a=ssrc:' + transceiver.sendSsrc + ' ' + msid;
- }
- // FIXME: this should be written by writeRtpDescription.
- sdp += 'a=ssrc:' + transceiver.sendSsrc + ' cname:' +
- localCName + '\r\n';
- return sdp;
- };
-
- // Gets the direction from the mediaSection or the sessionpart.
- SDPUtils.getDirection = function(mediaSection, sessionpart) {
- // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
- var lines = SDPUtils.splitLines(mediaSection);
- for (var i = 0; i < lines.length; i++) {
- switch (lines[i]) {
- case 'a=sendrecv':
- case 'a=sendonly':
- case 'a=recvonly':
- case 'a=inactive':
- return lines[i].substr(2);
- }
- }
- if (sessionpart) {
- return SDPUtils.getDirection(sessionpart);
- }
- return 'sendrecv';
- };
-
- // ORTC defines an RTCIceCandidate object but no constructor.
- // Not implemented in Edge.
- if (!window.RTCIceCandidate) {
- window.RTCIceCandidate = function(args) {
- return args;
- };
- }
- // ORTC does not have a session description object but
- // other browsers (i.e. Chrome) that will support both PC and ORTC
- // in the future might have this defined already.
- if (!window.RTCSessionDescription) {
- window.RTCSessionDescription = function(args) {
- return args;
- };
- }
-
- window.RTCPeerConnection = function(config) {
- var self = this;
-
- this.onicecandidate = null;
- this.onaddstream = null;
- this.onremovestream = null;
- this.onsignalingstatechange = null;
- this.oniceconnectionstatechange = null;
- this.onnegotiationneeded = null;
- this.ondatachannel = null;
-
- this.localStreams = [];
- this.remoteStreams = [];
- this.getLocalStreams = function() { return self.localStreams; };
- this.getRemoteStreams = function() { return self.remoteStreams; };
-
- this.localDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.remoteDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.signalingState = 'stable';
- this.iceConnectionState = 'new';
-
- this.iceOptions = {
- gatherPolicy: 'all',
- iceServers: []
- };
- if (config && config.iceTransportPolicy) {
- switch (config.iceTransportPolicy) {
- case 'all':
- case 'relay':
- this.iceOptions.gatherPolicy = config.iceTransportPolicy;
- break;
- case 'none':
- // FIXME: remove once implementation and spec have added this.
- throw new TypeError('iceTransportPolicy "none" not supported');
- }
- }
- if (config && config.iceServers) {
- // Edge does not like
- // 1) stun:
- // 2) turn: that does not have all of turn:host:port?transport=udp
- // 3) an array of urls
- config.iceServers.forEach(function(server) {
- if (server.urls) {
- var url;
- if (typeof(server.urls) === 'string') {
- url = server.urls;
- } else {
- url = server.urls[0];
- }
- if (url.indexOf('transport=udp') !== -1) {
- self.iceServers.push({
- username: server.username,
- credential: server.credential,
- urls: url
- });
- }
- }
- });
- }
-
- // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
- // everything that is needed to describe a SDP m-line.
- this.transceivers = [];
-
- // since the iceGatherer is currently created in createOffer but we
- // must not emit candidates until after setLocalDescription we buffer
- // them in this array.
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
- var self = this;
- // FIXME: need to apply ice candidates in a way which is async but in-order
- this._localIceCandidatesBuffer.forEach(function(event) {
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- });
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype.addStream = function(stream) {
- // Clone is necessary for local demos mostly, attaching directly
- // to two different senders does not work (build 10547).
- this.localStreams.push(stream.clone());
- this._maybeFireNegotiationNeeded();
- };
-
- window.RTCPeerConnection.prototype.removeStream = function(stream) {
- var idx = this.localStreams.indexOf(stream);
- if (idx > -1) {
- this.localStreams.splice(idx, 1);
- this._maybeFireNegotiationNeeded();
- }
- };
-
- // Determines the intersection of local and remote capabilities.
- window.RTCPeerConnection.prototype._getCommonCapabilities =
- function(localCapabilities, remoteCapabilities) {
- var commonCapabilities = {
- codecs: [],
- headerExtensions: [],
- fecMechanisms: []
- };
- localCapabilities.codecs.forEach(function(lCodec) {
- for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
- var rCodec = remoteCapabilities.codecs[i];
- if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
- lCodec.clockRate === rCodec.clockRate &&
- lCodec.numChannels === rCodec.numChannels) {
- // push rCodec so we reply with offerer payload type
- commonCapabilities.codecs.push(rCodec);
-
- // FIXME: also need to determine intersection between
- // .rtcpFeedback and .parameters
- break;
- }
- }
- });
-
- localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {
- for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {
- var rHeaderExtension = remoteCapabilities.headerExtensions[i];
- if (lHeaderExtension.uri === rHeaderExtension.uri) {
- commonCapabilities.headerExtensions.push(rHeaderExtension);
- break;
- }
- }
- });
-
- // FIXME: fecMechanisms
- return commonCapabilities;
- };
-
- // Create ICE gatherer, ICE transport and DTLS transport.
- window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
- function(mid, sdpMLineIndex) {
- var self = this;
- var iceGatherer = new RTCIceGatherer(self.iceOptions);
- var iceTransport = new RTCIceTransport(iceGatherer);
- iceGatherer.onlocalcandidate = function(evt) {
- var event = {};
- event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
-
- var cand = evt.candidate;
- // Edge emits an empty object for RTCIceCandidateComplete‥
- if (!cand || Object.keys(cand).length === 0) {
- // polyfill since RTCIceGatherer.state is not implemented in Edge 10547 yet.
- if (iceGatherer.state === undefined) {
- iceGatherer.state = 'completed';
- }
-
- // Emit a candidate with type endOfCandidates to make the samples work.
- // Edge requires addIceCandidate with this empty candidate to start checking.
- // The real solution is to signal end-of-candidates to the other side when
- // getting the null candidate but some apps (like the samples) don't do that.
- event.candidate.candidate =
- 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
- } else {
- // RTCIceCandidate doesn't have a component, needs to be added
- cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
- event.candidate.candidate = SDPUtils.writeCandidate(cand);
- }
-
- var complete = self.transceivers.every(function(transceiver) {
- return transceiver.iceGatherer &&
- transceiver.iceGatherer.state === 'completed';
- });
- // FIXME: update .localDescription with candidate and (potentially) end-of-candidates.
- // To make this harder, the gatherer might emit candidates before localdescription
- // is set. To make things worse, gather.getLocalCandidates still errors in
- // Edge 10547 when no candidates have been gathered yet.
-
- if (self.onicecandidate !== null) {
- // Emit candidate if localDescription is set.
- // Also emits null candidate when all gatherers are complete.
- if (self.localDescription && self.localDescription.type === '') {
- self._localIceCandidatesBuffer.push(event);
- if (complete) {
- self._localIceCandidatesBuffer.push({});
- }
- } else {
- self.onicecandidate(event);
- if (complete) {
- self.onicecandidate({});
- }
- }
- }
- };
- iceTransport.onicestatechange = function() {
- self._updateConnectionState();
- };
-
- var dtlsTransport = new RTCDtlsTransport(iceTransport);
- dtlsTransport.ondtlsstatechange = function() {
- self._updateConnectionState();
- };
- dtlsTransport.onerror = function() {
- // onerror does not set state to failed by itself.
- dtlsTransport.state = 'failed';
- self._updateConnectionState();
- };
-
- return {
- iceGatherer: iceGatherer,
- iceTransport: iceTransport,
- dtlsTransport: dtlsTransport
- };
- };
-
- // Start the RTP Sender and Receiver for a transceiver.
- window.RTCPeerConnection.prototype._transceive = function(transceiver,
- send, recv) {
- var params = this._getCommonCapabilities(transceiver.localCapabilities,
- transceiver.remoteCapabilities);
- if (send && transceiver.rtpSender) {
- params.encodings = [{
- ssrc: transceiver.sendSsrc
- }];
- params.rtcp = {
- cname: localCName,
- ssrc: transceiver.recvSsrc
- };
- transceiver.rtpSender.send(params);
- }
- if (recv && transceiver.rtpReceiver) {
- params.encodings = [{
- ssrc: transceiver.recvSsrc
- }];
- params.rtcp = {
- cname: transceiver.cname,
- ssrc: transceiver.sendSsrc
- };
- transceiver.rtpReceiver.receive(params);
- }
- };
-
- window.RTCPeerConnection.prototype.setLocalDescription =
- function(description) {
- var self = this;
- if (description.type === 'offer') {
- if (!this._pendingOffer) {
- } else {
- this.transceivers = this._pendingOffer;
- delete this._pendingOffer;
- }
- } else if (description.type === 'answer') {
- var sections = SDPUtils.splitSections(self.remoteDescription.sdp);
- var sessionpart = sections.shift();
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var transceiver = self.transceivers[sdpMLineIndex];
- var iceGatherer = transceiver.iceGatherer;
- var iceTransport = transceiver.iceTransport;
- var dtlsTransport = transceiver.dtlsTransport;
- var localCapabilities = transceiver.localCapabilities;
- var remoteCapabilities = transceiver.remoteCapabilities;
- var rejected = mediaSection.split('\n', 1)[0]
- .split(' ', 2)[1] === '0';
-
- if (!rejected) {
- var remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
- sessionpart);
- iceTransport.start(iceGatherer, remoteIceParameters, 'controlled');
-
- var remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
- sessionpart);
- dtlsTransport.start(remoteDtlsParameters);
-
- // Calculate intersection of capabilities.
- var params = self._getCommonCapabilities(localCapabilities,
- remoteCapabilities);
-
- // Start the RTCRtpSender. The RTCRtpReceiver for this transceiver
- // has already been started in setRemoteDescription.
- self._transceive(transceiver,
- params.codecs.length > 0,
- false);
- }
- });
- }
-
- this.localDescription = description;
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-local-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type + '"');
- }
-
- // If a success callback was provided, emit ICE candidates after it has been
- // executed. Otherwise, emit callback after the Promise is resolved.
- var hasCallback = arguments.length > 1 &&
- typeof arguments[1] === 'function';
- if (hasCallback) {
- var cb = arguments[1];
- window.setTimeout(function() {
- cb();
- self._emitBufferedCandidates();
- }, 0);
- }
- var p = Promise.resolve();
- p.then(function() {
- if (!hasCallback) {
- window.setTimeout(self._emitBufferedCandidates.bind(self), 0);
- }
- });
- return p;
- };
-
- window.RTCPeerConnection.prototype.setRemoteDescription =
- function(description) {
- var self = this;
- var stream = new MediaStream();
- var sections = SDPUtils.splitSections(description.sdp);
- var sessionpart = sections.shift();
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var lines = SDPUtils.splitLines(mediaSection);
- var mline = lines[0].substr(2).split(' ');
- var kind = mline[0];
- var rejected = mline[1] === '0';
- var direction = SDPUtils.getDirection(mediaSection, sessionpart);
-
- var transceiver;
- var iceGatherer;
- var iceTransport;
- var dtlsTransport;
- var rtpSender;
- var rtpReceiver;
- var sendSsrc;
- var recvSsrc;
- var localCapabilities;
-
- // FIXME: ensure the mediaSection has rtcp-mux set.
- var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
- var remoteIceParameters;
- var remoteDtlsParameters;
- if (!rejected) {
- remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
- sessionpart);
- remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
- sessionpart);
- }
- var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0].substr(6);
-
- var cname;
- // Gets the first SSRC. Note that with RTX there might be multiple SSRCs.
- var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
- .map(function(line) {
- return SDPUtils.parseSsrcMedia(line);
- })
- .filter(function(obj) {
- return obj.attribute === 'cname';
- })[0];
- if (remoteSsrc) {
- recvSsrc = parseInt(remoteSsrc.ssrc, 10);
- cname = remoteSsrc.value;
- }
-
- if (description.type === 'offer') {
- var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- localCapabilities = RTCRtpReceiver.getCapabilities(kind);
- sendSsrc = (2 * sdpMLineIndex + 2) * 1001;
-
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
-
- // FIXME: not correct when there are multiple streams but that is
- // not currently supported in this shim.
- stream.addTrack(rtpReceiver.track);
-
- // FIXME: look at direction.
- if (self.localStreams.length > 0 &&
- self.localStreams[0].getTracks().length >= sdpMLineIndex) {
- // FIXME: actually more complicated, needs to match types etc
- var localtrack = self.localStreams[0].getTracks()[sdpMLineIndex];
- rtpSender = new RTCRtpSender(localtrack, transports.dtlsTransport);
- }
-
- self.transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: remoteCapabilities,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- cname: cname,
- sendSsrc: sendSsrc,
- recvSsrc: recvSsrc
- };
- // Start the RTCRtpReceiver now. The RTPSender is started in setLocalDescription.
- self._transceive(self.transceivers[sdpMLineIndex],
- false,
- direction === 'sendrecv' || direction === 'sendonly');
- } else if (description.type === 'answer' && !rejected) {
- transceiver = self.transceivers[sdpMLineIndex];
- iceGatherer = transceiver.iceGatherer;
- iceTransport = transceiver.iceTransport;
- dtlsTransport = transceiver.dtlsTransport;
- rtpSender = transceiver.rtpSender;
- rtpReceiver = transceiver.rtpReceiver;
- sendSsrc = transceiver.sendSsrc;
- //recvSsrc = transceiver.recvSsrc;
- localCapabilities = transceiver.localCapabilities;
-
- self.transceivers[sdpMLineIndex].recvSsrc = recvSsrc;
- self.transceivers[sdpMLineIndex].remoteCapabilities =
- remoteCapabilities;
- self.transceivers[sdpMLineIndex].cname = cname;
-
- iceTransport.start(iceGatherer, remoteIceParameters, 'controlling');
- dtlsTransport.start(remoteDtlsParameters);
-
- self._transceive(transceiver,
- direction === 'sendrecv' || direction === 'recvonly',
- direction === 'sendrecv' || direction === 'sendonly');
-
- if (rtpReceiver &&
- (direction === 'sendrecv' || direction === 'sendonly')) {
- stream.addTrack(rtpReceiver.track);
- } else {
- // FIXME: actually the receiver should be created later.
- delete transceiver.rtpReceiver;
- }
- }
- });
-
- this.remoteDescription = description;
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-remote-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type + '"');
- }
- window.setTimeout(function() {
- if (self.onaddstream !== null && stream.getTracks().length) {
- self.remoteStreams.push(stream);
- window.setTimeout(function() {
- self.onaddstream({stream: stream});
- }, 0);
- }
- }, 0);
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.close = function() {
- this.transceivers.forEach(function(transceiver) {
- /* not yet
- if (transceiver.iceGatherer) {
- transceiver.iceGatherer.close();
- }
- */
- if (transceiver.iceTransport) {
- transceiver.iceTransport.stop();
- }
- if (transceiver.dtlsTransport) {
- transceiver.dtlsTransport.stop();
- }
- if (transceiver.rtpSender) {
- transceiver.rtpSender.stop();
- }
- if (transceiver.rtpReceiver) {
- transceiver.rtpReceiver.stop();
- }
- });
- // FIXME: clean up tracks, local streams, remote streams, etc
- this._updateSignalingState('closed');
- };
-
- // Update the signaling state.
- window.RTCPeerConnection.prototype._updateSignalingState =
- function(newState) {
- this.signalingState = newState;
- if (this.onsignalingstatechange !== null) {
- this.onsignalingstatechange();
- }
- };
-
- // Determine whether to fire the negotiationneeded event.
- window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
- function() {
- // Fire away (for now).
- if (this.onnegotiationneeded !== null) {
- this.onnegotiationneeded();
- }
- };
-
- // Update the connection state.
- window.RTCPeerConnection.prototype._updateConnectionState =
- function() {
- var self = this;
- var newState;
- var states = {
- 'new': 0,
- closed: 0,
- connecting: 0,
- checking: 0,
- connected: 0,
- completed: 0,
- failed: 0
- };
- this.transceivers.forEach(function(transceiver) {
- states[transceiver.iceTransport.state]++;
- states[transceiver.dtlsTransport.state]++;
- });
- // ICETransport.completed and connected are the same for this purpose.
- states.connected += states.completed;
-
- newState = 'new';
- if (states.failed > 0) {
- newState = 'failed';
- } else if (states.connecting > 0 || states.checking > 0) {
- newState = 'connecting';
- } else if (states.disconnected > 0) {
- newState = 'disconnected';
- } else if (states.new > 0) {
- newState = 'new';
- } else if (states.connecting > 0 || states.completed > 0) {
- newState = 'connected';
- }
-
- if (newState !== self.iceConnectionState) {
- self.iceConnectionState = newState;
- if (this.oniceconnectionstatechange !== null) {
- this.oniceconnectionstatechange();
- }
- }
- };
-
- window.RTCPeerConnection.prototype.createOffer = function() {
- var self = this;
- if (this._pendingOffer) {
- throw new Error('createOffer called while there is a pending offer.');
- }
- var offerOptions;
- if (arguments.length === 1 && typeof arguments[0] !== 'function') {
- offerOptions = arguments[0];
- } else if (arguments.length === 3) {
- offerOptions = arguments[2];
- }
-
- var tracks = [];
- var numAudioTracks = 0;
- var numVideoTracks = 0;
- // Default to sendrecv.
- if (this.localStreams.length) {
- numAudioTracks = this.localStreams[0].getAudioTracks().length;
- numVideoTracks = this.localStreams[0].getVideoTracks().length;
- }
- // Determine number of audio and video tracks we need to send/recv.
- if (offerOptions) {
- // Reject Chrome legacy constraints.
- if (offerOptions.mandatory || offerOptions.optional) {
- throw new TypeError(
- 'Legacy mandatory/optional constraints not supported.');
- }
- if (offerOptions.offerToReceiveAudio !== undefined) {
- numAudioTracks = offerOptions.offerToReceiveAudio;
- }
- if (offerOptions.offerToReceiveVideo !== undefined) {
- numVideoTracks = offerOptions.offerToReceiveVideo;
- }
- }
- if (this.localStreams.length) {
- // Push local streams.
- this.localStreams[0].getTracks().forEach(function(track) {
- tracks.push({
- kind: track.kind,
- track: track,
- wantReceive: track.kind === 'audio' ?
- numAudioTracks > 0 : numVideoTracks > 0
- });
- if (track.kind === 'audio') {
- numAudioTracks--;
- } else if (track.kind === 'video') {
- numVideoTracks--;
- }
- });
- }
- // Create M-lines for recvonly streams.
- while (numAudioTracks > 0 || numVideoTracks > 0) {
- if (numAudioTracks > 0) {
- tracks.push({
- kind: 'audio',
- wantReceive: true
- });
- numAudioTracks--;
- }
- if (numVideoTracks > 0) {
- tracks.push({
- kind: 'video',
- wantReceive: true
- });
- numVideoTracks--;
- }
- }
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- var transceivers = [];
- tracks.forEach(function(mline, sdpMLineIndex) {
- // For each track, create an ice gatherer, ice transport, dtls transport,
- // potentially rtpsender and rtpreceiver.
- var track = mline.track;
- var kind = mline.kind;
- var mid = generateIdentifier();
-
- var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- var localCapabilities = RTCRtpSender.getCapabilities(kind);
- var rtpSender;
- var rtpReceiver;
-
- // generate an ssrc now, to be used later in rtpSender.send
- var sendSsrc = (2 * sdpMLineIndex + 1) * 1001;
- if (track) {
- rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
- }
-
- if (mline.wantReceive) {
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
- }
-
- transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: null,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- sendSsrc: sendSsrc,
- recvSsrc: null
- };
- var transceiver = transceivers[sdpMLineIndex];
- sdp += SDPUtils.writeMediaSection(transceiver,
- transceiver.localCapabilities, 'offer', self.localStreams[0]);
- });
-
- this._pendingOffer = transceivers;
- var desc = new RTCSessionDescription({
- type: 'offer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.createAnswer = function() {
- var self = this;
- var answerOptions;
- if (arguments.length === 1 && typeof arguments[0] !== 'function') {
- answerOptions = arguments[0];
- } else if (arguments.length === 3) {
- answerOptions = arguments[2];
- }
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- this.transceivers.forEach(function(transceiver) {
- // Calculate intersection of capabilities.
- var commonCapabilities = self._getCommonCapabilities(
- transceiver.localCapabilities,
- transceiver.remoteCapabilities);
-
- sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
- 'answer', self.localStreams[0]);
- });
-
- var desc = new RTCSessionDescription({
- type: 'answer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
- var mLineIndex = candidate.sdpMLineIndex;
- if (candidate.sdpMid) {
- for (var i = 0; i < this.transceivers.length; i++) {
- if (this.transceivers[i].mid === candidate.sdpMid) {
- mLineIndex = i;
- break;
- }
- }
- }
- var transceiver = this.transceivers[mLineIndex];
- if (transceiver) {
- var cand = Object.keys(candidate.candidate).length > 0 ?
- SDPUtils.parseCandidate(candidate.candidate) : {};
- // Ignore Chrome's invalid candidates since Edge does not like them.
- if (cand.protocol === 'tcp' && cand.port === 0) {
- return;
- }
- // Ignore RTCP candidates, we assume RTCP-MUX.
- if (cand.component !== '1') {
- return;
- }
- // A dirty hack to make samples work.
- if (cand.type === 'endOfCandidates') {
- cand = {};
- }
- transceiver.iceTransport.addRemoteCandidate(cand);
- }
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.getStats = function() {
- var promises = [];
- this.transceivers.forEach(function(transceiver) {
- ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
- 'dtlsTransport'].forEach(function(method) {
- if (transceiver[method]) {
- promises.push(transceiver[method].getStats());
- }
- });
- });
- var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
- arguments[1];
- return new Promise(function(resolve) {
- var results = {};
- Promise.all(promises).then(function(res) {
- res.forEach(function(result) {
- Object.keys(result).forEach(function(id) {
- results[id] = result[id];
- });
- });
- if (cb) {
- window.setTimeout(cb, 0, results);
- }
- resolve(results);
- });
- });
- };
- }
-} else {
- webrtcUtils.log('Browser does not appear to be WebRTC-capable');
-}
-
-// Polyfill ontrack on browsers that don't yet have it
-if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
- window.RTCPeerConnection.prototype)) {
- Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
- get: function() { return this._ontrack; },
- set: function(f) {
- var self = this;
- if (this._ontrack) {
- this.removeEventListener('track', this._ontrack);
- this.removeEventListener('addstream', this._ontrackpoly);
- }
- this.addEventListener('track', this._ontrack = f);
- this.addEventListener('addstream', this._ontrackpoly = function(e) {
- if (webrtcDetectedBrowser === 'chrome') {
- // onaddstream does not fire when a track is added to an existing stream.
- // but stream.onaddtrack is implemented so we use thたt
- e.stream.addEventListener('addtrack', function(te) {
- var event = new Event('track');
- event.track = te.track;
- event.receiver = {track: te.track};
- event.streams = [e.stream];
- self.dispatchEvent(event);
- });
- }
- e.stream.getTracks().forEach(function(track) {
- var event = new Event('track');
- event.track = track;
- event.receiver = {track: track};
- event.streams = [e.stream];
- this.dispatchEvent(event);
- }.bind(this));
- }.bind(this));
- }
- });
-}
-
-// Returns the result of getUserMedia as a Promise.
-function requestUserMedia(constraints) {
- return new Promise(function(resolve, reject) {
- getUserMedia(constraints, resolve, reject);
- });
-}
-
-var webrtcTesting = {};
-try {
- Object.defineProperty(webrtcTesting, 'version', {
- set: function(version) {
- webrtcDetectedVersion = version;
- }
- });
-} catch (e) {}
-
-if (typeof module !== 'undefined') {
- var RTCPeerConnection;
- var RTCIceCandidate;
- var RTCSessionDescription;
- if (typeof window !== 'undefined') {
- RTCPeerConnection = window.RTCPeerConnection;
- RTCIceCandidate = window.RTCIceCandidate;
- RTCSessionDescription = window.RTCSessionDescription;
- }
- module.exports = {
- RTCPeerConnection: RTCPeerConnection,
- RTCIceCandidate: RTCIceCandidate,
- RTCSessionDescription: RTCSessionDescription,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
-} else if ((typeof require === 'function') && (typeof define === 'function')) {
- // Expose objects and functions when RequireJS is doing the loading.
- define([], function() {
- return {
- RTCPeerConnection: window.RTCPeerConnection,
- RTCIceCandidate: window.RTCIceCandidate,
- RTCSessionDescription: window.RTCSessionDescription,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
- });
-}
-
-},{}],201:[function(require,module,exports){
-arguments[4][33][0].apply(exports,arguments)
-},{"./chrome/chrome_shim":202,"./edge/edge_shim":204,"./firefox/firefox_shim":206,"./safari/safari_shim":208,"./utils":209,"dup":33}],202:[function(require,module,exports){
-
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-var logging = require('../utils.js').log;
-var browserDetails = require('../utils.js').browserDetails;
-
-var chromeShim = {
- shimMediaStream: function() {
- window.MediaStream = window.MediaStream || window.webkitMediaStream;
- },
-
- shimOnTrack: function() {
- if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
- window.RTCPeerConnection.prototype)) {
- Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
- get: function() {
- return this._ontrack;
- },
- set: function(f) {
- var self = this;
- if (this._ontrack) {
- this.removeEventListener('track', this._ontrack);
- this.removeEventListener('addstream', this._ontrackpoly);
- }
- this.addEventListener('track', this._ontrack = f);
- this.addEventListener('addstream', this._ontrackpoly = function(e) {
- // onaddstream does not fire when a track is added to an existing
- // stream. But stream.onaddtrack is implemented so we use that.
- e.stream.addEventListener('addtrack', function(te) {
- var event = new Event('track');
- event.track = te.track;
- event.receiver = {track: te.track};
- event.streams = [e.stream];
- self.dispatchEvent(event);
- });
- e.stream.getTracks().forEach(function(track) {
- var event = new Event('track');
- event.track = track;
- event.receiver = {track: track};
- event.streams = [e.stream];
- this.dispatchEvent(event);
- }.bind(this));
- }.bind(this));
- }
- });
- }
- },
-
- shimSourceObject: function() {
- if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- return this._srcObject;
- },
- set: function(stream) {
- var self = this;
- // Use _srcObject as a private property for this shim
- this._srcObject = stream;
- if (this.src) {
- URL.revokeObjectURL(this.src);
- }
-
- if (!stream) {
- this.src = '';
- return;
- }
- this.src = URL.createObjectURL(stream);
- // We need to recreate the blob url when a track is added or
- // removed. Doing it manually since we want to avoid a recursion.
- stream.addEventListener('addtrack', function() {
- if (self.src) {
- URL.revokeObjectURL(self.src);
- }
- self.src = URL.createObjectURL(stream);
- });
- stream.addEventListener('removetrack', function() {
- if (self.src) {
- URL.revokeObjectURL(self.src);
- }
- self.src = URL.createObjectURL(stream);
- });
- }
- });
- }
- }
- },
-
- shimPeerConnection: function() {
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- // Translate iceTransportPolicy to iceTransports,
- // see https://code.google.com/p/webrtc/issues/detail?id=4869
- logging('PeerConnection');
- if (pcConfig && pcConfig.iceTransportPolicy) {
- pcConfig.iceTransports = pcConfig.iceTransportPolicy;
- }
-
- var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
- var origGetStats = pc.getStats.bind(pc);
- pc.getStats = function(selector, successCallback, errorCallback) {
- var self = this;
- var args = arguments;
-
- // If selector is a function then we are in the old style stats so just
- // pass back the original getStats format to avoid breaking old users.
- if (arguments.length > 0 && typeof selector === 'function') {
- return origGetStats(selector, successCallback);
- }
-
- var fixChromeStats_ = function(response) {
- var standardReport = {};
- var reports = response.result();
- 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;
- });
-
- return standardReport;
- };
-
- // shim getStats with maplike support
- var makeMapStats = function(stats, legacyStats) {
- var map = new Map(Object.keys(stats).map(function(key) {
- return[key, stats[key]];
- }));
- legacyStats = legacyStats || stats;
- Object.keys(legacyStats).forEach(function(key) {
- map[key] = legacyStats[key];
- });
- return map;
- };
-
- if (arguments.length >= 2) {
- var successCallbackWrapper_ = function(response) {
- args[1](makeMapStats(fixChromeStats_(response)));
- };
-
- return origGetStats.apply(this, [successCallbackWrapper_,
- arguments[0]]);
- }
-
- // promise-support
- return new Promise(function(resolve, reject) {
- if (args.length === 1 && typeof selector === 'object') {
- origGetStats.apply(self, [
- function(response) {
- resolve(makeMapStats(fixChromeStats_(response)));
- }, reject]);
- } else {
- // Preserve legacy chrome stats only on legacy access of stats obj
- origGetStats.apply(self, [
- function(response) {
- resolve(makeMapStats(fixChromeStats_(response),
- response.result()));
- }, reject]);
- }
- }).then(successCallback, errorCallback);
- };
-
- return pc;
- };
- window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (webkitRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- return webkitRTCPeerConnection.generateCertificate;
- }
- });
- }
-
- ['createOffer', 'createAnswer'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var self = this;
- if (arguments.length < 1 || (arguments.length === 1 &&
- typeof arguments[0] === 'object')) {
- var opts = arguments.length === 1 ? arguments[0] : undefined;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [resolve, reject, opts]);
- });
- }
- return nativeMethod.apply(this, arguments);
- };
- });
-
- // add promise support -- natively available in Chrome 51
- if (browserDetails.version < 51) {
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var args = arguments;
- var self = this;
- var promise = new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [args[0], resolve, reject]);
- });
- if (args.length < 2) {
- return promise;
- }
- return promise.then(function() {
- args[1].apply(null, []);
- },
- function(err) {
- if (args.length >= 3) {
- args[2].apply(null, [err]);
- }
- });
- };
- });
- }
-
- // shim implicit creation of RTCSessionDescription/RTCIceCandidate
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- arguments[0] = new ((method === 'addIceCandidate') ?
- RTCIceCandidate : RTCSessionDescription)(arguments[0]);
- return nativeMethod.apply(this, arguments);
- };
- });
-
- // support for addIceCandidate(null)
- var nativeAddIceCandidate =
- RTCPeerConnection.prototype.addIceCandidate;
- RTCPeerConnection.prototype.addIceCandidate = function() {
- if (arguments[0] === null) {
- if (arguments[1]) {
- arguments[1].apply(null);
- }
- return Promise.resolve();
- }
- return nativeAddIceCandidate.apply(this, arguments);
- };
- }
-};
-
-
-// Expose public methods.
-module.exports = {
- shimMediaStream: chromeShim.shimMediaStream,
- shimOnTrack: chromeShim.shimOnTrack,
- shimSourceObject: chromeShim.shimSourceObject,
- shimPeerConnection: chromeShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia')
-};
-
-},{"../utils.js":209,"./getusermedia":203}],203:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-var logging = require('../utils.js').log;
-
-// Expose public methods.
-module.exports = function() {
- var constraintsToChrome_ = function(c) {
- if (typeof c !== 'object' || c.mandatory || c.optional) {
- return c;
- }
- var cc = {};
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
- if (r.exact !== undefined && typeof r.exact === 'number') {
- r.min = r.max = r.exact;
- }
- var oldname_ = function(prefix, name) {
- if (prefix) {
- return prefix + name.charAt(0).toUpperCase() + name.slice(1);
- }
- return (name === 'deviceId') ? 'sourceId' : name;
- };
- if (r.ideal !== undefined) {
- cc.optional = cc.optional || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[oldname_('min', key)] = r.ideal;
- cc.optional.push(oc);
- oc = {};
- oc[oldname_('max', key)] = r.ideal;
- cc.optional.push(oc);
- } else {
- oc[oldname_('', key)] = r.ideal;
- cc.optional.push(oc);
- }
- }
- if (r.exact !== undefined && typeof r.exact !== 'number') {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname_('', key)] = r.exact;
- } else {
- ['min', 'max'].forEach(function(mix) {
- if (r[mix] !== undefined) {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname_(mix, key)] = r[mix];
- }
- });
- }
- });
- if (c.advanced) {
- cc.optional = (cc.optional || []).concat(c.advanced);
- }
- return cc;
- };
-
- var shimConstraints_ = function(constraints, func) {
- constraints = JSON.parse(JSON.stringify(constraints));
- if (constraints && constraints.audio) {
- constraints.audio = constraintsToChrome_(constraints.audio);
- }
- if (constraints && typeof constraints.video === 'object') {
- // Shim facingMode for mobile, where it defaults to "user".
- var face = constraints.video.facingMode;
- face = face && ((typeof face === 'object') ? face : {ideal: face});
-
- if ((face && (face.exact === 'user' || face.exact === 'environment' ||
- face.ideal === 'user' || face.ideal === 'environment')) &&
- !(navigator.mediaDevices.getSupportedConstraints &&
- navigator.mediaDevices.getSupportedConstraints().facingMode)) {
- delete constraints.video.facingMode;
- if (face.exact === 'environment' || face.ideal === 'environment') {
- // Look for "back" in label, or use last cam (typically back cam).
- return navigator.mediaDevices.enumerateDevices()
- .then(function(devices) {
- devices = devices.filter(function(d) {
- return d.kind === 'videoinput';
- });
- var back = devices.find(function(d) {
- return d.label.toLowerCase().indexOf('back') !== -1;
- }) || (devices.length && devices[devices.length - 1]);
- if (back) {
- constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
- {ideal: back.deviceId};
- }
- constraints.video = constraintsToChrome_(constraints.video);
- logging('chrome: ' + JSON.stringify(constraints));
- return func(constraints);
- });
- }
- }
- constraints.video = constraintsToChrome_(constraints.video);
- }
- logging('chrome: ' + JSON.stringify(constraints));
- return func(constraints);
- };
-
- var shimError_ = function(e) {
- return {
- name: {
- PermissionDeniedError: 'NotAllowedError',
- ConstraintNotSatisfiedError: 'OverconstrainedError'
- }[e.name] || e.name,
- message: e.message,
- constraint: e.constraintName,
- toString: function() {
- return this.name + (this.message && ': ') + this.message;
- }
- };
- };
-
- var getUserMedia_ = function(constraints, onSuccess, onError) {
- shimConstraints_(constraints, function(c) {
- navigator.webkitGetUserMedia(c, onSuccess, function(e) {
- onError(shimError_(e));
- });
- });
- };
-
- navigator.getUserMedia = getUserMedia_;
-
- // Returns the result of getUserMedia as a Promise.
- var getUserMediaPromise_ = function(constraints) {
- return new Promise(function(resolve, reject) {
- navigator.getUserMedia(constraints, resolve, reject);
- });
- };
-
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {
- getUserMedia: getUserMediaPromise_,
- 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: ''};
- }));
- });
- });
- }
- };
- }
-
- // A shim for getUserMedia method on the mediaDevices object.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (!navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia = function(constraints) {
- return getUserMediaPromise_(constraints);
- };
- } else {
- // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
- // function which returns a Promise, it does not accept spec-style
- // constraints.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(cs) {
- return shimConstraints_(cs, function(c) {
- return origGetUserMedia(c).then(function(stream) {
- if (c.audio && !stream.getAudioTracks().length ||
- c.video && !stream.getVideoTracks().length) {
- stream.getTracks().forEach(function(track) {
- track.stop();
- });
- throw new DOMException('', 'NotFoundError');
- }
- return stream;
- }, function(e) {
- return Promise.reject(shimError_(e));
- });
- });
- };
- }
-
- // Dummy devicechange event methods.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
- navigator.mediaDevices.addEventListener = function() {
- logging('Dummy mediaDevices.addEventListener called.');
- };
- }
- if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
- navigator.mediaDevices.removeEventListener = function() {
- logging('Dummy mediaDevices.removeEventListener called.');
- };
- }
-};
-
-},{"../utils.js":209}],204:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var SDPUtils = require('sdp');
-var browserDetails = require('../utils').browserDetails;
-
-var edgeShim = {
- shimPeerConnection: function() {
- if (window.RTCIceGatherer) {
- // ORTC defines an RTCIceCandidate object but no constructor.
- // Not implemented in Edge.
- if (!window.RTCIceCandidate) {
- window.RTCIceCandidate = function(args) {
- return args;
- };
- }
- // ORTC does not have a session description object but
- // other browsers (i.e. Chrome) that will support both PC and ORTC
- // in the future might have this defined already.
- if (!window.RTCSessionDescription) {
- window.RTCSessionDescription = function(args) {
- return args;
- };
- }
- }
-
- window.RTCPeerConnection = function(config) {
- var self = this;
-
- var _eventTarget = document.createDocumentFragment();
- ['addEventListener', 'removeEventListener', 'dispatchEvent']
- .forEach(function(method) {
- self[method] = _eventTarget[method].bind(_eventTarget);
- });
-
- this.onicecandidate = null;
- this.onaddstream = null;
- this.ontrack = null;
- this.onremovestream = null;
- this.onsignalingstatechange = null;
- this.oniceconnectionstatechange = null;
- this.onnegotiationneeded = null;
- this.ondatachannel = null;
-
- this.localStreams = [];
- this.remoteStreams = [];
- this.getLocalStreams = function() {
- return self.localStreams;
- };
- this.getRemoteStreams = function() {
- return self.remoteStreams;
- };
-
- this.localDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.remoteDescription = new RTCSessionDescription({
- type: '',
- sdp: ''
- });
- this.signalingState = 'stable';
- this.iceConnectionState = 'new';
- this.iceGatheringState = 'new';
-
- this.iceOptions = {
- gatherPolicy: 'all',
- iceServers: []
- };
- if (config && config.iceTransportPolicy) {
- switch (config.iceTransportPolicy) {
- case 'all':
- case 'relay':
- this.iceOptions.gatherPolicy = config.iceTransportPolicy;
- break;
- case 'none':
- // FIXME: remove once implementation and spec have added this.
- throw new TypeError('iceTransportPolicy "none" not supported');
- default:
- // don't set iceTransportPolicy.
- break;
- }
- }
- this.usingBundle = config && config.bundlePolicy === 'max-bundle';
-
- if (config && config.iceServers) {
- // Edge does not like
- // 1) stun:
- // 2) turn: that does not have all of turn:host:port?transport=udp
- // 3) turn: with ipv6 addresses
- var iceServers = JSON.parse(JSON.stringify(config.iceServers));
- this.iceOptions.iceServers = iceServers.filter(function(server) {
- if (server && server.urls) {
- var urls = server.urls;
- if (typeof urls === 'string') {
- urls = [urls];
- }
- urls = urls.filter(function(url) {
- return (url.indexOf('turn:') === 0 &&
- url.indexOf('transport=udp') !== -1 &&
- url.indexOf('turn:[') === -1) ||
- (url.indexOf('stun:') === 0 &&
- browserDetails.version >= 14393);
- })[0];
- return !!urls;
- }
- return false;
- });
- }
- this._config = config;
-
- // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
- // everything that is needed to describe a SDP m-line.
- this.transceivers = [];
-
- // since the iceGatherer is currently created in createOffer but we
- // must not emit candidates until after setLocalDescription we buffer
- // them in this array.
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
- var self = this;
- var sections = SDPUtils.splitSections(self.localDescription.sdp);
- // FIXME: need to apply ice candidates in a way which is async but
- // in-order
- this._localIceCandidatesBuffer.forEach(function(event) {
- var end = !event.candidate || Object.keys(event.candidate).length === 0;
- if (end) {
- for (var j = 1; j < sections.length; j++) {
- if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
- sections[j] += 'a=end-of-candidates\r\n';
- }
- }
- } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
- === -1) {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=' + event.candidate.candidate + '\r\n';
- }
- self.localDescription.sdp = sections.join('');
- self.dispatchEvent(event);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- if (!event.candidate && self.iceGatheringState !== 'complete') {
- var complete = self.transceivers.every(function(transceiver) {
- return transceiver.iceGatherer &&
- transceiver.iceGatherer.state === 'completed';
- });
- if (complete) {
- self.iceGatheringState = 'complete';
- }
- }
- });
- this._localIceCandidatesBuffer = [];
- };
-
- window.RTCPeerConnection.prototype.getConfiguration = function() {
- return this._config;
- };
-
- window.RTCPeerConnection.prototype.addStream = function(stream) {
- // Clone is necessary for local demos mostly, attaching directly
- // to two different senders does not work (build 10547).
- this.localStreams.push(stream.clone());
- this._maybeFireNegotiationNeeded();
- };
-
- window.RTCPeerConnection.prototype.removeStream = function(stream) {
- var idx = this.localStreams.indexOf(stream);
- if (idx > -1) {
- this.localStreams.splice(idx, 1);
- this._maybeFireNegotiationNeeded();
- }
- };
-
- window.RTCPeerConnection.prototype.getSenders = function() {
- return this.transceivers.filter(function(transceiver) {
- return !!transceiver.rtpSender;
- })
- .map(function(transceiver) {
- return transceiver.rtpSender;
- });
- };
-
- window.RTCPeerConnection.prototype.getReceivers = function() {
- return this.transceivers.filter(function(transceiver) {
- return !!transceiver.rtpReceiver;
- })
- .map(function(transceiver) {
- return transceiver.rtpReceiver;
- });
- };
-
- // Determines the intersection of local and remote capabilities.
- window.RTCPeerConnection.prototype._getCommonCapabilities =
- function(localCapabilities, remoteCapabilities) {
- var commonCapabilities = {
- codecs: [],
- headerExtensions: [],
- fecMechanisms: []
- };
- localCapabilities.codecs.forEach(function(lCodec) {
- for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
- var rCodec = remoteCapabilities.codecs[i];
- if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
- lCodec.clockRate === rCodec.clockRate) {
- // number of channels is the highest common number of channels
- rCodec.numChannels = Math.min(lCodec.numChannels,
- rCodec.numChannels);
- // push rCodec so we reply with offerer payload type
- commonCapabilities.codecs.push(rCodec);
-
- // determine common feedback mechanisms
- rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {
- for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {
- if (lCodec.rtcpFeedback[j].type === fb.type &&
- lCodec.rtcpFeedback[j].parameter === fb.parameter) {
- return true;
- }
- }
- return false;
- });
- // FIXME: also need to determine .parameters
- // see https://github.com/openpeer/ortc/issues/569
- break;
- }
- }
- });
-
- localCapabilities.headerExtensions
- .forEach(function(lHeaderExtension) {
- for (var i = 0; i < remoteCapabilities.headerExtensions.length;
- i++) {
- var rHeaderExtension = remoteCapabilities.headerExtensions[i];
- if (lHeaderExtension.uri === rHeaderExtension.uri) {
- commonCapabilities.headerExtensions.push(rHeaderExtension);
- break;
- }
- }
- });
-
- // FIXME: fecMechanisms
- return commonCapabilities;
- };
-
- // Create ICE gatherer, ICE transport and DTLS transport.
- window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
- function(mid, sdpMLineIndex) {
- var self = this;
- var iceGatherer = new RTCIceGatherer(self.iceOptions);
- var iceTransport = new RTCIceTransport(iceGatherer);
- iceGatherer.onlocalcandidate = function(evt) {
- var event = new Event('icecandidate');
- event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
-
- var cand = evt.candidate;
- var end = !cand || Object.keys(cand).length === 0;
- // Edge emits an empty object for RTCIceCandidateComplete‥
- if (end) {
- // polyfill since RTCIceGatherer.state is not implemented in
- // Edge 10547 yet.
- if (iceGatherer.state === undefined) {
- iceGatherer.state = 'completed';
- }
-
- // Emit a candidate with type endOfCandidates to make the samples
- // work. Edge requires addIceCandidate with this empty candidate
- // to start checking. The real solution is to signal
- // end-of-candidates to the other side when getting the null
- // candidate but some apps (like the samples) don't do that.
- event.candidate.candidate =
- 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
- } else {
- // RTCIceCandidate doesn't have a component, needs to be added
- cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
- event.candidate.candidate = SDPUtils.writeCandidate(cand);
- }
-
- // update local description.
- var sections = SDPUtils.splitSections(self.localDescription.sdp);
- if (event.candidate.candidate.indexOf('typ endOfCandidates')
- === -1) {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=' + event.candidate.candidate + '\r\n';
- } else {
- sections[event.candidate.sdpMLineIndex + 1] +=
- 'a=end-of-candidates\r\n';
- }
- self.localDescription.sdp = sections.join('');
-
- var complete = self.transceivers.every(function(transceiver) {
- return transceiver.iceGatherer &&
- transceiver.iceGatherer.state === 'completed';
- });
-
- // Emit candidate if localDescription is set.
- // Also emits null candidate when all gatherers are complete.
- switch (self.iceGatheringState) {
- case 'new':
- self._localIceCandidatesBuffer.push(event);
- if (end && complete) {
- self._localIceCandidatesBuffer.push(
- new Event('icecandidate'));
- }
- break;
- case 'gathering':
- self._emitBufferedCandidates();
- self.dispatchEvent(event);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- if (complete) {
- self.dispatchEvent(new Event('icecandidate'));
- if (self.onicecandidate !== null) {
- self.onicecandidate(new Event('icecandidate'));
- }
- self.iceGatheringState = 'complete';
- }
- break;
- case 'complete':
- // should not happen... currently!
- break;
- default: // no-op.
- break;
- }
- };
- iceTransport.onicestatechange = function() {
- self._updateConnectionState();
- };
-
- var dtlsTransport = new RTCDtlsTransport(iceTransport);
- dtlsTransport.ondtlsstatechange = function() {
- self._updateConnectionState();
- };
- dtlsTransport.onerror = function() {
- // onerror does not set state to failed by itself.
- dtlsTransport.state = 'failed';
- self._updateConnectionState();
- };
-
- return {
- iceGatherer: iceGatherer,
- iceTransport: iceTransport,
- dtlsTransport: dtlsTransport
- };
- };
-
- // Start the RTP Sender and Receiver for a transceiver.
- window.RTCPeerConnection.prototype._transceive = function(transceiver,
- send, recv) {
- var params = this._getCommonCapabilities(transceiver.localCapabilities,
- transceiver.remoteCapabilities);
- if (send && transceiver.rtpSender) {
- params.encodings = transceiver.sendEncodingParameters;
- params.rtcp = {
- cname: SDPUtils.localCName
- };
- if (transceiver.recvEncodingParameters.length) {
- params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
- }
- transceiver.rtpSender.send(params);
- }
- if (recv && transceiver.rtpReceiver) {
- // remove RTX field in Edge 14942
- if (transceiver.kind === 'video'
- && transceiver.recvEncodingParameters) {
- transceiver.recvEncodingParameters.forEach(function(p) {
- delete p.rtx;
- });
- }
- params.encodings = transceiver.recvEncodingParameters;
- params.rtcp = {
- cname: transceiver.cname
- };
- if (transceiver.sendEncodingParameters.length) {
- params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
- }
- transceiver.rtpReceiver.receive(params);
- }
- };
-
- window.RTCPeerConnection.prototype.setLocalDescription =
- function(description) {
- var self = this;
- var sections;
- var sessionpart;
- if (description.type === 'offer') {
- // FIXME: What was the purpose of this empty if statement?
- // if (!this._pendingOffer) {
- // } else {
- if (this._pendingOffer) {
- // VERY limited support for SDP munging. Limited to:
- // * changing the order of codecs
- sections = SDPUtils.splitSections(description.sdp);
- sessionpart = sections.shift();
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var caps = SDPUtils.parseRtpParameters(mediaSection);
- self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
- });
- this.transceivers = this._pendingOffer;
- delete this._pendingOffer;
- }
- } else if (description.type === 'answer') {
- sections = SDPUtils.splitSections(self.remoteDescription.sdp);
- sessionpart = sections.shift();
- var isIceLite = SDPUtils.matchPrefix(sessionpart,
- 'a=ice-lite').length > 0;
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var transceiver = self.transceivers[sdpMLineIndex];
- var iceGatherer = transceiver.iceGatherer;
- var iceTransport = transceiver.iceTransport;
- var dtlsTransport = transceiver.dtlsTransport;
- var localCapabilities = transceiver.localCapabilities;
- var remoteCapabilities = transceiver.remoteCapabilities;
-
- var rejected = mediaSection.split('\n', 1)[0]
- .split(' ', 2)[1] === '0';
-
- if (!rejected && !transceiver.isDatachannel) {
- var remoteIceParameters = SDPUtils.getIceParameters(
- mediaSection, sessionpart);
- if (isIceLite) {
- var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
- .map(function(cand) {
- return SDPUtils.parseCandidate(cand);
- })
- .filter(function(cand) {
- return cand.component === '1';
- });
- // ice-lite only includes host candidates in the SDP so we can
- // use setRemoteCandidates (which implies an
- // RTCIceCandidateComplete)
- if (cands.length) {
- iceTransport.setRemoteCandidates(cands);
- }
- }
- var remoteDtlsParameters = SDPUtils.getDtlsParameters(
- mediaSection, sessionpart);
- if (isIceLite) {
- remoteDtlsParameters.role = 'server';
- }
-
- if (!self.usingBundle || sdpMLineIndex === 0) {
- iceTransport.start(iceGatherer, remoteIceParameters,
- isIceLite ? 'controlling' : 'controlled');
- dtlsTransport.start(remoteDtlsParameters);
- }
-
- // Calculate intersection of capabilities.
- var params = self._getCommonCapabilities(localCapabilities,
- remoteCapabilities);
-
- // Start the RTCRtpSender. The RTCRtpReceiver for this
- // transceiver has already been started in setRemoteDescription.
- self._transceive(transceiver,
- params.codecs.length > 0,
- false);
- }
- });
- }
-
- this.localDescription = {
- type: description.type,
- sdp: description.sdp
- };
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-local-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type +
- '"');
- }
-
- // If a success callback was provided, emit ICE candidates after it
- // has been executed. Otherwise, emit callback after the Promise is
- // resolved.
- var hasCallback = arguments.length > 1 &&
- typeof arguments[1] === 'function';
- if (hasCallback) {
- var cb = arguments[1];
- window.setTimeout(function() {
- cb();
- if (self.iceGatheringState === 'new') {
- self.iceGatheringState = 'gathering';
- }
- self._emitBufferedCandidates();
- }, 0);
- }
- var p = Promise.resolve();
- p.then(function() {
- if (!hasCallback) {
- if (self.iceGatheringState === 'new') {
- self.iceGatheringState = 'gathering';
- }
- // Usually candidates will be emitted earlier.
- window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
- }
- });
- return p;
- };
-
- window.RTCPeerConnection.prototype.setRemoteDescription =
- function(description) {
- var self = this;
- var stream = new MediaStream();
- var receiverList = [];
- var sections = SDPUtils.splitSections(description.sdp);
- var sessionpart = sections.shift();
- var isIceLite = SDPUtils.matchPrefix(sessionpart,
- 'a=ice-lite').length > 0;
- this.usingBundle = SDPUtils.matchPrefix(sessionpart,
- 'a=group:BUNDLE ').length > 0;
- sections.forEach(function(mediaSection, sdpMLineIndex) {
- var lines = SDPUtils.splitLines(mediaSection);
- var mline = lines[0].substr(2).split(' ');
- var kind = mline[0];
- var rejected = mline[1] === '0';
- var direction = SDPUtils.getDirection(mediaSection, sessionpart);
-
- var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
- if (mid.length) {
- mid = mid[0].substr(6);
- } else {
- mid = SDPUtils.generateIdentifier();
- }
-
- // Reject datachannels which are not implemented yet.
- if (kind === 'application' && mline[2] === 'DTLS/SCTP') {
- self.transceivers[sdpMLineIndex] = {
- mid: mid,
- isDatachannel: true
- };
- return;
- }
-
- var transceiver;
- var iceGatherer;
- var iceTransport;
- var dtlsTransport;
- var rtpSender;
- var rtpReceiver;
- var sendEncodingParameters;
- var recvEncodingParameters;
- var localCapabilities;
-
- var track;
- // FIXME: ensure the mediaSection has rtcp-mux set.
- var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
- var remoteIceParameters;
- var remoteDtlsParameters;
- if (!rejected) {
- remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
- sessionpart);
- remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
- sessionpart);
- remoteDtlsParameters.role = 'client';
- }
- recvEncodingParameters =
- SDPUtils.parseRtpEncodingParameters(mediaSection);
-
- var cname;
- // Gets the first SSRC. Note that with RTX there might be multiple
- // SSRCs.
- var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
- .map(function(line) {
- return SDPUtils.parseSsrcMedia(line);
- })
- .filter(function(obj) {
- return obj.attribute === 'cname';
- })[0];
- if (remoteSsrc) {
- cname = remoteSsrc.value;
- }
-
- var isComplete = SDPUtils.matchPrefix(mediaSection,
- 'a=end-of-candidates', sessionpart).length > 0;
- var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
- .map(function(cand) {
- return SDPUtils.parseCandidate(cand);
- })
- .filter(function(cand) {
- return cand.component === '1';
- });
- if (description.type === 'offer' && !rejected) {
- var transports = self.usingBundle && sdpMLineIndex > 0 ? {
- iceGatherer: self.transceivers[0].iceGatherer,
- iceTransport: self.transceivers[0].iceTransport,
- dtlsTransport: self.transceivers[0].dtlsTransport
- } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- if (isComplete) {
- transports.iceTransport.setRemoteCandidates(cands);
- }
-
- localCapabilities = RTCRtpReceiver.getCapabilities(kind);
-
- // filter RTX until additional stuff needed for RTX is implemented
- // in adapter.js
- localCapabilities.codecs = localCapabilities.codecs.filter(
- function(codec) {
- return codec.name !== 'rtx';
- });
-
- sendEncodingParameters = [{
- ssrc: (2 * sdpMLineIndex + 2) * 1001
- }];
-
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
-
- track = rtpReceiver.track;
- receiverList.push([track, rtpReceiver]);
- // FIXME: not correct when there are multiple streams but that is
- // not currently supported in this shim.
- stream.addTrack(track);
-
- // FIXME: look at direction.
- if (self.localStreams.length > 0 &&
- self.localStreams[0].getTracks().length >= sdpMLineIndex) {
- var localTrack;
- if (kind === 'audio') {
- localTrack = self.localStreams[0].getAudioTracks()[0];
- } else if (kind === 'video') {
- localTrack = self.localStreams[0].getVideoTracks()[0];
- }
- if (localTrack) {
- rtpSender = new RTCRtpSender(localTrack,
- transports.dtlsTransport);
- }
- }
-
- self.transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: remoteCapabilities,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- cname: cname,
- sendEncodingParameters: sendEncodingParameters,
- recvEncodingParameters: recvEncodingParameters
- };
- // Start the RTCRtpReceiver now. The RTPSender is started in
- // setLocalDescription.
- self._transceive(self.transceivers[sdpMLineIndex],
- false,
- direction === 'sendrecv' || direction === 'sendonly');
- } else if (description.type === 'answer' && !rejected) {
- transceiver = self.transceivers[sdpMLineIndex];
- iceGatherer = transceiver.iceGatherer;
- iceTransport = transceiver.iceTransport;
- dtlsTransport = transceiver.dtlsTransport;
- rtpSender = transceiver.rtpSender;
- rtpReceiver = transceiver.rtpReceiver;
- sendEncodingParameters = transceiver.sendEncodingParameters;
- localCapabilities = transceiver.localCapabilities;
-
- self.transceivers[sdpMLineIndex].recvEncodingParameters =
- recvEncodingParameters;
- self.transceivers[sdpMLineIndex].remoteCapabilities =
- remoteCapabilities;
- self.transceivers[sdpMLineIndex].cname = cname;
-
- if ((isIceLite || isComplete) && cands.length) {
- iceTransport.setRemoteCandidates(cands);
- }
- if (!self.usingBundle || sdpMLineIndex === 0) {
- iceTransport.start(iceGatherer, remoteIceParameters,
- 'controlling');
- dtlsTransport.start(remoteDtlsParameters);
- }
-
- self._transceive(transceiver,
- direction === 'sendrecv' || direction === 'recvonly',
- direction === 'sendrecv' || direction === 'sendonly');
-
- if (rtpReceiver &&
- (direction === 'sendrecv' || direction === 'sendonly')) {
- track = rtpReceiver.track;
- receiverList.push([track, rtpReceiver]);
- stream.addTrack(track);
- } else {
- // FIXME: actually the receiver should be created later.
- delete transceiver.rtpReceiver;
- }
- }
- });
-
- this.remoteDescription = {
- type: description.type,
- sdp: description.sdp
- };
- switch (description.type) {
- case 'offer':
- this._updateSignalingState('have-remote-offer');
- break;
- case 'answer':
- this._updateSignalingState('stable');
- break;
- default:
- throw new TypeError('unsupported type "' + description.type +
- '"');
- }
- if (stream.getTracks().length) {
- self.remoteStreams.push(stream);
- window.setTimeout(function() {
- var event = new Event('addstream');
- event.stream = stream;
- self.dispatchEvent(event);
- if (self.onaddstream !== null) {
- window.setTimeout(function() {
- self.onaddstream(event);
- }, 0);
- }
-
- receiverList.forEach(function(item) {
- var track = item[0];
- var receiver = item[1];
- var trackEvent = new Event('track');
- trackEvent.track = track;
- trackEvent.receiver = receiver;
- trackEvent.streams = [stream];
- self.dispatchEvent(event);
- if (self.ontrack !== null) {
- window.setTimeout(function() {
- self.ontrack(trackEvent);
- }, 0);
- }
- });
- }, 0);
- }
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.close = function() {
- this.transceivers.forEach(function(transceiver) {
- /* not yet
- if (transceiver.iceGatherer) {
- transceiver.iceGatherer.close();
- }
- */
- if (transceiver.iceTransport) {
- transceiver.iceTransport.stop();
- }
- if (transceiver.dtlsTransport) {
- transceiver.dtlsTransport.stop();
- }
- if (transceiver.rtpSender) {
- transceiver.rtpSender.stop();
- }
- if (transceiver.rtpReceiver) {
- transceiver.rtpReceiver.stop();
- }
- });
- // FIXME: clean up tracks, local streams, remote streams, etc
- this._updateSignalingState('closed');
- };
-
- // Update the signaling state.
- window.RTCPeerConnection.prototype._updateSignalingState =
- function(newState) {
- this.signalingState = newState;
- var event = new Event('signalingstatechange');
- this.dispatchEvent(event);
- if (this.onsignalingstatechange !== null) {
- this.onsignalingstatechange(event);
- }
- };
-
- // Determine whether to fire the negotiationneeded event.
- window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
- function() {
- // Fire away (for now).
- var event = new Event('negotiationneeded');
- this.dispatchEvent(event);
- if (this.onnegotiationneeded !== null) {
- this.onnegotiationneeded(event);
- }
- };
-
- // Update the connection state.
- window.RTCPeerConnection.prototype._updateConnectionState = function() {
- var self = this;
- var newState;
- var states = {
- 'new': 0,
- closed: 0,
- connecting: 0,
- checking: 0,
- connected: 0,
- completed: 0,
- failed: 0
- };
- this.transceivers.forEach(function(transceiver) {
- states[transceiver.iceTransport.state]++;
- states[transceiver.dtlsTransport.state]++;
- });
- // ICETransport.completed and connected are the same for this purpose.
- states.connected += states.completed;
-
- newState = 'new';
- if (states.failed > 0) {
- newState = 'failed';
- } else if (states.connecting > 0 || states.checking > 0) {
- newState = 'connecting';
- } else if (states.disconnected > 0) {
- newState = 'disconnected';
- } else if (states.new > 0) {
- newState = 'new';
- } else if (states.connected > 0 || states.completed > 0) {
- newState = 'connected';
- }
-
- if (newState !== self.iceConnectionState) {
- self.iceConnectionState = newState;
- var event = new Event('iceconnectionstatechange');
- this.dispatchEvent(event);
- if (this.oniceconnectionstatechange !== null) {
- this.oniceconnectionstatechange(event);
- }
- }
- };
-
- window.RTCPeerConnection.prototype.createOffer = function() {
- var self = this;
- if (this._pendingOffer) {
- throw new Error('createOffer called while there is a pending offer.');
- }
- var offerOptions;
- if (arguments.length === 1 && typeof arguments[0] !== 'function') {
- offerOptions = arguments[0];
- } else if (arguments.length === 3) {
- offerOptions = arguments[2];
- }
-
- var tracks = [];
- var numAudioTracks = 0;
- var numVideoTracks = 0;
- // Default to sendrecv.
- if (this.localStreams.length) {
- numAudioTracks = this.localStreams[0].getAudioTracks().length;
- numVideoTracks = this.localStreams[0].getVideoTracks().length;
- }
- // Determine number of audio and video tracks we need to send/recv.
- if (offerOptions) {
- // Reject Chrome legacy constraints.
- if (offerOptions.mandatory || offerOptions.optional) {
- throw new TypeError(
- 'Legacy mandatory/optional constraints not supported.');
- }
- if (offerOptions.offerToReceiveAudio !== undefined) {
- numAudioTracks = offerOptions.offerToReceiveAudio;
- }
- if (offerOptions.offerToReceiveVideo !== undefined) {
- numVideoTracks = offerOptions.offerToReceiveVideo;
- }
- }
- if (this.localStreams.length) {
- // Push local streams.
- this.localStreams[0].getTracks().forEach(function(track) {
- tracks.push({
- kind: track.kind,
- track: track,
- wantReceive: track.kind === 'audio' ?
- numAudioTracks > 0 : numVideoTracks > 0
- });
- if (track.kind === 'audio') {
- numAudioTracks--;
- } else if (track.kind === 'video') {
- numVideoTracks--;
- }
- });
- }
- // Create M-lines for recvonly streams.
- while (numAudioTracks > 0 || numVideoTracks > 0) {
- if (numAudioTracks > 0) {
- tracks.push({
- kind: 'audio',
- wantReceive: true
- });
- numAudioTracks--;
- }
- if (numVideoTracks > 0) {
- tracks.push({
- kind: 'video',
- wantReceive: true
- });
- numVideoTracks--;
- }
- }
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- var transceivers = [];
- tracks.forEach(function(mline, sdpMLineIndex) {
- // For each track, create an ice gatherer, ice transport,
- // dtls transport, potentially rtpsender and rtpreceiver.
- var track = mline.track;
- var kind = mline.kind;
- var mid = SDPUtils.generateIdentifier();
-
- var transports = self.usingBundle && sdpMLineIndex > 0 ? {
- iceGatherer: transceivers[0].iceGatherer,
- iceTransport: transceivers[0].iceTransport,
- dtlsTransport: transceivers[0].dtlsTransport
- } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
-
- var localCapabilities = RTCRtpSender.getCapabilities(kind);
- // filter RTX until additional stuff needed for RTX is implemented
- // in adapter.js
- localCapabilities.codecs = localCapabilities.codecs.filter(
- function(codec) {
- return codec.name !== 'rtx';
- });
- localCapabilities.codecs.forEach(function(codec) {
- // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552
- // by adding level-asymmetry-allowed=1
- if (codec.name === 'H264' &&
- codec.parameters['level-asymmetry-allowed'] === undefined) {
- codec.parameters['level-asymmetry-allowed'] = '1';
- }
- });
-
- var rtpSender;
- var rtpReceiver;
-
- // generate an ssrc now, to be used later in rtpSender.send
- var sendEncodingParameters = [{
- ssrc: (2 * sdpMLineIndex + 1) * 1001
- }];
- if (track) {
- rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
- }
-
- if (mline.wantReceive) {
- rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
- }
-
- transceivers[sdpMLineIndex] = {
- iceGatherer: transports.iceGatherer,
- iceTransport: transports.iceTransport,
- dtlsTransport: transports.dtlsTransport,
- localCapabilities: localCapabilities,
- remoteCapabilities: null,
- rtpSender: rtpSender,
- rtpReceiver: rtpReceiver,
- kind: kind,
- mid: mid,
- sendEncodingParameters: sendEncodingParameters,
- recvEncodingParameters: null
- };
- });
- if (this.usingBundle) {
- sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
- return t.mid;
- }).join(' ') + '\r\n';
- }
- tracks.forEach(function(mline, sdpMLineIndex) {
- var transceiver = transceivers[sdpMLineIndex];
- sdp += SDPUtils.writeMediaSection(transceiver,
- transceiver.localCapabilities, 'offer', self.localStreams[0]);
- });
-
- this._pendingOffer = transceivers;
- var desc = new RTCSessionDescription({
- type: 'offer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.createAnswer = function() {
- var self = this;
-
- var sdp = SDPUtils.writeSessionBoilerplate();
- if (this.usingBundle) {
- sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
- return t.mid;
- }).join(' ') + '\r\n';
- }
- this.transceivers.forEach(function(transceiver) {
- if (transceiver.isDatachannel) {
- sdp += 'm=application 0 DTLS/SCTP 5000\r\n' +
- 'c=IN IP4 0.0.0.0\r\n' +
- 'a=mid:' + transceiver.mid + '\r\n';
- return;
- }
- // Calculate intersection of capabilities.
- var commonCapabilities = self._getCommonCapabilities(
- transceiver.localCapabilities,
- transceiver.remoteCapabilities);
-
- sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
- 'answer', self.localStreams[0]);
- });
-
- var desc = new RTCSessionDescription({
- type: 'answer',
- sdp: sdp
- });
- if (arguments.length && typeof arguments[0] === 'function') {
- window.setTimeout(arguments[0], 0, desc);
- }
- return Promise.resolve(desc);
- };
-
- window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
- if (candidate === null) {
- this.transceivers.forEach(function(transceiver) {
- transceiver.iceTransport.addRemoteCandidate({});
- });
- } else {
- var mLineIndex = candidate.sdpMLineIndex;
- if (candidate.sdpMid) {
- for (var i = 0; i < this.transceivers.length; i++) {
- if (this.transceivers[i].mid === candidate.sdpMid) {
- mLineIndex = i;
- break;
- }
- }
- }
- var transceiver = this.transceivers[mLineIndex];
- if (transceiver) {
- var cand = Object.keys(candidate.candidate).length > 0 ?
- SDPUtils.parseCandidate(candidate.candidate) : {};
- // Ignore Chrome's invalid candidates since Edge does not like them.
- if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {
- return;
- }
- // Ignore RTCP candidates, we assume RTCP-MUX.
- if (cand.component !== '1') {
- return;
- }
- // A dirty hack to make samples work.
- if (cand.type === 'endOfCandidates') {
- cand = {};
- }
- transceiver.iceTransport.addRemoteCandidate(cand);
-
- // update the remoteDescription.
- var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
- sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
- : 'a=end-of-candidates') + '\r\n';
- this.remoteDescription.sdp = sections.join('');
- }
- }
- if (arguments.length > 1 && typeof arguments[1] === 'function') {
- window.setTimeout(arguments[1], 0);
- }
- return Promise.resolve();
- };
-
- window.RTCPeerConnection.prototype.getStats = function() {
- var promises = [];
- this.transceivers.forEach(function(transceiver) {
- ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
- 'dtlsTransport'].forEach(function(method) {
- if (transceiver[method]) {
- promises.push(transceiver[method].getStats());
- }
- });
- });
- var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
- arguments[1];
- return new Promise(function(resolve) {
- // shim getStats with maplike support
- var results = new Map();
- Promise.all(promises).then(function(res) {
- res.forEach(function(result) {
- Object.keys(result).forEach(function(id) {
- results.set(id, result[id]);
- results[id] = result[id];
- });
- });
- if (cb) {
- window.setTimeout(cb, 0, results);
- }
- resolve(results);
- });
- });
- };
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimPeerConnection: edgeShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia')
-};
-
-},{"../utils":209,"./getusermedia":205,"sdp":173}],205:[function(require,module,exports){
-arguments[4][37][0].apply(exports,arguments)
-},{"dup":37}],206:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var browserDetails = require('../utils').browserDetails;
-
-var firefoxShim = {
- shimOnTrack: function() {
- if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
- window.RTCPeerConnection.prototype)) {
- Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
- get: function() {
- return this._ontrack;
- },
- set: function(f) {
- if (this._ontrack) {
- this.removeEventListener('track', this._ontrack);
- this.removeEventListener('addstream', this._ontrackpoly);
- }
- this.addEventListener('track', this._ontrack = f);
- this.addEventListener('addstream', this._ontrackpoly = function(e) {
- e.stream.getTracks().forEach(function(track) {
- var event = new Event('track');
- event.track = track;
- event.receiver = {track: track};
- event.streams = [e.stream];
- this.dispatchEvent(event);
- }.bind(this));
- }.bind(this));
- }
- });
- }
- },
-
- shimSourceObject: function() {
- // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
- if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- return this.mozSrcObject;
- },
- set: function(stream) {
- this.mozSrcObject = stream;
- }
- });
- }
- }
- },
-
- shimPeerConnection: function() {
- if (typeof window !== 'object' || !(window.RTCPeerConnection ||
- window.mozRTCPeerConnection)) {
- return; // probably media.peerconnection.enabled=false in about:config
- }
- // The RTCPeerConnection object.
- if (!window.RTCPeerConnection) {
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- if (browserDetails.version < 38) {
- // .urls is not supported in FF < 38.
- // create RTCIceServers with a single url.
- if (pcConfig && pcConfig.iceServers) {
- var newIceServers = [];
- for (var 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]
- };
- if (server.urls[j].indexOf('turn') === 0) {
- 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.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
-
- // wrap static methods. Currently just generateCertificate.
- if (mozRTCPeerConnection.generateCertificate) {
- Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
- get: function() {
- return mozRTCPeerConnection.generateCertificate;
- }
- });
- }
-
- window.RTCSessionDescription = mozRTCSessionDescription;
- window.RTCIceCandidate = mozRTCIceCandidate;
- }
-
- // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
- ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
- .forEach(function(method) {
- var nativeMethod = RTCPeerConnection.prototype[method];
- RTCPeerConnection.prototype[method] = function() {
- arguments[0] = new ((method === 'addIceCandidate') ?
- RTCIceCandidate : RTCSessionDescription)(arguments[0]);
- return nativeMethod.apply(this, arguments);
- };
- });
-
- // support for addIceCandidate(null)
- var nativeAddIceCandidate =
- RTCPeerConnection.prototype.addIceCandidate;
- RTCPeerConnection.prototype.addIceCandidate = function() {
- if (arguments[0] === null) {
- if (arguments[1]) {
- arguments[1].apply(null);
- }
- return Promise.resolve();
- }
- return nativeAddIceCandidate.apply(this, arguments);
- };
-
- // shim getStats with maplike support
- var makeMapStats = function(stats) {
- var map = new Map();
- Object.keys(stats).forEach(function(key) {
- map.set(key, stats[key]);
- map[key] = stats[key];
- });
- return map;
- };
-
- var nativeGetStats = RTCPeerConnection.prototype.getStats;
- RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
- return nativeGetStats.apply(this, [selector || null])
- .then(function(stats) {
- return makeMapStats(stats);
- })
- .then(onSucc, onErr);
- };
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimOnTrack: firefoxShim.shimOnTrack,
- shimSourceObject: firefoxShim.shimSourceObject,
- shimPeerConnection: firefoxShim.shimPeerConnection,
- shimGetUserMedia: require('./getusermedia')
-};
-
-},{"../utils":209,"./getusermedia":207}],207:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var logging = require('../utils').log;
-var browserDetails = require('../utils').browserDetails;
-
-// Expose public methods.
-module.exports = function() {
- var shimError_ = function(e) {
- return {
- name: {
- SecurityError: 'NotAllowedError',
- PermissionDeniedError: 'NotAllowedError'
- }[e.name] || e.name,
- message: {
- 'The operation is insecure.': 'The request is not allowed by the ' +
- 'user agent or the platform in the current context.'
- }[e.message] || e.message,
- constraint: e.constraint,
- toString: function() {
- return this.name + (this.message && ': ') + this.message;
- }
- };
- };
-
- // getUserMedia constraints shim.
- var getUserMedia_ = function(constraints, onSuccess, onError) {
- var constraintsToFF37_ = function(c) {
- if (typeof c !== 'object' || c.require) {
- return c;
- }
- var require = [];
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
- return;
- }
- var r = c[key] = (typeof c[key] === 'object') ?
- c[key] : {ideal: c[key]};
- if (r.min !== undefined ||
- r.max !== undefined || r.exact !== undefined) {
- require.push(key);
- }
- if (r.exact !== undefined) {
- if (typeof r.exact === 'number') {
- r. min = r.max = r.exact;
- } else {
- c[key] = r.exact;
- }
- delete r.exact;
- }
- if (r.ideal !== undefined) {
- c.advanced = c.advanced || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[key] = {min: r.ideal, max: r.ideal};
- } else {
- oc[key] = r.ideal;
- }
- c.advanced.push(oc);
- delete r.ideal;
- if (!Object.keys(r).length) {
- delete c[key];
- }
- }
- });
- if (require.length) {
- c.require = require;
- }
- return c;
- };
- constraints = JSON.parse(JSON.stringify(constraints));
- if (browserDetails.version < 38) {
- logging('spec: ' + JSON.stringify(constraints));
- if (constraints.audio) {
- constraints.audio = constraintsToFF37_(constraints.audio);
- }
- if (constraints.video) {
- constraints.video = constraintsToFF37_(constraints.video);
- }
- logging('ff37: ' + JSON.stringify(constraints));
- }
- return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
- onError(shimError_(e));
- });
- };
-
- // Returns the result of getUserMedia as a Promise.
- var getUserMediaPromise_ = function(constraints) {
- return new Promise(function(resolve, reject) {
- getUserMedia_(constraints, resolve, reject);
- });
- };
-
- // Shim for mediaDevices on older versions.
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
- 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);
- });
- };
-
- if (browserDetails.version < 41) {
- // Work around http://bugzil.la/1169665
- var orgEnumerateDevices =
- navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
- navigator.mediaDevices.enumerateDevices = function() {
- return orgEnumerateDevices().then(undefined, function(e) {
- if (e.name === 'NotFoundError') {
- return [];
- }
- throw e;
- });
- };
- }
- if (browserDetails.version < 49) {
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- return origGetUserMedia(c).then(function(stream) {
- // Work around https://bugzil.la/802326
- if (c.audio && !stream.getAudioTracks().length ||
- c.video && !stream.getVideoTracks().length) {
- stream.getTracks().forEach(function(track) {
- track.stop();
- });
- throw new DOMException('The object can not be found here.',
- 'NotFoundError');
- }
- return stream;
- }, function(e) {
- return Promise.reject(shimError_(e));
- });
- };
- }
- navigator.getUserMedia = function(constraints, onSuccess, onError) {
- if (browserDetails.version < 44) {
- return getUserMedia_(constraints, onSuccess, onError);
- }
- // Replace Firefox 44+'s deprecation warning with unprefixed version.
- console.warn('navigator.getUserMedia has been replaced by ' +
- 'navigator.mediaDevices.getUserMedia');
- navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
- };
-};
-
-},{"../utils":209}],208:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
-'use strict';
-var safariShim = {
- // TODO: DrAlex, should be here, double check against LayoutTests
- // shimOnTrack: function() { },
-
- // TODO: once the back-end for the mac port is done, add.
- // TODO: check for webkitGTK+
- // shimPeerConnection: function() { },
-
- shimGetUserMedia: function() {
- navigator.getUserMedia = navigator.webkitGetUserMedia;
- }
-};
-
-// Expose public methods.
-module.exports = {
- shimGetUserMedia: safariShim.shimGetUserMedia
- // TODO
- // shimOnTrack: safariShim.shimOnTrack,
- // shimPeerConnection: safariShim.shimPeerConnection
-};
-
-},{}],209:[function(require,module,exports){
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
-'use strict';
-
-var logDisabled_ = true;
-
-// Utility methods.
-var utils = {
- disableLog: function(bool) {
- if (typeof bool !== 'boolean') {
- return new Error('Argument type: ' + typeof bool +
- '. Please use a boolean.');
- }
- logDisabled_ = bool;
- return (bool) ? 'adapter.js logging disabled' :
- 'adapter.js logging enabled';
- },
-
- log: function() {
- if (typeof window === 'object') {
- if (logDisabled_) {
- return;
- }
- if (typeof console !== 'undefined' && typeof console.log === 'function') {
- console.log.apply(console, arguments);
- }
- }
- },
-
- /**
- * Extract browser version out of the provided user agent string.
- *
- * @param {!string} uastring userAgent string.
- * @param {!string} expr Regular expression used as match criteria.
- * @param {!number} pos position in the version string to be returned.
- * @return {!number} browser version.
- */
- extractVersion: function(uastring, expr, pos) {
- var match = uastring.match(expr);
- return match && match.length >= pos && parseInt(match[pos], 10);
- },
-
- /**
- * Browser detector.
- *
- * @return {object} result containing browser and version
- * properties.
- */
- detectBrowser: function() {
- // Returned result object.
- var result = {};
- result.browser = null;
- result.version = null;
-
- // Fail early if it's not a browser
- if (typeof window === 'undefined' || !window.navigator) {
- result.browser = 'Not a browser.';
- return result;
- }
-
- // Firefox.
- if (navigator.mozGetUserMedia) {
- result.browser = 'firefox';
- result.version = this.extractVersion(navigator.userAgent,
- /Firefox\/([0-9]+)\./, 1);
-
- // all webkit-based browsers
- } else if (navigator.webkitGetUserMedia) {
- // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
- if (window.webkitRTCPeerConnection) {
- result.browser = 'chrome';
- result.version = this.extractVersion(navigator.userAgent,
- /Chrom(e|ium)\/([0-9]+)\./, 2);
-
- // Safari or unknown webkit-based
- // for the time being Safari has support for MediaStreams but not webRTC
- } else {
- // Safari UA substrings of interest for reference:
- // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
- // - safari UI version: Version/9.0.3 (unique to Safari)
- // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
- //
- // if the webkit version and safari UI webkit versions are equals,
- // ... this is a stable version.
- //
- // only the internal webkit version is important today to know if
- // media streams are supported
- //
- if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
- result.browser = 'safari';
- result.version = this.extractVersion(navigator.userAgent,
- /AppleWebKit\/([0-9]+)\./, 1);
-
- // unknown webkit-based browser
- } else {
- result.browser = 'Unsupported webkit-based browser ' +
- 'with GUM support but no WebRTC support.';
- return result;
- }
- }
-
- // Edge.
- } else if (navigator.mediaDevices &&
- navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
- result.browser = 'edge';
- result.version = this.extractVersion(navigator.userAgent,
- /Edge\/(\d+).(\d+)$/, 2);
-
- // Default fallthrough: not supported.
- } else {
- result.browser = 'Not a supported browser.';
- return result;
- }
-
- return result;
- }
-};
-
-// Export.
-module.exports = {
- log: utils.log,
- disableLog: utils.disableLog,
- browserDetails: utils.detectBrowser(),
- extractVersion: utils.extractVersion
-};
-
-},{}],210:[function(require,module,exports){
-// created by @HenrikJoreteg
-var prefix;
-var version;
-
-if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
- prefix = 'moz';
- version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
-} else if (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;
-var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
-var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
-var MediaStream = window.webkitMediaStream || window.MediaStream;
-var screenSharing = window.location.protocol === 'https:' &&
- ((prefix === 'webkit' && version >= 26) ||
- (prefix === 'moz' && version >= 33))
-var AudioContext = window.AudioContext || window.webkitAudioContext;
-var videoEl = document.createElement('video');
-var supportVp8 = videoEl && videoEl.canPlayType && videoEl.canPlayType('video/webm; codecs="vp8", vorbis') === "probably";
-var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia;
-
-// export support flags and constructors.prototype && PC
-module.exports = {
- prefix: prefix,
- browserVersion: version,
- support: !!PC && supportVp8 && !!getUserMedia,
- // new support style
- 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,
- // old deprecated style. Dont use this anymore
- dataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
- webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
- mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
- screenSharing: !!screenSharing,
- // constructors
- AudioContext: AudioContext,
- PeerConnection: PC,
- SessionDescription: SessionDescription,
- IceCandidate: IceCandidate,
- MediaStream: MediaStream,
- getUserMedia: getUserMedia
-};
-
-},{}],211:[function(require,module,exports){
-/*
-WildEmitter.js is a slim little event emitter by @henrikjoreteg largely based
-on @visionmedia's Emitter from UI Kit.
-
-Why? I wanted it standalone.
-
-I also wanted support for wildcard emitters like this:
-
-emitter.on('*', function (eventName, other, event, payloads) {
-
-});
-
-emitter.on('somenamespace*', function (eventName, payloads) {
-
-});
-
-Please note that callbacks triggered by wildcard registered events also get
-the event name as the first argument.
-*/
-
-module.exports = WildEmitter;
-
-function WildEmitter() { }
-
-WildEmitter.mixin = function (constructor) {
- var prototype = constructor.prototype || constructor;
-
- prototype.isWildEmitter= true;
-
- // Listen on the given `event` with `fn`. Store a group name if present.
- prototype.on = function (event, groupName, fn) {
- this.callbacks = this.callbacks || {};
- var hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- func._groupName = group;
- (this.callbacks[event] = this.callbacks[event] || []).push(func);
- return this;
- };
-
- // Adds an `event` listener that will be invoked a single
- // time then automatically removed.
- prototype.once = function (event, groupName, fn) {
- var self = this,
- hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- function on() {
- self.off(event, on);
- func.apply(this, arguments);
- }
- this.on(event, group, on);
- return this;
- };
-
- // Unbinds an entire group
- prototype.releaseGroup = function (groupName) {
- this.callbacks = this.callbacks || {};
- var item, i, len, handlers;
- for (item in this.callbacks) {
- handlers = this.callbacks[item];
- for (i = 0, len = handlers.length; i < len; i++) {
- if (handlers[i]._groupName === groupName) {
- //console.log('removing');
- // remove it and shorten the array we're looping through
- handlers.splice(i, 1);
- i--;
- len--;
- }
- }
- }
- return this;
- };
-
- // Remove the given callback for `event` or all
- // registered callbacks.
- prototype.off = function (event, fn) {
- this.callbacks = this.callbacks || {};
- var callbacks = this.callbacks[event],
- i;
-
- if (!callbacks) return this;
-
- // remove all handlers
- if (arguments.length === 1) {
- delete this.callbacks[event];
- return this;
- }
-
- // remove specific handler
- i = callbacks.indexOf(fn);
- callbacks.splice(i, 1);
- if (callbacks.length === 0) {
- delete this.callbacks[event];
- }
- return this;
- };
-
- /// Emit `event` with the given args.
- // also calls any `*` handlers
- prototype.emit = function (event) {
- this.callbacks = this.callbacks || {};
- var args = [].slice.call(arguments, 1),
- callbacks = this.callbacks[event],
- specialCallbacks = this.getWildcardCallbacks(event),
- i,
- len,
- item,
- listeners;
-
- if (callbacks) {
- listeners = callbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, args);
- }
- }
-
- if (specialCallbacks) {
- len = specialCallbacks.length;
- listeners = specialCallbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, [event].concat(args));
- }
- }
-
- return this;
- };
-
- // Helper for for finding special wildcard event handlers that match the event
- prototype.getWildcardCallbacks = function (eventName) {
- this.callbacks = this.callbacks || {};
- var item,
- split,
- result = [];
-
- for (item in this.callbacks) {
- split = item.split('*');
- if (item === '*' || (split.length === 2 && eventName.slice(0, split[0].length) === split[0])) {
- result = result.concat(this.callbacks[item]);
- }
- }
- return result;
- };
-
-};
-
-WildEmitter.mixin(WildEmitter);
-
-},{}],212:[function(require,module,exports){
-module.exports = {
- Namespace: require('./lib/namespaces'),
- MUC: require('./lib/muc'),
- PubSub: require('./lib/pubsub'),
- Jingle: require('./lib/jingle'),
- Presence: require('./lib/presence')
-};
-
-},{"./lib/jingle":213,"./lib/muc":214,"./lib/namespaces":215,"./lib/presence":216,"./lib/pubsub":217}],213:[function(require,module,exports){
-module.exports = {
- Action: {
- CONTENT_ACCEPT: 'content-accept',
- CONTENT_ADD: 'content-add',
- CONTENT_MODIFY: 'content-modify',
- CONTENT_REJECT: 'content-reject',
- CONTENT_REMOVE: 'content-remove',
- DESCRIPTION_INFO: 'description-info',
- SECURITY_INFO: 'security-info',
- SESSION_ACCEPT: 'session-accept',
- SESSION_INFO: 'session-info',
- SESSION_INITIATE: 'session-initiate',
- SESSION_TERMINATE: 'session-terminate',
- TRANSPORT_ACCEPT: 'transport-accept',
- TRANSPORT_INFO: 'transport-info',
- TRANSPORT_REJECT: 'transport-reject',
- TRANSPORT_REPLACE: 'transport-replace'
- },
- Reason: {
- ALTERNATIVE_SESSION: 'alernative-session',
- BUSY: 'busy',
- CANCEL: 'cancel',
- CONNECTIVITY_ERROR: 'connectivity-error',
- DECLINE: 'decline',
- EXPIRED: 'expired',
- FAILED_APPLICATION: 'failed-application',
- FAILED_TRANSPORT: 'failed-transport',
- GENERAL_ERROR: 'general-error',
- GONE: 'gone',
- INCOMPATIBLE_PARAMETERS: 'incompatible-parameters',
- MEDIA_ERROR: 'media-error',
- SECURITY_ERROR: 'security-error',
- SUCCESS: 'success',
- TIMEOUT: 'timeout',
- UNSUPPORTED_APPLICATIONS: 'unsupported-applications',
- UNSUPPORTED_TRANSPORTS: 'unsupported-transports'
- },
- Condition: {
- OUT_OF_ORDER: 'out-of-order',
- TIE_BREAK: 'tie-break',
- UNKNOWN_SESSION: 'unknown-session',
- UNSUPPORTED_INFO: 'unsupported-info'
- }
-};
-
-},{}],214:[function(require,module,exports){
-module.exports = {
- Status: {
- REALJID_PUBLIC: '100',
- AFFILIATION_CHANGED: '101',
- UNAVAILABLE_SHOWN: '102',
- UNAVAILABLE_NOT_SHOWN: '103',
- CONFIGURATION_CHANGED: '104',
- SELF_PRESENCE: '110',
- LOGGING_ENABLED: '170',
- LOGGING_DISABLED: '171',
- NON_ANONYMOUS: '172',
- SEMI_ANONYMOUS: '173',
- FULLY_ANONYMOUS: '174',
- ROOM_CREATED: '201',
- NICK_ASSIGNED: '210',
- BANNED: '301',
- NEW_NICK: '303',
- KICKED: '307',
- REMOVED_AFFILIATION: '321',
- REMOVED_MEMBERSHIP: '322',
- REMOVED_SHUTDOWN: '332'
- },
- Affiliation: {
- ADMIN: 'admin',
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner'
- },
- Role: {
- MODERATOR: 'moderator',
- NONE: 'none',
- PARTICIPANT: 'participant',
- VISITOR: 'visitor'
- }
-};
-
-},{}],215:[function(require,module,exports){
-module.exports = {
-// ================================================================
-// RFCS
-// ================================================================
-
-// RFC 6120
- BIND: 'urn:ietf:params:xml:ns:xmpp-bind',
- CLIENT: 'jabber:client',
- SASL: 'urn:ietf:params:xml:ns:xmpp-sasl',
- SERVER: 'jabber:server',
- SESSION: 'urn:ietf:params:xml:ns:xmpp-session',
- STANZA_ERROR: 'urn:ietf:params:xml:ns:xmpp-stanzas',
- STREAM: 'http://etherx.jabber.org/streams',
- STREAM_ERROR: 'urn:ietf:params:xml:ns:xmpp-streams',
-
-// RFC 6121
- ROSTER: 'jabber:iq:roster',
- ROSTER_VERSIONING: 'urn:xmpp:features:rosterver',
- SUBSCRIPTION_PREAPPROVAL: 'urn:xmpp:features:pre-approval',
-
-// RFC 7395
- FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing',
-
-// ================================================================
-// XEPS
-// ================================================================
-
-// XEP-0004
- DATAFORM: 'jabber:x:data',
-
-// XEP-0009
- RPC: 'jabber:iq:rpc',
-
-// XEP-0012
- LAST_ACTIVITY: 'jabber:iq:last',
-
-// XEP-0016
- PRIVACY: 'jabber:iq:privacy',
-
-// XEP-0030
- DISCO_INFO: 'http://jabber.org/protocol/disco#info',
- DISCO_ITEMS: 'http://jabber.org/protocol/disco#items',
-
-// XEP-0033
- ADDRESS: 'http://jabber.org/protocol/address',
-
-// XEP-0045
- MUC: 'http://jabber.org/protocol/muc',
- MUC_ADMIN: 'http://jabber.org/protocol/muc#admin',
- MUC_OWNER: 'http://jabber.org/protocol/muc#owner',
- MUC_USER: 'http://jabber.org/protocol/muc#user',
-
-// XEP-0047
- IBB: 'http://jabber.org/protocol/ibb',
-
-// XEP-0048
- BOOKMARKS: 'storage:bookmarks',
-
-// XEP-0049
- PRIVATE: 'jabber:iq:private',
-
-// XEP-0050
- ADHOC_COMMANDS: 'http://jabber.org/protocol/commands',
-
-// XEP-0054
- VCARD_TEMP: 'vcard-temp',
-
-// XEP-0055
- SEARCH: 'jabber:iq:search',
-
-// XEP-0059
- RSM: 'http://jabber.org/protocol/rsm',
-
-// XEP-0060
- PUBSUB: 'http://jabber.org/protocol/pubsub',
- PUBSUB_ERRORS: 'http://jabber.org/protocol/pubsub#errors',
- PUBSUB_EVENT: 'http://jabber.org/protocol/pubsub#event',
- PUBSUB_OWNER: 'http://jabber.org/protocol/pubsub#owner',
-
-// XEP-0065
- SOCKS5: 'http://jabber.org/protocol/bytestreams',
-
-// XEP-0066
- OOB: 'jabber:x:oob',
-
-// XEP-0070
- HTTP_AUTH: 'http://jabber.org/protocol/http-auth',
-
-// XEP-0071
- XHTML_IM: 'http://jabber.org/protocol/xhtml-im',
-
-// XEP-0077
- REGISTER: 'jabber:iq:register',
-
-// XEP-0079
- AMP: 'http://jabber.org/protocol/amp',
-
-// XEP-0080
- GEOLOC: 'http://jabber.org/protocol/geoloc',
-
-// XEP-0083
- ROSTER_DELIMITER: 'roster:delimiter',
-
-// XEP-0084
- AVATAR_DATA: 'urn:xmpp:avatar:data',
- AVATAR_METADATA: 'urn:xmpp:avatar:metadata',
-
-// XEP-0085
- CHAT_STATES: 'http://jabber.org/protocol/chatstates',
-
-// XEP-0092
- VERSION: 'jabber:iq:version',
-
-// XEP-0107
- MOOD: 'http://jabber.org/protocol/mood',
-
-// XEP-0108
- ACTIVITY: 'http://jabber.org/protocol/activity',
-
-// XEP-0114
- COMPONENT: 'jabber:component:accept',
-
-// XEP-0115
- CAPS: 'http://jabber.org/protocol/caps',
-
-// XEP-0118
- TUNE: 'http://jabber.org/protocol/tune',
-
-// XEP-0122
- DATAFORM_VALIDATION: 'http://jabber.org/protocol/xdata-validate',
-
-// XEP-0124
- BOSH: 'http://jabber.org/protocol/httpbind',
-
-// XEP-0131
- SHIM: 'http://jabber.org/protocol/shim',
-
-// XEP-0138
- COMPRESSION: 'http://jabber.org/features/compress',
-
-// XEP-0141
- DATAFORM_LAYOUT: 'http://jabber.org/protocol/xdata-layout',
-
-// XEP-0144
- ROSTER_EXCHANGE: 'http://jabber.org/protocol/rosterx',
-
-// XEP-0145
- ROSTER_NOTES: 'storage:rosternotes',
-
-// XEP-0152
- REACH_0: 'urn:xmpp:reach:0',
-
-// XEP-0153
- VCARD_TEMP_UPDATE: 'vcard-temp:x:update',
-
-// XEP-0158
- CAPTCHA: 'urn:xmpp:captcha',
-
-// XEP-0166
- JINGLE_1: 'urn:xmpp:jingle:1',
- JINGLE_ERRORS_1: 'urn:xmpp:jingle:errors:1',
-
-// XEP-0167
- JINGLE_RTP_1: 'urn:xmpp:jingle:apps:rtp:1',
- JINGLE_RTP_ERRORS_1: 'urn:xmpp:jingle:apps:rtp:errors:1',
- JINGLE_RTP_INFO_1: 'urn:xmpp:jingle:apps:rtp:info:1',
-
-// XEP-0171
- LANG_TRANS: 'urn:xmpp:langtrans',
- LANG_TRANS_ITEMS: 'urn:xmpp:langtrans:items',
-
-// XEP-0172
- NICK: 'http://jabber.org/protocol/nick',
-
-// XEP-0176
- JINGLE_ICE_UDP_1: 'urn:xmpp:jingle:transports:ice-udp:1',
-
-// XEP-0177
- JINGLE_RAW_UDP_1: 'urn:xmpp:jingle:transports:raw-udp:1',
-
-// XEP-0184
- RECEIPTS: 'urn:xmpp:receipts',
-
-// XEP-0186
- INVISIBLE_0: 'urn:xmpp:invisible:0',
-
-// XEP-0191
- BLOCKING: 'urn:xmpp:blocking',
-
-// XEP-0198
- SMACKS_3: 'urn:xmpp:sm:3',
-
-// XEP-0199
- PING: 'urn:xmpp:ping',
-
-// XEP-0202
- TIME: 'urn:xmpp:time',
-
-// XEP-0203
- DELAY: 'urn:xmpp:delay',
-
-// XEP-0206
- BOSH_XMPP: 'urn:xmpp:xbosh',
-
-// XEP-0215
- DISCO_EXTERNAL_1: 'urn:xmpp:extdisco:1',
-
-// XEP-0221
- DATAFORM_MEDIA: 'urn:xmpp:media-element',
-
-// XEP-0224
- ATTENTION_0: 'urn:xmpp:attention:0',
-
-// XEP-0231
- BOB: 'urn:xmpp:bob',
-
-// XEP-0234
- FILE_TRANSFER_3: 'urn:xmpp:jingle:apps:file-transfer:3',
- FILE_TRANSFER_4: 'urn:xmpp:jingle:apps:file-transfer:4',
-
-// XEP-0249
- MUC_DIRECT_INVITE: 'jabber:x:conference',
-
-// XEP-0258
- SEC_LABEL_0: 'urn:xmpp:sec-label:0',
- SEC_LABEL_CATALOG_2: 'urn:xmpp:sec-label:catalog:2',
- SEC_LABEL_ESS_0: 'urn:xmpp:sec-label:ess:0',
-
-// XEP-0260
- JINGLE_SOCKS5_1: 'urn:xmpp:jingle:transports:s5b:1',
-
-// XEP-0261
- JINGLE_IBB_1: 'urn:xmpp:jingle:transports:ibb:1',
-
-// XEP-0262
- JINGLE_RTP_ZRTP_1: 'urn:xmpp:jingle:apps:rtp:zrtp:1',
-
-// XEP-0264
- THUMBS_0: 'urn:xmpp:thumbs:0',
- THUMBS_1: 'urn:xmpp:thumbs:1',
-
-// XEP-0276
- DECLOAKING_0: 'urn:xmpp:decloaking:0',
-
-// XEP-0280
- CARBONS_2: 'urn:xmpp:carbons:2',
-
-// XEP-0293
- JINGLE_RTP_RTCP_FB_0: 'urn:xmpp:jingle:apps:rtp:rtcp-fb:0',
-
-// XEP-0294
- JINGLE_RTP_HDREXT_0: 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
-
-// XEP-0297
- FORWARD_0: 'urn:xmpp:forward:0',
-
-// XEP-0300
- HASHES_1: 'urn:xmpp:hashes:1',
-
-// XEP-0301
- RTT_0: 'urn:xmpp:rtt:0',
-
-// XEP-0307
- MUC_UNIQUE: 'http://jabber.org/protocol/muc#unique',
-
-// XEP-308
- CORRECTION_0: 'urn:xmpp:message-correct:0',
-
-// XEP-0310
- PSA: 'urn:xmpp:psa',
-
-// XEP-0313
- MAM_TMP: 'urn:xmpp:mam:tmp',
- MAM_0: 'urn:xmpp:mam:0',
-
-// XEP-0317
- HATS_0: 'urn:xmpp:hats:0',
-
-// XEP-0319
- IDLE_1: 'urn:xmpp:idle:1',
-
-// XEP-0320
- JINGLE_DTLS_0: 'urn:xmpp:jingle:apps:dtls:0',
-
-// XEP-0328
- JID_PREP_0: 'urn:xmpp:jidprep:0',
-
-// XEP-0334
- HINTS: 'urn:xmpp:hints',
-
-// XEP-0335
- JSON_0: 'urn:xmpp:json:0',
-
-// XEP-0337
- EVENTLOG: 'urn:xmpp:eventlog',
-
-// XEP-0338
- JINGLE_GROUPING_0: 'urn:xmpp:jingle:apps:grouping:0',
-
-// XEP-0339
- JINGLE_RTP_SSMA_0: 'urn:xmpp:jingle:apps:rtp:ssma:0',
-
-// XEP-0340
- COLIBRI: 'http://jitsi.org/protocol/colibri',
-
-// XEP-0343
- DTLS_SCTP_1: 'urn:xmpp:jingle:transports:dtls-sctp:1',
-
-// XEP-0352
- CSI: 'urn:xmpp:csi',
-
-// XEP-0353
- JINGLE_MSG_INITIATE_0: 'urn:xmpp:jingle:jingle-message:0',
-
-// XEP-0357
- PUSH_0: 'urn:xmpp:push:0',
-
-// XEP-0358
- JINGLE_PUB_1: 'urn:xmpp:jinglepub:1'
-};
-
-},{}],216:[function(require,module,exports){
-module.exports = {
- Type: {
- SUBSCRIBE: 'subscribe',
- SUBSCRIBED: 'subscribed',
- UNSUBSCRIBE: 'unsubscribe',
- UNSUBSCRIBED: 'unsubscribed',
- PROBE: 'probe',
- UNAVAILABLE: 'unavailable'
- },
- Show: {
- CHAT: 'chat',
- AWAY: 'away',
- DO_NOT_DISTURB: 'dnd',
- EXTENDED_AWAY: 'xa'
- }
-};
-
-},{}],217:[function(require,module,exports){
-module.exports = {
- Affiliation: {
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner',
- PUBLISHER: 'publisher',
- PUBLISH_ONLY: 'publish-only'
- },
- Subscription: {
- NONE: 'none',
- PENDING: 'pending',
- UNCONFIGURED: 'unconfigured',
- SUBSCRIBED: 'subscribed'
- },
- AccessModel: {
- OPEN: 'open',
- PRESENCE: 'presence',
- ROSTER: 'roster',
- AUTHORIZE: 'authorize',
- WHITELIST: 'whitelist'
- },
- Condition: {
- CONFLICT: 'conflict'
- }
-};
-
-},{}],218:[function(require,module,exports){
-'use strict';
-
-var StringPrep = require('./lib/stringprep');
-
-// All of our StringPrep fallbacks work correctly
-// in the ASCII range, so we can reliably mark
-// ASCII-only JIDs as prepped.
-var ASCII = /^[\x00-\x7F]*$/;
-
-
-
-function bareJID(local, domain) {
- if (local) {
- return local + '@' + domain;
- }
- return domain;
-}
-
-function fullJID(local, domain, resource) {
- if (resource) {
- return bareJID(local, domain) + '/' + resource;
- }
- return bareJID(local, domain);
-}
-
-
-exports.prep = function (data) {
- var local = data.local;
- var domain = data.domain;
- var resource = data.resource;
- var unescapedLocal = local;
-
- if (local) {
- local = StringPrep.nodeprep(local);
- unescapedLocal = exports.unescape(local);
- }
-
- if (resource) {
- resource = StringPrep.resourceprep(resource);
- }
-
- if (domain[domain.length - 1] === '.') {
- domain = domain.slice(0, domain.length - 1);
- }
-
- domain = StringPrep.nameprep(domain.split('.').map(StringPrep.toUnicode).join('.'));
-
- return {
- prepped: data.prepped || StringPrep.available,
- local: local,
- domain: domain,
- resource: resource,
- bare: bareJID(local, domain),
- full: fullJID(local, domain, resource),
- unescapedLocal: unescapedLocal,
- unescapedBare: bareJID(unescapedLocal, domain),
- unescapedFull: fullJID(unescapedLocal, domain, resource)
- };
-};
-
-exports.parse = function (jid, trusted) {
- var local = '';
- var domain = '';
- var resource = '';
-
- trusted = trusted || ASCII.test(jid);
-
- var resourceStart = jid.indexOf('/');
- if (resourceStart > 0) {
- resource = jid.slice(resourceStart + 1);
- jid = jid.slice(0, resourceStart);
- }
-
- var localEnd = jid.indexOf('@');
- if (localEnd > 0) {
- local = jid.slice(0, localEnd);
- jid = jid.slice(localEnd + 1);
- }
-
- domain = jid;
-
- var preppedJID = exports.prep({
- local: local,
- domain: domain,
- resource: resource,
- });
-
- preppedJID.prepped = preppedJID.prepped || trusted;
-
- return preppedJID;
-};
-
-exports.equal = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- jid1.resource === jid2.resource &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.equalBare = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.isBare = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return !hasResource;
-};
-
-exports.isFull = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return hasResource;
-};
-
-exports.escape = function (val) {
- return val.replace(/^\s+|\s+$/g, '')
- .replace(/\\5c/g, '\\5c5c')
- .replace(/\\20/g, '\\5c20')
- .replace(/\\22/g, '\\5c22')
- .replace(/\\26/g, '\\5c26')
- .replace(/\\27/g, '\\5c27')
- .replace(/\\2f/g, '\\5c2f')
- .replace(/\\3a/g, '\\5c3a')
- .replace(/\\3c/g, '\\5c3c')
- .replace(/\\3e/g, '\\5c3e')
- .replace(/\\40/g, '\\5c40')
- .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');
-};
-
-exports.unescape = function (val) {
- return val.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, '\\');
-};
-
-
-exports.create = function (local, domain, resource) {
- return new exports.JID(local, domain, resource);
-};
-
-exports.JID = function JID(localOrJID, domain, resource) {
- var parsed = {};
- if (localOrJID && !domain && !resource) {
- if (typeof localOrJID === 'string') {
- parsed = exports.parse(localOrJID);
- } else if (localOrJID._isJID || localOrJID instanceof exports.JID) {
- parsed = localOrJID;
- } else {
- throw new Error('Invalid argument type');
- }
- } else if (domain) {
- var trusted = ASCII.test(localOrJID) && ASCII.test(domain);
- if (resource) {
- trusted = trusted && ASCII.test(resource);
- }
-
- parsed = exports.prep({
- local: exports.escape(localOrJID),
- domain: domain,
- resource: resource,
- prepped: trusted
- });
- } else {
- parsed = {};
- }
-
- this._isJID = true;
-
- this.local = parsed.local || '';
- this.domain = parsed.domain || '';
- this.resource = parsed.resource || '';
- this.bare = parsed.bare || '';
- this.full = parsed.full || '';
-
- this.unescapedLocal = parsed.unescapedLocal || '';
- this.unescapedBare = parsed.unescapedBare || '';
- this.unescapedFull = parsed.unescapedFull || '';
-
- this.prepped = parsed.prepped;
-};
-
-exports.JID.prototype.toString = function () {
- return this.full;
-};
-
-exports.JID.prototype.toJSON = function () {
- return this.full;
-};
-
-},{"./lib/stringprep":219}],219:[function(require,module,exports){
-'use strict';
-
-var punycode = require('punycode');
-
-
-exports.available = false;
-
-exports.toUnicode = punycode.toUnicode;
-
-exports.nameprep = function (str) {
- return str.toLowerCase();
-};
-
-exports.nodeprep = function (str) {
- return str.toLowerCase();
-};
-
-exports.resourceprep = function (str) {
- return str;
-};
-
-},{"punycode":154}],220:[function(require,module,exports){
-/* jshint -W117 */
-'use strict';
-
-var JSM = require('jingle');
-var RTC = require('webrtc-adapter-test');
-var GUM = require('getusermedia');
-var GSM = require('getscreenmedia');
-
-var jxt = require('jxt').createRegistry();
-jxt.use(require('jxt-xmpp-types'));
-jxt.use(require('jxt-xmpp'));
-
-var IqStanza = jxt.getDefinition('iq', 'jabber:client');
-
-(function($) {
- Strophe.addConnectionPlugin('jingle', {
- connection: null,
- peer_constraints: {},
- AUTOACCEPT: false,
- localStream: null,
- manager: null,
- RTC: null,
- getUserMedia: null,
- getScreenMedia: null,
-
- init: function(conn) {
- var self = this;
-
- self.RTC = RTC;
- self.getUserMedia = GUM;
- self.getScreenMedia = GSM;
-
- self.connection = conn;
-
- if ((RTC.webrtcDetectedVersion < 33 && RTC.webrtcDetectedBrowser === 'firefox') || RTC.webrtcDetectedBrowser === 'chrome') {
- self.peer_constraints = {
- mandatory: {
- 'OfferToReceiveAudio': true,
- 'OfferToReceiveVideo': true
- }
- };
-
- if (RTC.webrtcDetectedBrowser === 'firefox') {
- self.peer_constraints.mandatory.MozDontOfferDataChannel = true;
- }
- } else {
- self.peer_constraints = {
- 'offerToReceiveAudio': true,
- 'offerToReceiveVideo': true
- };
-
- if (RTC.webrtcDetectedBrowser === 'firefox') {
- self.peer_constraints.mozDontOfferDataChannel = true;
- }
- }
-
- 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'
- };
-
- $.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]);
- });
- });
-
- if (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]);
- });
-
- //@TODO add on client unavilable (this.manager.endPeerSessions(peer_jid_full, true))
- },
- onJingle: function(iq) {
- var req = jxt.parse(iq.outerHTML);
-
- this.manager.process(req.toJSON());
-
- return true;
- },
- initiate: function(peerjid, stream, offerOptions) { // initiate a new jinglesession to peerjid
- var session = this.manager.createMediaSession(peerjid);
-
- session.on('change:connectionState', function(session, state) {
- $(document).trigger('iceconnectionstatechange.jingle', [session.sid, session, state]);
- });
-
- if (stream) {
- this.localStream = stream;
- }
-
- // configure session
- if (this.localStream) {
- session.addStream(this.localStream);
- session.start(offerOptions);
-
- return session;
- }
-
- console.error('No local stream defined');
- },
- terminate: function(jid, reason, silent) { // terminate by sessionid (or all sessions)
- if (typeof jid === 'undefined' || jid === null) {
- this.manager.endAllSessions(reason, silent);
- } else {
- 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));
-
-},{"getscreenmedia":31,"getusermedia":32,"jingle":53,"jxt":120,"jxt-xmpp":81,"jxt-xmpp-types":54,"webrtc-adapter-test":200}]},{},[220]);
diff --git a/build/js/jsxc/lib/strophe.js/strophe.js b/build/js/jsxc/lib/strophe.js/strophe.js
deleted file mode 100644
index e5018a1..0000000
--- a/build/js/jsxc/lib/strophe.js/strophe.js
+++ /dev/null
@@ -1,5828 +0,0 @@
-/** File: strophe.js
- * A JavaScript library for writing XMPP clients.
- *
- * This library uses either Bidirectional-streams Over Synchronous HTTP (BOSH)
- * to emulate a persistent, stateful, two-way connection to an XMPP server or
- * alternatively WebSockets.
- *
- * More information on BOSH can be found in XEP 124.
- * For more information on XMPP-over WebSocket see this RFC:
- * http://tools.ietf.org/html/rfc7395
- */
-
-/* All of the Strophe globals are defined in this special function below so
- * that references to the globals become closures. This will ensure that
- * on page reload, these references will still be available to callbacks
- * that are still executing.
- */
-
-/* jshint ignore:start */
-(function (callback) {
-/* jshint ignore:end */
-
-// This code was written by Tyler Akins and has been placed in the
-// public domain. It would be nice if you left this header intact.
-// Base64 code from Tyler Akins -- http://rumkin.com
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-base64', function () {
- return factory();
- });
- } else {
- // Browser globals
- root.Base64 = factory();
- }
-}(this, function () {
- var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
- var obj = {
- /**
- * Encodes a string in base64
- * @param {String} input The string to encode in base64.
- */
- encode: function (input) {
- var output = "";
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
-
- do {
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
-
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
-
- if (isNaN(chr2)) {
- enc2 = ((chr1 & 3) << 4);
- enc3 = enc4 = 64;
- } else if (isNaN(chr3)) {
- enc4 = 64;
- }
-
- output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
- keyStr.charAt(enc3) + keyStr.charAt(enc4);
- } while (i < input.length);
-
- return output;
- },
-
- /**
- * Decodes a base64 string.
- * @param {String} input The string to decode.
- */
- decode: function (input) {
- var output = "";
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
-
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- 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 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
-
- output = output + String.fromCharCode(chr1);
-
- if (enc3 != 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 != 64) {
- output = output + String.fromCharCode(chr3);
- }
- } while (i < input.length);
-
- return output;
- }
- };
- return obj;
-}));
-
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */
-
-/* jshint undef: true, unused: true:, noarg: true, latedef: false */
-/* global define */
-
-/* Some functions and variables have been stripped for use with Strophe */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-sha1', function () {
- return factory();
- });
- } else {
- // Browser globals
- root.SHA1 = factory();
- }
-}(this, function () {
-
-/*
- * Calculate the SHA-1 of an array of big-endian words, and a bit length
- */
-function core_sha1(x, len)
-{
- /* append padding */
- x[len >> 5] |= 0x80 << (24 - len % 32);
- x[((len + 64 >> 9) << 4) + 15] = len;
-
- var w = new Array(80);
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
- var d = 271733878;
- var e = -1009589776;
-
- var i, j, t, olda, oldb, oldc, oldd, olde;
- for (i = 0; i < x.length; i += 16)
- {
- olda = a;
- oldb = b;
- oldc = c;
- oldd = d;
- olde = e;
-
- for (j = 0; j < 80; j++)
- {
- if (j < 16) { w[j] = x[i + j]; }
- else { 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];
-}
-
-/*
- * Perform the appropriate triplet combination function for the current
- * iteration
- */
-function sha1_ft(t, b, c, d)
-{
- if (t < 20) { return (b & c) | ((~b) & d); }
- if (t < 40) { return b ^ c ^ d; }
- if (t < 60) { return (b & c) | (b & d) | (c & d); }
- return b ^ c ^ d;
-}
-
-/*
- * Determine the appropriate additive constant for the current iteration
- */
-function sha1_kt(t)
-{
- return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :
- (t < 60) ? -1894007588 : -899497514;
-}
-
-/*
- * Calculate the HMAC-SHA1 of a key and some data
- */
-function core_hmac_sha1(key, data)
-{
- var bkey = str2binb(key);
- if (bkey.length > 16) { bkey = core_sha1(bkey, key.length * 8); }
-
- var ipad = new Array(16), opad = new Array(16);
- for (var i = 0; i < 16; i++)
- {
- ipad[i] = bkey[i] ^ 0x36363636;
- opad[i] = bkey[i] ^ 0x5C5C5C5C;
- }
-
- var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * 8);
- return core_sha1(opad.concat(hash), 512 + 160);
-}
-
-/*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */
-function safe_add(x, y)
-{
- var lsw = (x & 0xFFFF) + (y & 0xFFFF);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function rol(num, cnt)
-{
- return (num << cnt) | (num >>> (32 - cnt));
-}
-
-/*
- * Convert an 8-bit or 16-bit string to an array of big-endian words
- * In 8-bit function, characters >255 have their hi-byte silently ignored.
- */
-function str2binb(str)
-{
- var bin = [];
- var mask = 255;
- for (var i = 0; i < str.length * 8; i += 8)
- {
- bin[i>>5] |= (str.charCodeAt(i / 8) & mask) << (24 - i%32);
- }
- return bin;
-}
-
-/*
- * Convert an array of big-endian words to a string
- */
-function binb2str(bin)
-{
- var str = "";
- var mask = 255;
- for (var i = 0; i < bin.length * 32; i += 8)
- {
- str += String.fromCharCode((bin[i>>5] >>> (24 - i%32)) & mask);
- }
- return str;
-}
-
-/*
- * Convert an array of big-endian words to a base-64 string
- */
-function binb2b64(binarray)
-{
- var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- var str = "";
- var triplet, j;
- for (var i = 0; i < binarray.length * 4; i += 3)
- {
- triplet = (((binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16) |
- (((binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 ) |
- ((binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
- for (j = 0; j < 4; j++)
- {
- if (i * 8 + j * 6 > binarray.length * 32) { str += "="; }
- else { str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); }
- }
- }
- return str;
-}
-
-/*
- * These are the functions you'll usually want to call
- * They take string arguments and return either hex or base-64 encoded strings
- */
-return {
- b64_hmac_sha1: function (key, data){ return binb2b64(core_hmac_sha1(key, data)); },
- b64_sha1: function (s) { return binb2b64(core_sha1(str2binb(s),s.length * 8)); },
- binb2str: binb2str,
- core_hmac_sha1: core_hmac_sha1,
- str_hmac_sha1: function (key, data){ return binb2str(core_hmac_sha1(key, data)); },
- str_sha1: function (s) { return binb2str(core_sha1(str2binb(s),s.length * 8)); },
-};
-}));
-
-/*
- * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
- * Digest Algorithm, as defined in RFC 1321.
- * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for more info.
- */
-
-/*
- * Everything that isn't used by Strophe has been stripped here!
- */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-md5', function () {
- return factory();
- });
- } else {
- // Browser globals
- root.MD5 = factory();
- }
-}(this, function (b) {
- /*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */
- var safe_add = function (x, y) {
- var lsw = (x & 0xFFFF) + (y & 0xFFFF);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
- };
-
- /*
- * Bitwise rotate a 32-bit number to the left.
- */
- var bit_rol = function (num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt));
- };
-
- /*
- * Convert a string to an array of little-endian words
- */
- var str2binl = function (str) {
- var bin = [];
- for(var i = 0; i < str.length * 8; i += 8)
- {
- bin[i>>5] |= (str.charCodeAt(i / 8) & 255) << (i%32);
- }
- return bin;
- };
-
- /*
- * Convert an array of little-endian words to a string
- */
- var binl2str = function (bin) {
- var str = "";
- for(var i = 0; i < bin.length * 32; i += 8)
- {
- str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & 255);
- }
- return str;
- };
-
- /*
- * Convert an array of little-endian words to a hex string.
- */
- var binl2hex = function (binarray) {
- var hex_tab = "0123456789abcdef";
- var str = "";
- for(var i = 0; i < binarray.length * 4; i++)
- {
- str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
- hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
- }
- return str;
- };
-
- /*
- * These functions implement the four basic operations the algorithm uses.
- */
- var 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);
- };
-
- var md5_ff = function (a, b, c, d, x, s, t) {
- return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
- };
-
- var md5_gg = function (a, b, c, d, x, s, t) {
- return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
- };
-
- var md5_hh = function (a, b, c, d, x, s, t) {
- return md5_cmn(b ^ c ^ d, a, b, x, s, t);
- };
-
- var md5_ii = function (a, b, c, d, x, s, t) {
- return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
- };
-
- /*
- * Calculate the MD5 of an array of little-endian words, and a bit length
- */
- var core_md5 = function (x, len) {
- /* append padding */
- x[len >> 5] |= 0x80 << ((len) % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
-
- var a = 1732584193;
- var b = -271733879;
- var c = -1732584194;
- var d = 271733878;
-
- var olda, oldb, oldc, oldd;
- for (var 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];
- };
-
- var obj = {
- /*
- * These are the functions you'll usually want to call.
- * They take string arguments and return either hex or base-64 encoded
- * strings.
- */
- hexdigest: function (s) {
- return binl2hex(core_md5(str2binl(s), s.length * 8));
- },
-
- hash: function (s) {
- return binl2str(core_md5(str2binl(s), s.length * 8));
- }
- };
- return obj;
-}));
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-utils', function () {
- return factory();
- });
- } else {
- // Browser globals
- root.stropheUtils = factory();
- }
-}(this, function () {
-
- var utils = {
-
- utf16to8: function (str) {
- var i, c;
- var out = "";
- var len = str.length;
- for (i = 0; i < len; i++) {
- c = str.charCodeAt(i);
- if ((c >= 0x0000) && (c <= 0x007F)) {
- out += str.charAt(i);
- } else if (c > 0x07FF) {
- out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
- out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
- out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
- } else {
- out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
- out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
- }
- }
- return out;
- },
-
- addCookies: function (cookies) {
- /* Parameters:
- * (Object) cookies - either a map of cookie names
- * to string values or to maps of cookie values.
- *
- * For example:
- * { "myCookie": "1234" }
- *
- * or:
- * { "myCookie": {
- * "value": "1234",
- * "domain": ".example.org",
- * "path": "/",
- * "expires": expirationDate
- * }
- * }
- *
- * These values get passed to Strophe.Connection via
- * options.cookies
- */
- var cookieName, cookieObj, isObj, cookieValue, expires, domain, path;
- for (cookieName in (cookies || {})) {
- expires = '';
- domain = '';
- path = '';
- cookieObj = cookies[cookieName];
- isObj = typeof cookieObj == "object";
- cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));
- if (isObj) {
- expires = cookieObj.expires ? ";expires="+cookieObj.expires : '';
- domain = cookieObj.domain ? ";domain="+cookieObj.domain : '';
- path = cookieObj.path ? ";path="+cookieObj.path : '';
- }
- document.cookie =
- cookieName+'='+cookieValue + expires + domain + path;
- }
- }
- };
- return utils;
-}));
-
-/*
- This program is distributed under the terms of the MIT license.
- Please see the LICENSE file for details.
-
- Copyright 2006-2008, OGG, LLC
-*/
-
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/* global define */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-polyfill', [], function () {
- return factory();
- });
- } else {
- // Browser globals
- return factory();
- }
-}(this, function () {
-
-/** Function: Function.prototype.bind
- * Bind a function to an instance.
- *
- * This Function object extension method creates a bound method similar
- * to those in Python. This means that the 'this' object will point
- * to the instance you want. See
- * <a href='https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind'>MDC's bind() documentation</a> and
- * <a href='http://benjamin.smedbergs.us/blog/2007-01-03/bound-functions-and-function-imports-in-javascript/'>Bound Functions and Function Imports in JavaScript</a>
- * for a complete explanation.
- *
- * This extension already exists in some browsers (namely, Firefox 3), but
- * we provide it to support those that don't.
- *
- * Parameters:
- * (Object) obj - The object that will become 'this' in the bound function.
- * (Object) argN - An option argument that will be prepended to the
- * arguments given for the function call
- *
- * Returns:
- * The bound function.
- */
-if (!Function.prototype.bind) {
- Function.prototype.bind = function (obj /*, arg1, arg2, ... */) {
- var func = this;
- var _slice = Array.prototype.slice;
- var _concat = Array.prototype.concat;
- var _args = _slice.call(arguments, 1);
- return function () {
- return func.apply(obj ? obj : this, _concat.call(_args, _slice.call(arguments, 0)));
- };
- };
-}
-
-/** Function: Array.isArray
- * This is a polyfill for the ES5 Array.isArray method.
- */
-if (!Array.isArray) {
- Array.isArray = function(arg) {
- return Object.prototype.toString.call(arg) === '[object Array]';
- };
-}
-
-/** Function: Array.prototype.indexOf
- * Return the index of an object in an array.
- *
- * This function is not supplied by some JavaScript implementations, so
- * we provide it if it is missing. This code is from:
- * http://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Objects:Array:indexOf
- *
- * Parameters:
- * (Object) elt - The object to look for.
- * (Integer) from - The index from which to start looking. (optional).
- *
- * Returns:
- * The index of elt in the array or -1 if not found.
- */
-if (!Array.prototype.indexOf) {
- Array.prototype.indexOf = function(elt /*, from*/) {
- var len = this.length;
- var from = Number(arguments[1]) || 0;
- from = (from < 0) ? Math.ceil(from) : Math.floor(from);
- if (from < 0) {
- from += len;
- }
-
- for (; from < len; from++) {
- if (from in this && this[from] === elt) {
- return from;
- }
- }
- return -1;
- };
- }
-}));
-
-
-/** Function: Array.prototype.forEach
- *
- * This function is not available in IE < 9
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
- */
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function(callback, thisArg) {
- var T, k;
- if (this === null) {
- throw new TypeError(' this is null or not defined');
- }
-
- // 1. Let O be the result of calling toObject() passing the
- // |this| value as the argument.
- var O = Object(this);
- // 2. Let lenValue be the result of calling the Get() internal
- // method of O with the argument "length".
- // 3. Let len be toUint32(lenValue).
- var len = O.length >>> 0;
- // 4. If isCallable(callback) is false, throw a TypeError exception.
- // See: http://es5.github.com/#x9.11
- if (typeof callback !== "function") {
- throw new TypeError(callback + ' is not a function');
- }
- // 5. If thisArg was supplied, let T be thisArg; else let
- // T be undefined.
- if (arguments.length > 1) {
- T = thisArg;
- }
- // 6. Let k be 0
- k = 0;
- // 7. Repeat, while k < len
- while (k < len) {
- var kValue;
- // a. Let Pk be ToString(k).
- // This is implicit for LHS operands of the in operator
- // b. Let kPresent be the result of calling the HasProperty
- // internal method of O with argument Pk.
- // This step can be combined with c
- // c. If kPresent is true, then
- if (k in O) {
- // i. Let kValue be the result of calling the Get internal
- // method of O with argument Pk.
- kValue = O[k];
- // ii. Call the Call internal method of callback with T as
- // the this value and argument list containing kValue, k, and O.
- callback.call(T, kValue, k, O);
- }
- // d. Increase k by 1.
- k++;
- }
- // 8. return undefined
- };
-}
-
-/*
- This program is distributed under the terms of the MIT license.
- Please see the LICENSE file for details.
-
- Copyright 2006-2008, OGG, LLC
-*/
-
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/*global define, document, window, setTimeout, clearTimeout, ActiveXObject, DOMParser */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-core', [
- 'strophe-sha1',
- 'strophe-base64',
- 'strophe-md5',
- 'strophe-utils',
- "strophe-polyfill"
- ], function () {
- return factory.apply(this, arguments);
- });
- } else {
- // Browser globals
- var o = factory(root.SHA1, root.Base64, root.MD5, root.stropheUtils);
- window.Strophe = o.Strophe;
- window.$build = o.$build;
- window.$iq = o.$iq;
- window.$msg = o.$msg;
- window.$pres = o.$pres;
- window.SHA1 = o.SHA1;
- window.Base64 = o.Base64;
- window.MD5 = o.MD5;
- window.b64_hmac_sha1 = o.SHA1.b64_hmac_sha1;
- window.b64_sha1 = o.SHA1.b64_sha1;
- window.str_hmac_sha1 = o.SHA1.str_hmac_sha1;
- window.str_sha1 = o.SHA1.str_sha1;
- }
-}(this, function (SHA1, Base64, MD5, utils) {
-
-var Strophe;
-
-/** Function: $build
- * Create a Strophe.Builder.
- * This is an alias for 'new Strophe.Builder(name, attrs)'.
- *
- * Parameters:
- * (String) name - The root element name.
- * (Object) attrs - The attributes for the root element in object notation.
- *
- * Returns:
- * A new Strophe.Builder object.
- */
-function $build(name, attrs) { return new Strophe.Builder(name, attrs); }
-
-/** Function: $msg
- * Create a Strophe.Builder with a <message/> element as the root.
- *
- * Parameters:
- * (Object) attrs - The <message/> element attributes in object notation.
- *
- * Returns:
- * A new Strophe.Builder object.
- */
-function $msg(attrs) { return new Strophe.Builder("message", attrs); }
-
-/** Function: $iq
- * Create a Strophe.Builder with an <iq/> element as the root.
- *
- * Parameters:
- * (Object) attrs - The <iq/> element attributes in object notation.
- *
- * Returns:
- * A new Strophe.Builder object.
- */
-function $iq(attrs) { return new Strophe.Builder("iq", attrs); }
-
-/** Function: $pres
- * Create a Strophe.Builder with a <presence/> element as the root.
- *
- * Parameters:
- * (Object) attrs - The <presence/> element attributes in object notation.
- *
- * Returns:
- * A new Strophe.Builder object.
- */
-function $pres(attrs) { return new Strophe.Builder("presence", attrs); }
-
-/** Class: Strophe
- * An object container for all Strophe library functions.
- *
- * This class is just a container for all the objects and constants
- * used in the library. It is not meant to be instantiated, but to
- * provide a namespace for library objects, constants, and functions.
- */
-Strophe = {
- /** Constant: VERSION
- * The version of the Strophe library. Unreleased builds will have
- * a version of head-HASH where HASH is a partial revision.
- */
- VERSION: "1.2.9",
-
- /** Constants: XMPP Namespace Constants
- * Common namespace constants from the XMPP RFCs and XEPs.
- *
- * NS.HTTPBIND - HTTP BIND namespace from XEP 124.
- * NS.BOSH - BOSH namespace from XEP 206.
- * NS.CLIENT - Main XMPP client namespace.
- * NS.AUTH - Legacy authentication namespace.
- * NS.ROSTER - Roster operations namespace.
- * NS.PROFILE - Profile namespace.
- * NS.DISCO_INFO - Service discovery info namespace from XEP 30.
- * NS.DISCO_ITEMS - Service discovery items namespace from XEP 30.
- * NS.MUC - Multi-User Chat namespace from XEP 45.
- * NS.SASL - XMPP SASL namespace from RFC 3920.
- * NS.STREAM - XMPP Streams namespace from RFC 3920.
- * NS.BIND - XMPP Binding namespace from RFC 3920.
- * NS.SESSION - XMPP Session namespace from RFC 3920.
- * NS.XHTML_IM - XHTML-IM namespace from XEP 71.
- * NS.XHTML - XHTML body namespace from XEP 71.
- */
- NS: {
- HTTPBIND: "http://jabber.org/protocol/httpbind",
- BOSH: "urn:xmpp:xbosh",
- CLIENT: "jabber:client",
- AUTH: "jabber:iq:auth",
- ROSTER: "jabber:iq:roster",
- PROFILE: "jabber:iq:profile",
- DISCO_INFO: "http://jabber.org/protocol/disco#info",
- DISCO_ITEMS: "http://jabber.org/protocol/disco#items",
- MUC: "http://jabber.org/protocol/muc",
- SASL: "urn:ietf:params:xml:ns:xmpp-sasl",
- STREAM: "http://etherx.jabber.org/streams",
- FRAMING: "urn:ietf:params:xml:ns:xmpp-framing",
- BIND: "urn:ietf:params:xml:ns:xmpp-bind",
- SESSION: "urn:ietf:params:xml:ns:xmpp-session",
- VERSION: "jabber:iq:version",
- STANZAS: "urn:ietf:params:xml:ns:xmpp-stanzas",
- XHTML_IM: "http://jabber.org/protocol/xhtml-im",
- XHTML: "http://www.w3.org/1999/xhtml"
- },
-
- /** Constants: XHTML_IM Namespace
- * contains allowed tags, tag attributes, and css properties.
- * Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.
- * See http://xmpp.org/extensions/xep-0071.html#profile-summary for the list of recommended
- * allowed tags and their attributes.
- */
- 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'],
- /** Function: XHTML.validTag
- *
- * Utility method to determine whether a tag is allowed
- * in the XHTML_IM namespace.
- *
- * XHTML tag names are case sensitive and must be lower case.
- */
- validTag: function(tag) {
- for (var i = 0; i < Strophe.XHTML.tags.length; i++) {
- if (tag == Strophe.XHTML.tags[i]) {
- return true;
- }
- }
- return false;
- },
- /** Function: XHTML.validAttribute
- *
- * Utility method to determine whether an attribute is allowed
- * as recommended per XEP-0071
- *
- * XHTML attribute names are case sensitive and must be lower case.
- */
- validAttribute: function(tag, attribute) {
- if (typeof Strophe.XHTML.attributes[tag] !== 'undefined' && 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 true;
- }
- }
- }
- return false;
- },
- validCSS: function(style) {
- for (var i = 0; i < Strophe.XHTML.css.length; i++) {
- if (style == Strophe.XHTML.css[i]) {
- return true;
- }
- }
- return false;
- }
- },
-
- /** Constants: Connection Status Constants
- * Connection status constants for use by the connection handler
- * callback.
- *
- * Status.ERROR - An error has occurred
- * Status.CONNECTING - The connection is currently being made
- * Status.CONNFAIL - The connection attempt failed
- * Status.AUTHENTICATING - The connection is authenticating
- * Status.AUTHFAIL - The authentication attempt failed
- * Status.CONNECTED - The connection has succeeded
- * Status.DISCONNECTED - The connection has been terminated
- * Status.DISCONNECTING - The connection is currently being terminated
- * Status.ATTACHED - The connection has been attached
- * Status.CONNTIMEOUT - The connection has timed out
- */
- Status: {
- ERROR: 0,
- CONNECTING: 1,
- CONNFAIL: 2,
- AUTHENTICATING: 3,
- AUTHFAIL: 4,
- CONNECTED: 5,
- DISCONNECTED: 6,
- DISCONNECTING: 7,
- ATTACHED: 8,
- REDIRECT: 9,
- CONNTIMEOUT: 10
- },
-
- /** Constants: Log Level Constants
- * Logging level indicators.
- *
- * LogLevel.DEBUG - Debug output
- * LogLevel.INFO - Informational output
- * LogLevel.WARN - Warnings
- * LogLevel.ERROR - Errors
- * LogLevel.FATAL - Fatal errors
- */
- LogLevel: {
- DEBUG: 0,
- INFO: 1,
- WARN: 2,
- ERROR: 3,
- FATAL: 4
- },
-
- /** PrivateConstants: DOM Element Type Constants
- * DOM element types.
- *
- * ElementType.NORMAL - Normal element.
- * ElementType.TEXT - Text data element.
- * ElementType.FRAGMENT - XHTML fragment element.
- */
- ElementType: {
- NORMAL: 1,
- TEXT: 3,
- CDATA: 4,
- FRAGMENT: 11
- },
-
- /** PrivateConstants: Timeout Values
- * Timeout values for error states. These values are in seconds.
- * These should not be changed unless you know exactly what you are
- * doing.
- *
- * TIMEOUT - Timeout multiplier. A waiting request will be considered
- * failed after Math.floor(TIMEOUT * wait) seconds have elapsed.
- * This defaults to 1.1, and with default wait, 66 seconds.
- * SECONDARY_TIMEOUT - Secondary timeout multiplier. In cases where
- * Strophe can detect early failure, it will consider the request
- * failed if it doesn't return after
- * Math.floor(SECONDARY_TIMEOUT * wait) seconds have elapsed.
- * This defaults to 0.1, and with default wait, 6 seconds.
- */
- TIMEOUT: 1.1,
- SECONDARY_TIMEOUT: 0.1,
-
- /** Function: addNamespace
- * This function is used to extend the current namespaces in
- * Strophe.NS. It takes a key and a value with the key being the
- * name of the new namespace, with its actual value.
- * For example:
- * Strophe.addNamespace('PUBSUB', "http://jabber.org/protocol/pubsub");
- *
- * Parameters:
- * (String) name - The name under which the namespace will be
- * referenced under Strophe.NS
- * (String) value - The actual namespace.
- */
- addNamespace: function (name, value) {
- Strophe.NS[name] = value;
- },
-
- /** Function: forEachChild
- * Map a function over some or all child elements of a given element.
- *
- * This is a small convenience function for mapping a function over
- * some or all of the children of an element. If elemName is null, all
- * children will be passed to the function, otherwise only children
- * whose tag names match elemName will be passed.
- *
- * Parameters:
- * (XMLElement) elem - The element to operate on.
- * (String) elemName - The child element tag name filter.
- * (Function) func - The function to apply to each child. This
- * function should take a single argument, a DOM element.
- */
- forEachChild: function (elem, elemName, func) {
- var i, childNode;
- for (i = 0; i < elem.childNodes.length; i++) {
- childNode = elem.childNodes[i];
- if (childNode.nodeType == Strophe.ElementType.NORMAL &&
- (!elemName || this.isTagEqual(childNode, elemName))) {
- func(childNode);
- }
- }
- },
-
- /** Function: isTagEqual
- * Compare an element's tag name with a string.
- *
- * This function is case sensitive.
- *
- * Parameters:
- * (XMLElement) el - A DOM element.
- * (String) name - The element name.
- *
- * Returns:
- * true if the element's tag name matches _el_, and false
- * otherwise.
- */
- isTagEqual: function (el, name) {
- return el.tagName == name;
- },
-
- /** PrivateVariable: _xmlGenerator
- * _Private_ variable that caches a DOM document to
- * generate elements.
- */
- _xmlGenerator: null,
-
- /** PrivateFunction: _makeGenerator
- * _Private_ function that creates a dummy XML DOM document to serve as
- * an element and text node generator.
- */
- _makeGenerator: function () {
- var doc;
- // IE9 does implement createDocument(); however, using it will cause the browser to leak memory on page unload.
- // Here, we test for presence of createDocument() plus IE's proprietary documentMode attribute, which would be
- // less than 10 in the case of IE9 and below.
- if (document.implementation.createDocument === undefined ||
- document.implementation.createDocument && document.documentMode && document.documentMode < 10) {
- doc = this._getIEXmlDom();
- doc.appendChild(doc.createElement('strophe'));
- } else {
- doc = document.implementation
- .createDocument('jabber:client', 'strophe', null);
- }
- return doc;
- },
-
- /** Function: xmlGenerator
- * Get the DOM document to generate elements.
- *
- * Returns:
- * The currently used DOM document.
- */
- xmlGenerator: function () {
- if (!Strophe._xmlGenerator) {
- Strophe._xmlGenerator = Strophe._makeGenerator();
- }
- return Strophe._xmlGenerator;
- },
-
- /** PrivateFunction: _getIEXmlDom
- * Gets IE xml doc object
- *
- * Returns:
- * A Microsoft XML DOM Object
- * See Also:
- * http://msdn.microsoft.com/en-us/library/ms757837%28VS.85%29.aspx
- */
- _getIEXmlDom : function() {
- var doc = null;
- var docStrings = [
- "Msxml2.DOMDocument.6.0",
- "Msxml2.DOMDocument.5.0",
- "Msxml2.DOMDocument.4.0",
- "MSXML2.DOMDocument.3.0",
- "MSXML2.DOMDocument",
- "MSXML.DOMDocument",
- "Microsoft.XMLDOM"
- ];
-
- for (var d = 0; d < docStrings.length; d++) {
- if (doc === null) {
- try {
- doc = new ActiveXObject(docStrings[d]);
- } catch (e) {
- doc = null;
- }
- } else {
- break;
- }
- }
- return doc;
- },
-
- /** Function: xmlElement
- * Create an XML DOM element.
- *
- * This function creates an XML DOM element correctly across all
- * implementations. Note that these are not HTML DOM elements, which
- * aren't appropriate for XMPP stanzas.
- *
- * Parameters:
- * (String) name - The name for the element.
- * (Array|Object) attrs - An optional array or object containing
- * key/value pairs to use as element attributes. The object should
- * be in the format {'key': 'value'} or {key: 'value'}. The array
- * should have the format [['key1', 'value1'], ['key2', 'value2']].
- * (String) text - The text child data for the element.
- *
- * Returns:
- * A new XML DOM element.
- */
- xmlElement: function (name) {
- if (!name) { return null; }
-
- var node = Strophe.xmlGenerator().createElement(name);
- // FIXME: this should throw errors if args are the wrong type or
- // there are more than two optional args
- var a, i, k;
- for (a = 1; a < arguments.length; a++) {
- var arg = arguments[a];
- if (!arg) { continue; }
- if (typeof(arg) == "string" ||
- typeof(arg) == "number") {
- node.appendChild(Strophe.xmlTextNode(arg));
- } else if (typeof(arg) == "object" &&
- typeof(arg.sort) == "function") {
- for (i = 0; i < arg.length; i++) {
- var attr = arg[i];
- if (typeof(attr) == "object" &&
- typeof(attr.sort) == "function" &&
- attr[1] !== undefined &&
- attr[1] !== null) {
- node.setAttribute(attr[0], attr[1]);
- }
- }
- } else if (typeof(arg) == "object") {
- for (k in arg) {
- if (arg.hasOwnProperty(k)) {
- if (arg[k] !== undefined &&
- arg[k] !== null) {
- node.setAttribute(k, arg[k]);
- }
- }
- }
- }
- }
-
- return node;
- },
-
- /* Function: xmlescape
- * Excapes invalid xml characters.
- *
- * Parameters:
- * (String) text - text to escape.
- *
- * Returns:
- * Escaped text.
- */
- xmlescape: function(text) {
- 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;");
- return text;
- },
-
- /* Function: xmlunescape
- * Unexcapes invalid xml characters.
- *
- * Parameters:
- * (String) text - text to unescape.
- *
- * Returns:
- * Unescaped text.
- */
- xmlunescape: function(text) {
- text = text.replace(/\&amp;/g, "&");
- text = text.replace(/&lt;/g, "<");
- text = text.replace(/&gt;/g, ">");
- text = text.replace(/&apos;/g, "'");
- text = text.replace(/&quot;/g, "\"");
- return text;
- },
-
- /** Function: xmlTextNode
- * Creates an XML DOM text node.
- *
- * Provides a cross implementation version of document.createTextNode.
- *
- * Parameters:
- * (String) text - The content of the text node.
- *
- * Returns:
- * A new XML DOM text node.
- */
- xmlTextNode: function (text) {
- return Strophe.xmlGenerator().createTextNode(text);
- },
-
- /** Function: xmlHtmlNode
- * Creates an XML DOM html node.
- *
- * Parameters:
- * (String) html - The content of the html node.
- *
- * Returns:
- * A new XML DOM text node.
- */
- xmlHtmlNode: function (html) {
- var node;
- //ensure text is escaped
- 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;
- },
-
- /** Function: getText
- * Get the concatenation of all text children of an element.
- *
- * Parameters:
- * (XMLElement) elem - A DOM element.
- *
- * Returns:
- * A String with the concatenated text of all text element children.
- */
- getText: function (elem) {
- if (!elem) { return null; }
-
- var str = "";
- if (elem.childNodes.length === 0 && elem.nodeType ==
- Strophe.ElementType.TEXT) {
- str += elem.nodeValue;
- }
-
- for (var i = 0; i < elem.childNodes.length; i++) {
- if (elem.childNodes[i].nodeType == Strophe.ElementType.TEXT) {
- str += elem.childNodes[i].nodeValue;
- }
- }
-
- return Strophe.xmlescape(str);
- },
-
- /** Function: copyElement
- * Copy an XML DOM element.
- *
- * This function copies a DOM element and all its descendants and returns
- * the new copy.
- *
- * Parameters:
- * (XMLElement) elem - A DOM element.
- *
- * Returns:
- * A new, copied DOM element tree.
- */
- copyElement: function (elem) {
- var i, el;
- if (elem.nodeType == Strophe.ElementType.NORMAL) {
- el = Strophe.xmlElement(elem.tagName);
-
- for (i = 0; i < elem.attributes.length; i++) {
- el.setAttribute(elem.attributes[i].nodeName,
- elem.attributes[i].value);
- }
-
- for (i = 0; i < elem.childNodes.length; i++) {
- el.appendChild(Strophe.copyElement(elem.childNodes[i]));
- }
- } else if (elem.nodeType == Strophe.ElementType.TEXT) {
- el = Strophe.xmlGenerator().createTextNode(elem.nodeValue);
- }
- return el;
- },
-
-
- /** Function: createHtml
- * Copy an HTML DOM element into an XML DOM.
- *
- * This function copies a DOM element and all its descendants and returns
- * the new copy.
- *
- * Parameters:
- * (HTMLElement) elem - A DOM element.
- *
- * Returns:
- * A new, copied DOM element tree.
- */
- createHtml: function (elem) {
- var i, el, j, tag, attribute, value, css, cssAttrs, attr, cssName, cssValue;
- if (elem.nodeType == Strophe.ElementType.NORMAL) {
- tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case.
- if(Strophe.XHTML.validTag(tag)) {
- try {
- el = Strophe.xmlElement(tag);
- for(i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {
- attribute = Strophe.XHTML.attributes[tag][i];
- value = elem.getAttribute(attribute);
- if(typeof value == 'undefined' || value === null || value === '' || value === false || value === 0) {
- continue;
- }
- if(attribute == 'style' && typeof value == 'object') {
- if(typeof value.cssText != 'undefined') {
- value = value.cssText; // we're dealing with IE, need to get CSS out
- }
- }
- // filter out invalid css styles
- if(attribute == 'style') {
- css = [];
- cssAttrs = value.split(';');
- for(j = 0; j < cssAttrs.length; j++) {
- attr = cssAttrs[j].split(':');
- cssName = attr[0].replace(/^\s*/, "").replace(/\s*$/, "").toLowerCase();
- if(Strophe.XHTML.validCSS(cssName)) {
- cssValue = attr[1].replace(/^\s*/, "").replace(/\s*$/, "");
- css.push(cssName + ': ' + cssValue);
- }
- }
- if(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) { // invalid elements
- el = Strophe.xmlTextNode('');
- }
- } else {
- el = Strophe.xmlGenerator().createDocumentFragment();
- for (i = 0; i < elem.childNodes.length; i++) {
- el.appendChild(Strophe.createHtml(elem.childNodes[i]));
- }
- }
- } else if (elem.nodeType == Strophe.ElementType.FRAGMENT) {
- el = Strophe.xmlGenerator().createDocumentFragment();
- for (i = 0; i < elem.childNodes.length; i++) {
- el.appendChild(Strophe.createHtml(elem.childNodes[i]));
- }
- } else if (elem.nodeType == Strophe.ElementType.TEXT) {
- el = Strophe.xmlTextNode(elem.nodeValue);
- }
- return el;
- },
-
- /** Function: escapeNode
- * Escape the node part (also called local part) of a JID.
- *
- * Parameters:
- * (String) node - A node (or local part).
- *
- * Returns:
- * An escaped node (or local part).
- */
- escapeNode: function (node) {
- if (typeof node !== "string") { return 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");
- },
-
- /** Function: unescapeNode
- * Unescape a node part (also called local part) of a JID.
- *
- * Parameters:
- * (String) node - A node (or local part).
- *
- * Returns:
- * An unescaped node (or local part).
- */
- unescapeNode: function (node) {
- if (typeof node !== "string") { return 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, "\\");
- },
-
- /** Function: getNodeFromJid
- * Get the node portion of a JID String.
- *
- * Parameters:
- * (String) jid - A JID.
- *
- * Returns:
- * A String containing the node.
- */
- getNodeFromJid: function (jid) {
- if (jid.indexOf("@") < 0) { return null; }
- return jid.split("@")[0];
- },
-
- /** Function: getDomainFromJid
- * Get the domain portion of a JID String.
- *
- * Parameters:
- * (String) jid - A JID.
- *
- * Returns:
- * A String containing the domain.
- */
- getDomainFromJid: function (jid) {
- var bare = Strophe.getBareJidFromJid(jid);
- if (bare.indexOf("@") < 0) {
- return bare;
- } else {
- var parts = bare.split("@");
- parts.splice(0, 1);
- return parts.join('@');
- }
- },
-
- /** Function: getResourceFromJid
- * Get the resource portion of a JID String.
- *
- * Parameters:
- * (String) jid - A JID.
- *
- * Returns:
- * A String containing the resource.
- */
- getResourceFromJid: function (jid) {
- var s = jid.split("/");
- if (s.length < 2) { return null; }
- s.splice(0, 1);
- return s.join('/');
- },
-
- /** Function: getBareJidFromJid
- * Get the bare JID from a JID String.
- *
- * Parameters:
- * (String) jid - A JID.
- *
- * Returns:
- * A String containing the bare JID.
- */
- getBareJidFromJid: function (jid) {
- return jid ? jid.split("/")[0] : null;
- },
-
- /** PrivateFunction: _handleError
- * _Private_ function that properly logs an error to the console
- */
- _handleError: function (e) {
- if (typeof e.stack !== "undefined") {
- Strophe.fatal(e.stack);
- }
- if (e.sourceURL) {
- Strophe.fatal("error: " + this.handler + " " + e.sourceURL + ":" +
- e.line + " - " + e.name + ": " + e.message);
- } else if (e.fileName) {
- Strophe.fatal("error: " + this.handler + " " +
- e.fileName + ":" + e.lineNumber + " - " +
- e.name + ": " + e.message);
- } else {
- Strophe.fatal("error: " + e.message);
- }
- },
-
- /** Function: log
- * User overrideable logging function.
- *
- * This function is called whenever the Strophe library calls any
- * of the logging functions. The default implementation of this
- * function does nothing. If client code wishes to handle the logging
- * messages, it should override this with
- * > Strophe.log = function (level, msg) {
- * > (user code here)
- * > };
- *
- * Please note that data sent and received over the wire is logged
- * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput().
- *
- * The different levels and their meanings are
- *
- * DEBUG - Messages useful for debugging purposes.
- * INFO - Informational messages. This is mostly information like
- * 'disconnect was called' or 'SASL auth succeeded'.
- * WARN - Warnings about potential problems. This is mostly used
- * to report transient connection errors like request timeouts.
- * ERROR - Some error occurred.
- * FATAL - A non-recoverable fatal error occurred.
- *
- * Parameters:
- * (Integer) level - The log level of the log message. This will
- * be one of the values in Strophe.LogLevel.
- * (String) msg - The log message.
- */
- /* jshint ignore:start */
- log: function (level, msg) {
- return;
- },
- /* jshint ignore:end */
-
- /** Function: debug
- * Log a message at the Strophe.LogLevel.DEBUG level.
- *
- * Parameters:
- * (String) msg - The log message.
- */
- debug: function(msg) {
- this.log(this.LogLevel.DEBUG, msg);
- },
-
- /** Function: info
- * Log a message at the Strophe.LogLevel.INFO level.
- *
- * Parameters:
- * (String) msg - The log message.
- */
- info: function (msg) {
- this.log(this.LogLevel.INFO, msg);
- },
-
- /** Function: warn
- * Log a message at the Strophe.LogLevel.WARN level.
- *
- * Parameters:
- * (String) msg - The log message.
- */
- warn: function (msg) {
- this.log(this.LogLevel.WARN, msg);
- },
-
- /** Function: error
- * Log a message at the Strophe.LogLevel.ERROR level.
- *
- * Parameters:
- * (String) msg - The log message.
- */
- error: function (msg) {
- this.log(this.LogLevel.ERROR, msg);
- },
-
- /** Function: fatal
- * Log a message at the Strophe.LogLevel.FATAL level.
- *
- * Parameters:
- * (String) msg - The log message.
- */
- fatal: function (msg) {
- this.log(this.LogLevel.FATAL, msg);
- },
-
- /** Function: serialize
- * Render a DOM element and all descendants to a String.
- *
- * Parameters:
- * (XMLElement) elem - A DOM element.
- *
- * Returns:
- * The serialized element tree as a String.
- */
- serialize: function (elem) {
- var result;
-
- if (!elem) { return null; }
-
- if (typeof(elem.tree) === "function") {
- elem = elem.tree();
- }
-
- var nodeName = elem.nodeName;
- var i, child;
-
- if (elem.getAttribute("_realname")) {
- nodeName = elem.getAttribute("_realname");
- }
-
- result = "<" + nodeName;
- for (i = 0; i < elem.attributes.length; i++) {
- if(elem.attributes[i].nodeName != "_realname") {
- result += " " + elem.attributes[i].nodeName +
- "='" + Strophe.xmlescape(elem.attributes[i].value) + "'";
- }
- }
-
- if (elem.childNodes.length > 0) {
- result += ">";
- for (i = 0; i < elem.childNodes.length; i++) {
- child = elem.childNodes[i];
- switch( child.nodeType ){
- case Strophe.ElementType.NORMAL:
- // normal element, so recurse
- result += Strophe.serialize(child);
- break;
- case Strophe.ElementType.TEXT:
- // text element to escape values
- result += Strophe.xmlescape(child.nodeValue);
- break;
- case Strophe.ElementType.CDATA:
- // cdata section so don't escape values
- result += "<![CDATA["+child.nodeValue+"]]>";
- }
- }
- result += "</" + nodeName + ">";
- } else {
- result += "/>";
- }
-
- return result;
- },
-
- /** PrivateVariable: _requestId
- * _Private_ variable that keeps track of the request ids for
- * connections.
- */
- _requestId: 0,
-
- /** PrivateVariable: Strophe.connectionPlugins
- * _Private_ variable Used to store plugin names that need
- * initialization on Strophe.Connection construction.
- */
- _connectionPlugins: {},
-
- /** Function: addConnectionPlugin
- * Extends the Strophe.Connection object with the given plugin.
- *
- * Parameters:
- * (String) name - The name of the extension.
- * (Object) ptype - The plugin's prototype.
- */
- addConnectionPlugin: function (name, ptype) {
- Strophe._connectionPlugins[name] = ptype;
- }
-};
-
-/** Class: Strophe.Builder
- * XML DOM builder.
- *
- * This object provides an interface similar to JQuery but for building
- * DOM elements easily and rapidly. All the functions except for toString()
- * and tree() return the object, so calls can be chained. Here's an
- * example using the $iq() builder helper.
- * > $iq({to: 'you', from: 'me', type: 'get', id: '1'})
- * > .c('query', {xmlns: 'strophe:example'})
- * > .c('example')
- * > .toString()
- *
- * The above generates this XML fragment
- * > <iq to='you' from='me' type='get' id='1'>
- * > <query xmlns='strophe:example'>
- * > <example/>
- * > </query>
- * > </iq>
- * The corresponding DOM manipulations to get a similar fragment would be
- * a lot more tedious and probably involve several helper variables.
- *
- * Since adding children makes new operations operate on the child, up()
- * is provided to traverse up the tree. To add two children, do
- * > builder.c('child1', ...).up().c('child2', ...)
- * The next operation on the Builder will be relative to the second child.
- */
-
-/** Constructor: Strophe.Builder
- * Create a Strophe.Builder object.
- *
- * The attributes should be passed in object notation. For example
- * > var b = new Builder('message', {to: 'you', from: 'me'});
- * or
- * > var b = new Builder('messsage', {'xml:lang': 'en'});
- *
- * Parameters:
- * (String) name - The name of the root element.
- * (Object) attrs - The attributes for the root element in object notation.
- *
- * Returns:
- * A new Strophe.Builder.
- */
-Strophe.Builder = function (name, attrs) {
- // Set correct namespace for jabber:client elements
- if (name == "presence" || name == "message" || name == "iq") {
- if (attrs && !attrs.xmlns) {
- attrs.xmlns = Strophe.NS.CLIENT;
- } else if (!attrs) {
- attrs = {xmlns: Strophe.NS.CLIENT};
- }
- }
-
- // Holds the tree being built.
- this.nodeTree = Strophe.xmlElement(name, attrs);
-
- // Points to the current operation node.
- this.node = this.nodeTree;
-};
-
-Strophe.Builder.prototype = {
- /** Function: tree
- * Return the DOM tree.
- *
- * This function returns the current DOM tree as an element object. This
- * is suitable for passing to functions like Strophe.Connection.send().
- *
- * Returns:
- * The DOM tree as a element object.
- */
- tree: function () {
- return this.nodeTree;
- },
-
- /** Function: toString
- * Serialize the DOM tree to a String.
- *
- * This function returns a string serialization of the current DOM
- * tree. It is often used internally to pass data to a
- * Strophe.Request object.
- *
- * Returns:
- * The serialized DOM tree in a String.
- */
- toString: function () {
- return Strophe.serialize(this.nodeTree);
- },
-
- /** Function: up
- * Make the current parent element the new current element.
- *
- * This function is often used after c() to traverse back up the tree.
- * For example, to add two children to the same element
- * > builder.c('child1', {}).up().c('child2', {});
- *
- * Returns:
- * The Stophe.Builder object.
- */
- up: function () {
- this.node = this.node.parentNode;
- return this;
- },
-
- /** Function: root
- * Make the root element the new current element.
- *
- * When at a deeply nested element in the tree, this function can be used
- * to jump back to the root of the tree, instead of having to repeatedly
- * call up().
- *
- * Returns:
- * The Stophe.Builder object.
- */
- root: function () {
- this.node = this.nodeTree;
- return this;
- },
-
- /** Function: attrs
- * Add or modify attributes of the current element.
- *
- * The attributes should be passed in object notation. This function
- * does not move the current element pointer.
- *
- * Parameters:
- * (Object) moreattrs - The attributes to add/modify in object notation.
- *
- * Returns:
- * The Strophe.Builder object.
- */
- attrs: function (moreattrs) {
- for (var k in moreattrs) {
- if (moreattrs.hasOwnProperty(k)) {
- if (moreattrs[k] === undefined) {
- this.node.removeAttribute(k);
- } else {
- this.node.setAttribute(k, moreattrs[k]);
- }
- }
- }
- return this;
- },
-
- /** Function: c
- * Add a child to the current element and make it the new current
- * element.
- *
- * This function moves the current element pointer to the child,
- * unless text is provided. If you need to add another child, it
- * is necessary to use up() to go back to the parent in the tree.
- *
- * Parameters:
- * (String) name - The name of the child.
- * (Object) attrs - The attributes of the child in object notation.
- * (String) text - The text to add to the child.
- *
- * Returns:
- * The Strophe.Builder object.
- */
- c: function (name, attrs, text) {
- var child = Strophe.xmlElement(name, attrs, text);
- this.node.appendChild(child);
- if (typeof text !== "string" && typeof text !=="number") {
- this.node = child;
- }
- return this;
- },
-
- /** Function: cnode
- * Add a child to the current element and make it the new current
- * element.
- *
- * This function is the same as c() except that instead of using a
- * name and an attributes object to create the child it uses an
- * existing DOM element object.
- *
- * Parameters:
- * (XMLElement) elem - A DOM element.
- *
- * Returns:
- * The Strophe.Builder object.
- */
- cnode: function (elem) {
- var impNode;
- var xmlGen = Strophe.xmlGenerator();
- try {
- impNode = (xmlGen.importNode !== undefined);
- } catch (e) {
- impNode = false;
- }
- var newElem = impNode ?
- xmlGen.importNode(elem, true) :
- Strophe.copyElement(elem);
- this.node.appendChild(newElem);
- this.node = newElem;
- return this;
- },
-
- /** Function: t
- * Add a child text element.
- *
- * This *does not* make the child the new current element since there
- * are no children of text elements.
- *
- * Parameters:
- * (String) text - The text data to append to the current element.
- *
- * Returns:
- * The Strophe.Builder object.
- */
- t: function (text) {
- var child = Strophe.xmlTextNode(text);
- this.node.appendChild(child);
- return this;
- },
-
- /** Function: h
- * Replace current element contents with the HTML passed in.
- *
- * This *does not* make the child the new current element
- *
- * Parameters:
- * (String) html - The html to insert as contents of current element.
- *
- * Returns:
- * The Strophe.Builder object.
- */
- h: function (html) {
- var fragment = document.createElement('body');
-
- // force the browser to try and fix any invalid HTML tags
- fragment.innerHTML = html;
-
- // copy cleaned html into an xml dom
- var xhtml = Strophe.createHtml(fragment);
-
- while(xhtml.childNodes.length > 0) {
- this.node.appendChild(xhtml.childNodes[0]);
- }
- return this;
- }
-};
-
-/** PrivateClass: Strophe.Handler
- * _Private_ helper class for managing stanza handlers.
- *
- * A Strophe.Handler encapsulates a user provided callback function to be
- * executed when matching stanzas are received by the connection.
- * Handlers can be either one-off or persistant depending on their
- * return value. Returning true will cause a Handler to remain active, and
- * returning false will remove the Handler.
- *
- * Users will not use Strophe.Handler objects directly, but instead they
- * will use Strophe.Connection.addHandler() and
- * Strophe.Connection.deleteHandler().
- */
-
-/** PrivateConstructor: Strophe.Handler
- * Create and initialize a new Strophe.Handler.
- *
- * Parameters:
- * (Function) handler - A function to be executed when the handler is run.
- * (String) ns - The namespace to match.
- * (String) name - The element name to match.
- * (String) type - The element type to match.
- * (String) id - The element id attribute to match.
- * (String) from - The element from attribute to match.
- * (Object) options - Handler options
- *
- * Returns:
- * A new Strophe.Handler object.
- */
-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 || {'matchBareFromJid': false, 'ignoreNamespaceFragment': false};
- // BBB: Maintain backward compatibility with old `matchBare` option
- if (this.options.matchBare) {
- Strophe.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.');
- this.options.matchBareFromJid = this.options.matchBare;
- delete this.options.matchBare;
- }
-
- if (this.options.matchBareFromJid) {
- this.from = from ? Strophe.getBareJidFromJid(from) : null;
- } else {
- this.from = from;
- }
- // whether the handler is a user handler or a system handler
- this.user = true;
-};
-
-Strophe.Handler.prototype = {
- /** PrivateFunction: getNamespace
- * Returns the XML namespace attribute on an element.
- * If `ignoreNamespaceFragment` was passed in for this handler, then the
- * URL fragment will be stripped.
- *
- * Parameters:
- * (XMLElement) elem - The XML element with the namespace.
- *
- * Returns:
- * The namespace, with optionally the fragment stripped.
- */
- getNamespace: function (elem) {
- var elNamespace = elem.getAttribute("xmlns");
- if (elNamespace && this.options.ignoreNamespaceFragment) {
- elNamespace = elNamespace.split('#')[0];
- }
- return elNamespace;
- },
-
- /** PrivateFunction: namespaceMatch
- * Tests if a stanza matches the namespace set for this Strophe.Handler.
- *
- * Parameters:
- * (XMLElement) elem - The XML element to test.
- *
- * Returns:
- * true if the stanza matches and false otherwise.
- */
- namespaceMatch: function (elem) {
- var nsMatch = false;
- if (!this.ns) {
- return true;
- } else {
- var that = this;
- Strophe.forEachChild(elem, null, function (elem) {
- if (that.getNamespace(elem) === that.ns) {
- nsMatch = true;
- }
- });
- nsMatch = nsMatch || this.getNamespace(elem) === this.ns;
- }
- return nsMatch;
- },
-
- /** PrivateFunction: isMatch
- * Tests if a stanza matches the Strophe.Handler.
- *
- * Parameters:
- * (XMLElement) elem - The XML element to test.
- *
- * Returns:
- * true if the stanza matches and false otherwise.
- */
- isMatch: function (elem) {
- var from = elem.getAttribute('from');
- if (this.options.matchBareFromJid) {
- from = Strophe.getBareJidFromJid(from);
- }
- var elem_type = elem.getAttribute("type");
- if (this.namespaceMatch(elem) &&
- (!this.name || Strophe.isTagEqual(elem, this.name)) &&
- (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) != -1 : elem_type == this.type)) &&
- (!this.id || elem.getAttribute("id") == this.id) &&
- (!this.from || from == this.from)) {
- return true;
- }
- return false;
- },
-
- /** PrivateFunction: run
- * Run the callback on a matching stanza.
- *
- * Parameters:
- * (XMLElement) elem - The DOM element that triggered the
- * Strophe.Handler.
- *
- * Returns:
- * A boolean indicating if the handler should remain active.
- */
- run: function (elem) {
- var result = null;
- try {
- result = this.handler(elem);
- } catch (e) {
- Strophe._handleError(e);
- throw e;
- }
- return result;
- },
-
- /** PrivateFunction: toString
- * Get a String representation of the Strophe.Handler object.
- *
- * Returns:
- * A String.
- */
- toString: function () {
- return "{Handler: " + this.handler + "(" + this.name + "," +
- this.id + "," + this.ns + ")}";
- }
-};
-
-/** PrivateClass: Strophe.TimedHandler
- * _Private_ helper class for managing timed handlers.
- *
- * A Strophe.TimedHandler encapsulates a user provided callback that
- * should be called after a certain period of time or at regular
- * intervals. The return value of the callback determines whether the
- * Strophe.TimedHandler will continue to fire.
- *
- * Users will not use Strophe.TimedHandler objects directly, but instead
- * they will use Strophe.Connection.addTimedHandler() and
- * Strophe.Connection.deleteTimedHandler().
- */
-
-/** PrivateConstructor: Strophe.TimedHandler
- * Create and initialize a new Strophe.TimedHandler object.
- *
- * Parameters:
- * (Integer) period - The number of milliseconds to wait before the
- * handler is called.
- * (Function) handler - The callback to run when the handler fires. This
- * function should take no arguments.
- *
- * Returns:
- * A new Strophe.TimedHandler object.
- */
-Strophe.TimedHandler = function (period, handler) {
- this.period = period;
- this.handler = handler;
- this.lastCalled = new Date().getTime();
- this.user = true;
-};
-
-Strophe.TimedHandler.prototype = {
- /** PrivateFunction: run
- * Run the callback for the Strophe.TimedHandler.
- *
- * Returns:
- * true if the Strophe.TimedHandler should be called again, and false
- * otherwise.
- */
- run: function () {
- this.lastCalled = new Date().getTime();
- return this.handler();
- },
-
- /** PrivateFunction: reset
- * Reset the last called time for the Strophe.TimedHandler.
- */
- reset: function () {
- this.lastCalled = new Date().getTime();
- },
-
- /** PrivateFunction: toString
- * Get a string representation of the Strophe.TimedHandler object.
- *
- * Returns:
- * The string representation.
- */
- toString: function () {
- return "{TimedHandler: " + this.handler + "(" + this.period +")}";
- }
-};
-
-/** Class: Strophe.Connection
- * XMPP Connection manager.
- *
- * This class is the main part of Strophe. It manages a BOSH or websocket
- * connection to an XMPP server and dispatches events to the user callbacks
- * as data arrives. It supports SASL PLAIN, SASL DIGEST-MD5, SASL SCRAM-SHA1
- * and legacy authentication.
- *
- * After creating a Strophe.Connection object, the user will typically
- * call connect() with a user supplied callback to handle connection level
- * events like authentication failure, disconnection, or connection
- * complete.
- *
- * The user will also have several event handlers defined by using
- * addHandler() and addTimedHandler(). These will allow the user code to
- * respond to interesting stanzas or do something periodically with the
- * connection. These handlers will be active once authentication is
- * finished.
- *
- * To send data to the connection, use send().
- */
-
-/** Constructor: Strophe.Connection
- * Create and initialize a Strophe.Connection object.
- *
- * The transport-protocol for this connection will be chosen automatically
- * based on the given service parameter. URLs starting with "ws://" or
- * "wss://" will use WebSockets, URLs starting with "http://", "https://"
- * or without a protocol will use BOSH.
- *
- * To make Strophe connect to the current host you can leave out the protocol
- * and host part and just pass the path, e.g.
- *
- * > var conn = new Strophe.Connection("/http-bind/");
- *
- * Options common to both Websocket and BOSH:
- * ------------------------------------------
- *
- * cookies
- * ~~~~~~~
- *
- * The "cookies" option allows you to pass in cookies to be added to the
- * document. These cookies will then be included in the BOSH XMLHttpRequest
- * or in the websocket connection.
- *
- * The passed in value must be a map of cookie names and string values:
- *
- * > { "myCookie": {
- * > "value": "1234",
- * > "domain": ".example.org",
- * > "path": "/",
- * > "expires": expirationDate
- * > }
- * > }
- *
- * Note that cookies can't be set in this way for other domains (i.e. cross-domain).
- * Those cookies need to be set under those domains, for example they can be
- * set server-side by making a XHR call to that domain to ask it to set any
- * necessary cookies.
- *
- * mechanisms
- * ~~~~~~~~~~
- *
- * The "mechanisms" option allows you to specify the SASL mechanisms that this
- * instance of Strophe.Connection (and therefore your XMPP client) will
- * support.
- *
- * The value must be an array of objects with Strophe.SASLMechanism
- * prototypes.
- *
- * If nothing is specified, then the following mechanisms (and their
- * priorities) are registered:
- *
- * EXTERNAL - 60
- * OAUTHBEARER - 50
- * SCRAM-SHA1 - 40
- * DIGEST-MD5 - 30
- * PLAIN - 20
- * ANONYMOUS - 10
- *
- * WebSocket options:
- * ------------------
- *
- * If you want to connect to the current host with a WebSocket connection you
- * can tell Strophe to use WebSockets through a "protocol" attribute in the
- * optional options parameter. Valid values are "ws" for WebSocket and "wss"
- * for Secure WebSocket.
- * So to connect to "wss://CURRENT_HOSTNAME/xmpp-websocket" you would call
- *
- * > var conn = new Strophe.Connection("/xmpp-websocket/", {protocol: "wss"});
- *
- * Note that relative URLs _NOT_ starting with a "/" will also include the path
- * of the current site.
- *
- * Also because downgrading security is not permitted by browsers, when using
- * relative URLs both BOSH and WebSocket connections will use their secure
- * variants if the current connection to the site is also secure (https).
- *
- * BOSH options:
- * -------------
- *
- * By adding "sync" to the options, you can control if requests will
- * be made synchronously or not. The default behaviour is asynchronous.
- * If you want to make requests synchronous, make "sync" evaluate to true:
- * > var conn = new Strophe.Connection("/http-bind/", {sync: true});
- *
- * You can also toggle this on an already established connection:
- * > conn.options.sync = true;
- *
- * The "customHeaders" option can be used to provide custom HTTP headers to be
- * included in the XMLHttpRequests made.
- *
- * The "keepalive" option can be used to instruct Strophe to maintain the
- * current BOSH session across interruptions such as webpage reloads.
- *
- * It will do this by caching the sessions tokens in sessionStorage, and when
- * "restore" is called it will check whether there are cached tokens with
- * which it can resume an existing session.
- *
- * The "withCredentials" option should receive a Boolean value and is used to
- * indicate wether cookies should be included in ajax requests (by default
- * they're not).
- * Set this value to true if you are connecting to a BOSH service
- * and for some reason need to send cookies to it.
- * In order for this to work cross-domain, the server must also enable
- * credentials by setting the Access-Control-Allow-Credentials response header
- * to "true". For most usecases however this setting should be false (which
- * is the default).
- * Additionally, when using Access-Control-Allow-Credentials, the
- * Access-Control-Allow-Origin header can't be set to the wildcard "*", but
- * instead must be restricted to actual domains.
- *
- * The "contentType" option can be set to change the default Content-Type
- * of "text/xml; charset=utf-8", which can be useful to reduce the amount of
- * CORS preflight requests that are sent to the server.
- *
- * Parameters:
- * (String) service - The BOSH or WebSocket service URL.
- * (Object) options - A hash of configuration options
- *
- * Returns:
- * A new Strophe.Connection object.
- */
-Strophe.Connection = function (service, options) {
- // The service URL
- this.service = service;
- // Configuration options
- this.options = options || {};
- var proto = this.options.protocol || "";
-
- // Select protocal based on service or options
- if (service.indexOf("ws:") === 0 || service.indexOf("wss:") === 0 ||
- proto.indexOf("ws") === 0) {
- this._proto = new Strophe.Websocket(this);
- } else {
- this._proto = new Strophe.Bosh(this);
- }
-
- /* The connected JID. */
- this.jid = "";
- /* the JIDs domain */
- this.domain = null;
- /* stream:features */
- this.features = null;
-
- // SASL
- this._sasl_data = {};
- this.do_session = false;
- this.do_bind = false;
-
- // handler lists
- this.timedHandlers = [];
- this.handlers = [];
- this.removeTimeds = [];
- this.removeHandlers = [];
- this.addTimeds = [];
- this.addHandlers = [];
- this.protocolErrorHandlers = {
- 'HTTP': {},
- 'websocket': {}
- };
-
- this._idleTimeout = null;
- this._disconnectTimeout = null;
-
- this.authenticated = false;
- this.connected = false;
- this.disconnecting = false;
- this.do_authentication = true;
- this.paused = false;
- this.restored = false;
-
- this._data = [];
- this._uniqueId = 0;
-
- this._sasl_success_handler = null;
- this._sasl_failure_handler = null;
- this._sasl_challenge_handler = null;
-
- // Max retries before disconnecting
- this.maxRetries = 5;
-
- // Call onIdle callback every 1/10th of a second
- // XXX: setTimeout should be called only with function expressions (23974bc1)
- this._idleTimeout = setTimeout(function() {
- this._onIdle();
- }.bind(this), 100);
-
- utils.addCookies(this.options.cookies);
- this.registerSASLMechanisms(this.options.mechanisms);
-
- // initialize plugins
- for (var k in Strophe._connectionPlugins) {
- if (Strophe._connectionPlugins.hasOwnProperty(k)) {
- var ptype = Strophe._connectionPlugins[k];
- // jslint complaints about the below line, but this is fine
- var F = function () {}; // jshint ignore:line
- F.prototype = ptype;
- this[k] = new F();
- this[k].init(this);
- }
- }
-};
-
-Strophe.Connection.prototype = {
- /** Function: reset
- * Reset the connection.
- *
- * This function should be called after a connection is disconnected
- * before that connection is reused.
- */
- reset: function () {
- this._proto._reset();
-
- // SASL
- this.do_session = false;
- this.do_bind = false;
-
- // handler lists
- this.timedHandlers = [];
- this.handlers = [];
- this.removeTimeds = [];
- this.removeHandlers = [];
- this.addTimeds = [];
- this.addHandlers = [];
-
- this.authenticated = false;
- this.connected = false;
- this.disconnecting = false;
- this.restored = false;
-
- this._data = [];
- this._requests = [];
- this._uniqueId = 0;
- },
-
- /** Function: pause
- * Pause the request manager.
- *
- * This will prevent Strophe from sending any more requests to the
- * server. This is very useful for temporarily pausing
- * BOSH-Connections while a lot of send() calls are happening quickly.
- * This causes Strophe to send the data in a single request, saving
- * many request trips.
- */
- pause: function () {
- this.paused = true;
- },
-
- /** Function: resume
- * Resume the request manager.
- *
- * This resumes after pause() has been called.
- */
- resume: function () {
- this.paused = false;
- },
-
- /** Function: getUniqueId
- * Generate a unique ID for use in <iq/> elements.
- *
- * All <iq/> stanzas are required to have unique id attributes. This
- * function makes creating these easy. Each connection instance has
- * a counter which starts from zero, and the value of this counter
- * plus a colon followed by the suffix becomes the unique id. If no
- * suffix is supplied, the counter is used as the unique id.
- *
- * Suffixes are used to make debugging easier when reading the stream
- * data, and their use is recommended. The counter resets to 0 for
- * every new connection for the same reason. For connections to the
- * same server that authenticate the same way, all the ids should be
- * the same, which makes it easy to see changes. This is useful for
- * automated testing as well.
- *
- * Parameters:
- * (String) suffix - A optional suffix to append to the id.
- *
- * Returns:
- * A unique string to be used for the id attribute.
- */
- getUniqueId: function(suffix) {
- var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
- var r = Math.random() * 16 | 0,
- v = c == 'x' ? r : r & 0x3 | 0x8;
- return v.toString(16);
- });
- if (typeof(suffix) == "string" || typeof(suffix) == "number") {
- return uuid + ":" + suffix;
- } else {
- return uuid + "";
- }
- },
-
- /** Function: addProtocolErrorHandler
- * Register a handler function for when a protocol (websocker or HTTP)
- * error occurs.
- *
- * NOTE: Currently only HTTP errors for BOSH requests are handled.
- * Patches that handle websocket errors would be very welcome.
- *
- * Parameters:
- * (String) protocol - 'HTTP' or 'websocket'
- * (Integer) status_code - Error status code (e.g 500, 400 or 404)
- * (Function) callback - Function that will fire on Http error
- *
- * Example:
- * function onError(err_code){
- * //do stuff
- * }
- *
- * var conn = Strophe.connect('http://example.com/http-bind');
- * conn.addProtocolErrorHandler('HTTP', 500, onError);
- * // Triggers HTTP 500 error and onError handler will be called
- * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);
- */
- addProtocolErrorHandler: function(protocol, status_code, callback){
- this.protocolErrorHandlers[protocol][status_code] = callback;
- },
-
-
- /** Function: connect
- * Starts the connection process.
- *
- * As the connection process proceeds, the user supplied callback will
- * be triggered multiple times with status updates. The callback
- * should take two arguments - the status code and the error condition.
- *
- * The status code will be one of the values in the Strophe.Status
- * constants. The error condition will be one of the conditions
- * defined in RFC 3920 or the condition 'strophe-parsererror'.
- *
- * The Parameters _wait_, _hold_ and _route_ are optional and only relevant
- * for BOSH connections. Please see XEP 124 for a more detailed explanation
- * of the optional parameters.
- *
- * Parameters:
- * (String) jid - The user's JID. This may be a bare JID,
- * or a full JID. If a node is not supplied, SASL ANONYMOUS
- * authentication will be attempted.
- * (String) pass - The user's password.
- * (Function) callback - The connect callback function.
- * (Integer) wait - The optional HTTPBIND wait value. This is the
- * time the server will wait before returning an empty result for
- * a request. The default setting of 60 seconds is recommended.
- * (Integer) hold - The optional HTTPBIND hold value. This is the
- * number of connections the server will hold at one time. This
- * should almost always be set to 1 (the default).
- * (String) route - The optional route value.
- * (String) authcid - The optional alternative authentication identity
- * (username) if intending to impersonate another user.
- * When using the SASL-EXTERNAL authentication mechanism, for example
- * with client certificates, then the authcid value is used to
- * determine whether an authorization JID (authzid) should be sent to
- * the server. The authzid should not be sent to the server if the
- * authzid and authcid are the same. So to prevent it from being sent
- * (for example when the JID is already contained in the client
- * certificate), set authcid to that same JID. See XEP-178 for more
- * details.
- */
- connect: function (jid, pass, callback, wait, hold, route, authcid) {
- this.jid = jid;
- /** Variable: authzid
- * Authorization identity.
- */
- this.authzid = Strophe.getBareJidFromJid(this.jid);
-
- /** Variable: authcid
- * Authentication identity (User name).
- */
- this.authcid = authcid || Strophe.getNodeFromJid(this.jid);
-
- /** Variable: pass
- * Authentication identity (User password).
- */
- this.pass = pass;
-
- /** Variable: servtype
- * Digest MD5 compatibility.
- */
- this.servtype = "xmpp";
-
- this.connect_callback = callback;
- this.disconnecting = false;
- this.connected = false;
- this.authenticated = false;
- this.restored = false;
-
- // parse jid for domain
- this.domain = Strophe.getDomainFromJid(this.jid);
-
- this._changeConnectStatus(Strophe.Status.CONNECTING, null);
-
- this._proto._connect(wait, hold, route);
- },
-
- /** Function: attach
- * Attach to an already created and authenticated BOSH session.
- *
- * This function is provided to allow Strophe to attach to BOSH
- * sessions which have been created externally, perhaps by a Web
- * application. This is often used to support auto-login type features
- * without putting user credentials into the page.
- *
- * Parameters:
- * (String) jid - The full JID that is bound by the session.
- * (String) sid - The SID of the BOSH session.
- * (String) rid - The current RID of the BOSH session. This RID
- * will be used by the next request.
- * (Function) callback The connect callback function.
- * (Integer) wait - The optional HTTPBIND wait value. This is the
- * time the server will wait before returning an empty result for
- * a request. The default setting of 60 seconds is recommended.
- * Other settings will require tweaks to the Strophe.TIMEOUT value.
- * (Integer) hold - The optional HTTPBIND hold value. This is the
- * number of connections the server will hold at one time. This
- * should almost always be set to 1 (the default).
- * (Integer) wind - The optional HTTBIND window value. This is the
- * allowed range of request ids that are valid. The default is 5.
- */
- attach: function (jid, sid, rid, callback, wait, hold, wind) {
- if (this._proto instanceof Strophe.Bosh) {
- this._proto._attach(jid, sid, rid, callback, wait, hold, wind);
- } else {
- throw {
- name: 'StropheSessionError',
- message: 'The "attach" method can only be used with a BOSH connection.'
- };
- }
- },
-
- /** Function: restore
- * Attempt to restore a cached BOSH session.
- *
- * This function is only useful in conjunction with providing the
- * "keepalive":true option when instantiating a new Strophe.Connection.
- *
- * When "keepalive" is set to true, Strophe will cache the BOSH tokens
- * RID (Request ID) and SID (Session ID) and then when this function is
- * called, it will attempt to restore the session from those cached
- * tokens.
- *
- * This function must therefore be called instead of connect or attach.
- *
- * For an example on how to use it, please see examples/restore.js
- *
- * Parameters:
- * (String) jid - The user's JID. This may be a bare JID or a full JID.
- * (Function) callback - The connect callback function.
- * (Integer) wait - The optional HTTPBIND wait value. This is the
- * time the server will wait before returning an empty result for
- * a request. The default setting of 60 seconds is recommended.
- * (Integer) hold - The optional HTTPBIND hold value. This is the
- * number of connections the server will hold at one time. This
- * should almost always be set to 1 (the default).
- * (Integer) wind - The optional HTTBIND window value. This is the
- * allowed range of request ids that are valid. The default is 5.
- */
- restore: function (jid, callback, wait, hold, wind) {
- if (this._sessionCachingSupported()) {
- this._proto._restore(jid, callback, wait, hold, wind);
- } else {
- throw {
- name: 'StropheSessionError',
- message: 'The "restore" method can only be used with a BOSH connection.'
- };
- }
- },
-
- /** PrivateFunction: _sessionCachingSupported
- * Checks whether sessionStorage and JSON are supported and whether we're
- * using BOSH.
- */
- _sessionCachingSupported: function () {
- if (this._proto instanceof Strophe.Bosh) {
- if (!JSON) { return false; }
- try {
- window.sessionStorage.setItem('_strophe_', '_strophe_');
- window.sessionStorage.removeItem('_strophe_');
- } catch (e) {
- return false;
- }
- return true;
- }
- return false;
- },
-
- /** Function: xmlInput
- * User overrideable function that receives XML data coming into the
- * connection.
- *
- * The default function does nothing. User code can override this with
- * > Strophe.Connection.xmlInput = function (elem) {
- * > (user code)
- * > };
- *
- * Due to limitations of current Browsers' XML-Parsers the opening and closing
- * <stream> tag for WebSocket-Connoctions will be passed as selfclosing here.
- *
- * BOSH-Connections will have all stanzas wrapped in a <body> tag. See
- * <Strophe.Bosh.strip> if you want to strip this tag.
- *
- * Parameters:
- * (XMLElement) elem - The XML data received by the connection.
- */
- /* jshint unused:false */
- xmlInput: function (elem) {
- return;
- },
- /* jshint unused:true */
-
- /** Function: xmlOutput
- * User overrideable function that receives XML data sent to the
- * connection.
- *
- * The default function does nothing. User code can override this with
- * > Strophe.Connection.xmlOutput = function (elem) {
- * > (user code)
- * > };
- *
- * Due to limitations of current Browsers' XML-Parsers the opening and closing
- * <stream> tag for WebSocket-Connoctions will be passed as selfclosing here.
- *
- * BOSH-Connections will have all stanzas wrapped in a <body> tag. See
- * <Strophe.Bosh.strip> if you want to strip this tag.
- *
- * Parameters:
- * (XMLElement) elem - The XMLdata sent by the connection.
- */
- /* jshint unused:false */
- xmlOutput: function (elem) {
- return;
- },
- /* jshint unused:true */
-
- /** Function: rawInput
- * User overrideable function that receives raw data coming into the
- * connection.
- *
- * The default function does nothing. User code can override this with
- * > Strophe.Connection.rawInput = function (data) {
- * > (user code)
- * > };
- *
- * Parameters:
- * (String) data - The data received by the connection.
- */
- /* jshint unused:false */
- rawInput: function (data) {
- return;
- },
- /* jshint unused:true */
-
- /** Function: rawOutput
- * User overrideable function that receives raw data sent to the
- * connection.
- *
- * The default function does nothing. User code can override this with
- * > Strophe.Connection.rawOutput = function (data) {
- * > (user code)
- * > };
- *
- * Parameters:
- * (String) data - The data sent by the connection.
- */
- /* jshint unused:false */
- rawOutput: function (data) {
- return;
- },
- /* jshint unused:true */
-
- /** Function: nextValidRid
- * User overrideable function that receives the new valid rid.
- *
- * The default function does nothing. User code can override this with
- * > Strophe.Connection.nextValidRid = function (rid) {
- * > (user code)
- * > };
- *
- * Parameters:
- * (Number) rid - The next valid rid
- */
- /* jshint unused:false */
- nextValidRid: function (rid) {
- return;
- },
- /* jshint unused:true */
-
- /** Function: send
- * Send a stanza.
- *
- * This function is called to push data onto the send queue to
- * go out over the wire. Whenever a request is sent to the BOSH
- * server, all pending data is sent and the queue is flushed.
- *
- * Parameters:
- * (XMLElement |
- * [XMLElement] |
- * Strophe.Builder) elem - The stanza to send.
- */
- send: function (elem) {
- if (elem === null) { return ; }
- if (typeof(elem.sort) === "function") {
- for (var i = 0; i < elem.length; i++) {
- this._queueData(elem[i]);
- }
- } else if (typeof(elem.tree) === "function") {
- this._queueData(elem.tree());
- } else {
- this._queueData(elem);
- }
-
- this._proto._send();
- },
-
- /** Function: flush
- * Immediately send any pending outgoing data.
- *
- * Normally send() queues outgoing data until the next idle period
- * (100ms), which optimizes network use in the common cases when
- * several send()s are called in succession. flush() can be used to
- * immediately send all pending data.
- */
- flush: function () {
- // cancel the pending idle period and run the idle function
- // immediately
- clearTimeout(this._idleTimeout);
- this._onIdle();
- },
-
- /** Function: sendIQ
- * Helper function to send IQ stanzas.
- *
- * Parameters:
- * (XMLElement) elem - The stanza to send.
- * (Function) callback - The callback function for a successful request.
- * (Function) errback - The callback function for a failed or timed
- * out request. On timeout, the stanza will be null.
- * (Integer) timeout - The time specified in milliseconds for a
- * timeout to occur.
- *
- * Returns:
- * The id used to send the IQ.
- */
- sendIQ: function(elem, callback, errback, timeout) {
- var timeoutHandler = null;
- var that = this;
-
- if (typeof(elem.tree) === "function") {
- elem = elem.tree();
- }
- var id = elem.getAttribute('id');
- if (!id) { // inject id if not found
- id = this.getUniqueId("sendIQ");
- elem.setAttribute("id", id);
- }
-
- var handler = this.addHandler(function (stanza) {
- // remove timeout handler if there is one
- if (timeoutHandler) {
- that.deleteTimedHandler(timeoutHandler);
- }
- var iqtype = stanza.getAttribute('type');
- if (iqtype == 'result') {
- if (callback) {
- callback(stanza);
- }
- } else if (iqtype == 'error') {
- if (errback) {
- errback(stanza);
- }
- } else {
- throw {
- name: "StropheError",
- message: "Got bad IQ type of " + iqtype
- };
- }
- }, null, 'iq', ['error', 'result'], id);
-
- // if timeout specified, set up a timeout handler.
- if (timeout) {
- timeoutHandler = this.addTimedHandler(timeout, function () {
- // get rid of normal handler
- that.deleteHandler(handler);
- // call errback on timeout with null stanza
- if (errback) {
- errback(null);
- }
- return false;
- });
- }
- this.send(elem);
- return id;
- },
-
- /** PrivateFunction: _queueData
- * Queue outgoing data for later sending. Also ensures that the data
- * is a DOMElement.
- */
- _queueData: function (element) {
- if (element === null ||
- !element.tagName ||
- !element.childNodes) {
- throw {
- name: "StropheError",
- message: "Cannot queue non-DOMElement."
- };
- }
- this._data.push(element);
- },
-
- /** PrivateFunction: _sendRestart
- * Send an xmpp:restart stanza.
- */
- _sendRestart: function () {
- this._data.push("restart");
- this._proto._sendRestart();
- // XXX: setTimeout should be called only with function expressions (23974bc1)
- this._idleTimeout = setTimeout(function() {
- this._onIdle();
- }.bind(this), 100);
- },
-
- /** Function: addTimedHandler
- * Add a timed handler to the connection.
- *
- * This function adds a timed handler. The provided handler will
- * be called every period milliseconds until it returns false,
- * the connection is terminated, or the handler is removed. Handlers
- * that wish to continue being invoked should return true.
- *
- * Because of method binding it is necessary to save the result of
- * this function if you wish to remove a handler with
- * deleteTimedHandler().
- *
- * Note that user handlers are not active until authentication is
- * successful.
- *
- * Parameters:
- * (Integer) period - The period of the handler.
- * (Function) handler - The callback function.
- *
- * Returns:
- * A reference to the handler that can be used to remove it.
- */
- addTimedHandler: function (period, handler) {
- var thand = new Strophe.TimedHandler(period, handler);
- this.addTimeds.push(thand);
- return thand;
- },
-
- /** Function: deleteTimedHandler
- * Delete a timed handler for a connection.
- *
- * This function removes a timed handler from the connection. The
- * handRef parameter is *not* the function passed to addTimedHandler(),
- * but is the reference returned from addTimedHandler().
- *
- * Parameters:
- * (Strophe.TimedHandler) handRef - The handler reference.
- */
- deleteTimedHandler: function (handRef) {
- // this must be done in the Idle loop so that we don't change
- // the handlers during iteration
- this.removeTimeds.push(handRef);
- },
-
- /** Function: addHandler
- * Add a stanza handler for the connection.
- *
- * This function adds a stanza handler to the connection. The
- * handler callback will be called for any stanza that matches
- * the parameters. Note that if multiple parameters are supplied,
- * they must all match for the handler to be invoked.
- *
- * The handler will receive the stanza that triggered it as its argument.
- * *The handler should return true if it is to be invoked again;
- * returning false will remove the handler after it returns.*
- *
- * As a convenience, the ns parameters applies to the top level element
- * and also any of its immediate children. This is primarily to make
- * matching /iq/query elements easy.
- *
- * Options
- * ~~~~~~~
- * With the options argument, you can specify boolean flags that affect how
- * matches are being done.
- *
- * Currently two flags exist:
- *
- * - matchBareFromJid:
- * When set to true, the from parameter and the
- * from attribute on the stanza will be matched as bare JIDs instead
- * of full JIDs. To use this, pass {matchBareFromJid: true} as the
- * value of options. The default value for matchBareFromJid is false.
- *
- * - ignoreNamespaceFragment:
- * When set to true, a fragment specified on the stanza's namespace
- * URL will be ignored when it's matched with the one configured for
- * the handler.
- *
- * This means that if you register like this:
- * > connection.addHandler(
- * > handler,
- * > 'http://jabber.org/protocol/muc',
- * > null, null, null, null,
- * > {'ignoreNamespaceFragment': true}
- * > );
- *
- * Then a stanza with XML namespace of
- * 'http://jabber.org/protocol/muc#user' will also be matched. If
- * 'ignoreNamespaceFragment' is false, then only stanzas with
- * 'http://jabber.org/protocol/muc' will be matched.
- *
- * Deleting the handler
- * ~~~~~~~~~~~~~~~~~~~~
- * The return value should be saved if you wish to remove the handler
- * with deleteHandler().
- *
- * Parameters:
- * (Function) handler - The user callback.
- * (String) ns - The namespace to match.
- * (String) name - The stanza name to match.
- * (String|Array) type - The stanza type (or types if an array) to match.
- * (String) id - The stanza id attribute to match.
- * (String) from - The stanza from attribute to match.
- * (String) options - The handler options
- *
- * Returns:
- * A reference to the handler that can be used to remove it.
- */
- addHandler: function (handler, ns, name, type, id, from, options) {
- var hand = new Strophe.Handler(handler, ns, name, type, id, from, options);
- this.addHandlers.push(hand);
- return hand;
- },
-
- /** Function: deleteHandler
- * Delete a stanza handler for a connection.
- *
- * This function removes a stanza handler from the connection. The
- * handRef parameter is *not* the function passed to addHandler(),
- * but is the reference returned from addHandler().
- *
- * Parameters:
- * (Strophe.Handler) handRef - The handler reference.
- */
- deleteHandler: function (handRef) {
- // this must be done in the Idle loop so that we don't change
- // the handlers during iteration
- this.removeHandlers.push(handRef);
- // If a handler is being deleted while it is being added,
- // prevent it from getting added
- var i = this.addHandlers.indexOf(handRef);
- if (i >= 0) {
- this.addHandlers.splice(i, 1);
- }
- },
-
- /** Function: registerSASLMechanisms
- *
- * Register the SASL mechanisms which will be supported by this instance of
- * Strophe.Connection (i.e. which this XMPP client will support).
- *
- * Parameters:
- * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes
- *
- */
- registerSASLMechanisms: function (mechanisms) {
- this.mechanisms = {};
- mechanisms = mechanisms || [
- Strophe.SASLAnonymous,
- Strophe.SASLExternal,
- Strophe.SASLMD5,
- Strophe.SASLOAuthBearer,
- Strophe.SASLPlain,
- Strophe.SASLSHA1
- ];
- mechanisms.forEach(this.registerSASLMechanism.bind(this));
- },
-
- /** Function: registerSASLMechanism
- *
- * Register a single SASL mechanism, to be supported by this client.
- *
- * Parameters:
- * (Object) mechanism - Object with a Strophe.SASLMechanism prototype
- *
- */
- registerSASLMechanism: function (mechanism) {
- this.mechanisms[mechanism.prototype.name] = mechanism;
- },
-
- /** Function: disconnect
- * Start the graceful disconnection process.
- *
- * This function starts the disconnection process. This process starts
- * by sending unavailable presence and sending BOSH body of type
- * terminate. A timeout handler makes sure that disconnection happens
- * even if the BOSH server does not respond.
- * If the Connection object isn't connected, at least tries to abort all pending requests
- * so the connection object won't generate successful requests (which were already opened).
- *
- * The user supplied connection callback will be notified of the
- * progress as this process happens.
- *
- * Parameters:
- * (String) reason - The reason the disconnect is occuring.
- */
- disconnect: function (reason) {
- this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);
-
- Strophe.info("Disconnect was called because: " + reason);
- if (this.connected) {
- var pres = false;
- this.disconnecting = true;
- if (this.authenticated) {
- pres = $pres({
- xmlns: Strophe.NS.CLIENT,
- type: 'unavailable'
- });
- }
- // setup timeout handler
- this._disconnectTimeout = this._addSysTimedHandler(
- 3000, this._onDisconnectTimeout.bind(this));
- this._proto._disconnect(pres);
- } else {
- Strophe.info("Disconnect was called before Strophe connected to the server");
- this._proto._abortAllRequests();
- }
- },
-
- /** PrivateFunction: _changeConnectStatus
- * _Private_ helper function that makes sure plugins and the user's
- * callback are notified of connection status changes.
- *
- * Parameters:
- * (Integer) status - the new connection status, one of the values
- * in Strophe.Status
- * (String) condition - the error condition or null
- */
- _changeConnectStatus: function (status, condition) {
- // notify all plugins listening for status changes
- 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);
- }
- }
- }
- }
-
- // notify the user's callback
- if (this.connect_callback) {
- try {
- this.connect_callback(status, condition);
- } catch (e) {
- Strophe._handleError(e);
- Strophe.error(
- "User connection callback caused an "+"exception: "+e);
- }
- }
- },
-
- /** PrivateFunction: _doDisconnect
- * _Private_ function to disconnect.
- *
- * This is the last piece of the disconnection logic. This resets the
- * connection and alerts the user's connection callback.
- */
- _doDisconnect: function (condition) {
- if (typeof this._idleTimeout == "number") {
- clearTimeout(this._idleTimeout);
- }
-
- // Cancel Disconnect Timeout
- if (this._disconnectTimeout !== null) {
- this.deleteTimedHandler(this._disconnectTimeout);
- this._disconnectTimeout = null;
- }
-
- Strophe.info("_doDisconnect was called");
- this._proto._doDisconnect();
-
- this.authenticated = false;
- this.disconnecting = false;
- this.restored = false;
-
- // delete handlers
- this.handlers = [];
- this.timedHandlers = [];
- this.removeTimeds = [];
- this.removeHandlers = [];
- this.addTimeds = [];
- this.addHandlers = [];
-
- // tell the parent we disconnected
- this._changeConnectStatus(Strophe.Status.DISCONNECTED, condition);
- this.connected = false;
- },
-
- /** PrivateFunction: _dataRecv
- * _Private_ handler to processes incoming data from the the connection.
- *
- * Except for _connect_cb handling the initial connection request,
- * this function handles the incoming data for all requests. This
- * function also fires stanza handlers that match each incoming
- * stanza.
- *
- * Parameters:
- * (Strophe.Request) req - The request that has data ready.
- * (string) req - The stanza a raw string (optiona).
- */
- _dataRecv: function (req, raw) {
- Strophe.info("_dataRecv called");
- var elem = this._proto._reqToData(req);
- if (elem === null) { return; }
-
- if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {
- if (elem.nodeName === this._proto.strip && elem.childNodes.length) {
- this.xmlInput(elem.childNodes[0]);
- } else {
- this.xmlInput(elem);
- }
- }
- if (this.rawInput !== Strophe.Connection.prototype.rawInput) {
- if (raw) {
- this.rawInput(raw);
- } else {
- this.rawInput(Strophe.serialize(elem));
- }
- }
-
- // remove handlers scheduled for deletion
- var i, hand;
- while (this.removeHandlers.length > 0) {
- hand = this.removeHandlers.pop();
- i = this.handlers.indexOf(hand);
- if (i >= 0) {
- this.handlers.splice(i, 1);
- }
- }
-
- // add handlers scheduled for addition
- while (this.addHandlers.length > 0) {
- this.handlers.push(this.addHandlers.pop());
- }
-
- // handle graceful disconnect
- if (this.disconnecting && this._proto._emptyQueue()) {
- this._doDisconnect();
- return;
- }
-
- var type = elem.getAttribute("type");
- var cond, conflict;
- if (type !== null && type == "terminate") {
- // Don't process stanzas that come in after disconnect
- if (this.disconnecting) {
- return;
- }
-
- // an error occurred
- cond = elem.getAttribute("condition");
- conflict = elem.getElementsByTagName("conflict");
- if (cond !== null) {
- if (cond == "remote-stream-error" && conflict.length > 0) {
- cond = "conflict";
- }
- this._changeConnectStatus(Strophe.Status.CONNFAIL, cond);
- } else {
- this._changeConnectStatus(Strophe.Status.CONNFAIL, "unknown");
- }
- this._doDisconnect(cond);
- return;
- }
-
- // send each incoming stanza through the handler chain
- var that = this;
- Strophe.forEachChild(elem, null, function (child) {
- var i, newList;
- // process handlers
- newList = that.handlers;
- that.handlers = [];
- for (i = 0; i < newList.length; i++) {
- var hand = newList[i];
- // encapsulate 'handler.run' not to lose the whole handler list if
- // one of the handlers throws an exception
- try {
- if (hand.isMatch(child) &&
- (that.authenticated || !hand.user)) {
- if (hand.run(child)) {
- that.handlers.push(hand);
- }
- } else {
- that.handlers.push(hand);
- }
- } catch(e) {
- // if the handler throws an exception, we consider it as false
- Strophe.warn('Removing Strophe handlers due to uncaught exception: '+e.message);
- }
- }
- });
- },
-
-
- /** Attribute: mechanisms
- * SASL Mechanisms available for Connection.
- */
- mechanisms: {},
-
- /** PrivateFunction: _connect_cb
- * _Private_ handler for initial connection request.
- *
- * This handler is used to process the initial connection request
- * response from the BOSH server. It is used to set up authentication
- * handlers and start the authentication process.
- *
- * SASL authentication will be attempted if available, otherwise
- * the code will fall back to legacy authentication.
- *
- * Parameters:
- * (Strophe.Request) req - The current request.
- * (Function) _callback - low level (xmpp) connect callback function.
- * Useful for plugins with their own xmpp connect callback (when their)
- * want to do something special).
- */
- _connect_cb: function (req, _callback, raw) {
- Strophe.info("_connect_cb was called");
- this.connected = true;
-
- var bodyWrap;
- try {
- bodyWrap = this._proto._reqToData(req);
- } catch (e) {
- if (e != "badformat") { throw e; }
- this._changeConnectStatus(Strophe.Status.CONNFAIL, 'bad-format');
- this._doDisconnect('bad-format');
- }
- if (!bodyWrap) { return; }
-
- if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {
- if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) {
- this.xmlInput(bodyWrap.childNodes[0]);
- } else {
- this.xmlInput(bodyWrap);
- }
- }
- if (this.rawInput !== Strophe.Connection.prototype.rawInput) {
- if (raw) {
- this.rawInput(raw);
- } else {
- this.rawInput(Strophe.serialize(bodyWrap));
- }
- }
-
- var conncheck = this._proto._connect_cb(bodyWrap);
- if (conncheck === Strophe.Status.CONNFAIL) {
- return;
- }
-
- // Check for the stream:features tag
- var hasFeatures;
- if (bodyWrap.getElementsByTagNameNS) {
- hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, "features").length > 0;
- } else {
- hasFeatures = bodyWrap.getElementsByTagName("stream:features").length > 0 ||
- bodyWrap.getElementsByTagName("features").length > 0;
- }
- if (!hasFeatures) {
- this._proto._no_auth_received(_callback);
- return;
- }
-
- var matched = [], i, mech;
- var mechanisms = bodyWrap.getElementsByTagName("mechanism");
- if (mechanisms.length > 0) {
- for (i = 0; i < mechanisms.length; i++) {
- mech = Strophe.getText(mechanisms[i]);
- if (this.mechanisms[mech]) matched.push(this.mechanisms[mech]);
- }
- }
- if (matched.length === 0) {
- if (bodyWrap.getElementsByTagName("auth").length === 0) {
- // There are no matching SASL mechanisms and also no legacy
- // auth available.
- this._proto._no_auth_received(_callback);
- return;
- }
- }
- if (this.do_authentication !== false) {
- this.authenticate(matched);
- }
- },
-
- /** Function: sortMechanismsByPriority
- *
- * Sorts an array of objects with prototype SASLMechanism according to
- * their priorities.
- *
- * Parameters:
- * (Array) mechanisms - Array of SASL mechanisms.
- *
- */
- sortMechanismsByPriority: function (mechanisms) {
- // Sorting mechanisms according to priority.
- var i, j, higher, swap;
- for (i = 0; i < mechanisms.length - 1; ++i) {
- higher = i;
- for (j = i + 1; j < mechanisms.length; ++j) {
- if (mechanisms[j].prototype.priority > mechanisms[higher].prototype.priority) {
- higher = j;
- }
- }
- if (higher != i) {
- swap = mechanisms[i];
- mechanisms[i] = mechanisms[higher];
- mechanisms[higher] = swap;
- }
- }
- return mechanisms;
- },
-
- /** PrivateFunction: _attemptSASLAuth
- *
- * Iterate through an array of SASL mechanisms and attempt authentication
- * with the highest priority (enabled) mechanism.
- *
- * Parameters:
- * (Array) mechanisms - Array of SASL mechanisms.
- *
- * Returns:
- * (Boolean) mechanism_found - true or false, depending on whether a
- * valid SASL mechanism was found with which authentication could be
- * started.
- */
- _attemptSASLAuth: function (mechanisms) {
- mechanisms = this.sortMechanismsByPriority(mechanisms || []);
- var i = 0, mechanism_found = false;
- for (i = 0; i < mechanisms.length; ++i) {
- if (!mechanisms[i].prototype.test(this)) {
- continue;
- }
- this._sasl_success_handler = this._addSysHandler(
- this._sasl_success_cb.bind(this), null,
- "success", null, null);
- this._sasl_failure_handler = this._addSysHandler(
- this._sasl_failure_cb.bind(this), null,
- "failure", null, null);
- this._sasl_challenge_handler = this._addSysHandler(
- this._sasl_challenge_cb.bind(this), null,
- "challenge", null, null);
-
- this._sasl_mechanism = new mechanisms[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 = true;
- break;
- }
- return mechanism_found;
- },
-
- /** PrivateFunction: _attemptLegacyAuth
- *
- * Attempt legacy (i.e. non-SASL) authentication.
- *
- */
- _attemptLegacyAuth: function () {
- if (Strophe.getNodeFromJid(this.jid) === null) {
- // we don't have a node, which is required for non-anonymous
- // client connections
- this._changeConnectStatus(
- Strophe.Status.CONNFAIL,
- 'x-strophe-bad-non-anon-jid'
- );
- this.disconnect('x-strophe-bad-non-anon-jid');
- } else {
- // Fall back to legacy authentication
- 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());
- }
- },
-
- /** Function: authenticate
- * Set up authentication
- *
- * Continues the initial connection request by setting up authentication
- * handlers and starting the authentication process.
- *
- * SASL authentication will be attempted if available, otherwise
- * the code will fall back to legacy authentication.
- *
- * Parameters:
- * (Array) matched - Array of SASL mechanisms supported.
- *
- */
- authenticate: function (matched) {
- if (!this._attemptSASLAuth(matched)) {
- this._attemptLegacyAuth();
- }
- },
-
- /** PrivateFunction: _sasl_challenge_cb
- * _Private_ handler for the SASL challenge
- *
- */
- _sasl_challenge_cb: function(elem) {
- var challenge = Base64.decode(Strophe.getText(elem));
- var response = this._sasl_mechanism.onChallenge(this, challenge);
- var stanza = $build('response', {
- 'xmlns': Strophe.NS.SASL
- });
- if (response !== "") {
- stanza.t(Base64.encode(response));
- }
- this.send(stanza.tree());
- return true;
- },
-
- /** PrivateFunction: _auth1_cb
- * _Private_ handler for legacy authentication.
- *
- * This handler is called in response to the initial <iq type='get'/>
- * for legacy authentication. It builds an authentication <iq/> and
- * sends it, creating a handler (calling back to _auth2_cb()) to
- * handle the result
- *
- * Parameters:
- * (XMLElement) elem - The stanza that triggered the callback.
- *
- * Returns:
- * false to remove the handler.
- */
- /* jshint unused:false */
- _auth1_cb: function (elem) {
- // build plaintext auth iq
- 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);
-
- if (!Strophe.getResourceFromJid(this.jid)) {
- // since the user has not supplied a resource, we pick
- // a default one here. unlike other auth methods, the server
- // cannot do this for us.
- 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());
- return false;
- },
- /* jshint unused:true */
-
- /** PrivateFunction: _sasl_success_cb
- * _Private_ handler for succesful SASL authentication.
- *
- * Parameters:
- * (XMLElement) elem - The matching stanza.
- *
- * Returns:
- * false to remove the handler.
- */
- _sasl_success_cb: function (elem) {
- if (this._sasl_data["server-signature"]) {
- var serverSignature;
- var success = Base64.decode(Strophe.getText(elem));
- var attribMatch = /([a-z]+)=([^,]+)(,|$)/;
- var matches = success.match(attribMatch);
- if (matches[1] == "v") {
- serverSignature = matches[2];
- }
-
- if (serverSignature != this._sasl_data["server-signature"]) {
- // remove old handlers
- this.deleteHandler(this._sasl_failure_handler);
- this._sasl_failure_handler = null;
- if (this._sasl_challenge_handler) {
- this.deleteHandler(this._sasl_challenge_handler);
- this._sasl_challenge_handler = null;
- }
-
- this._sasl_data = {};
- return this._sasl_failure_cb(null);
- }
- }
- Strophe.info("SASL authentication succeeded.");
-
- if (this._sasl_mechanism) {
- this._sasl_mechanism.onSuccess();
- }
-
- // remove old handlers
- this.deleteHandler(this._sasl_failure_handler);
- this._sasl_failure_handler = null;
- if (this._sasl_challenge_handler) {
- this.deleteHandler(this._sasl_challenge_handler);
- this._sasl_challenge_handler = null;
- }
-
- var streamfeature_handlers = [];
- var wrapper = function(handlers, elem) {
- while (handlers.length) {
- this.deleteHandler(handlers.pop());
- }
- this._sasl_auth1_cb.bind(this)(elem);
- return false;
- };
- streamfeature_handlers.push(this._addSysHandler(function(elem) {
- wrapper.bind(this)(streamfeature_handlers, elem);
- }.bind(this), null, "stream:features", null, null));
- streamfeature_handlers.push(this._addSysHandler(function(elem) {
- wrapper.bind(this)(streamfeature_handlers, elem);
- }.bind(this), Strophe.NS.STREAM, "features", null, null));
-
- // we must send an xmpp:restart now
- this._sendRestart();
-
- return false;
- },
-
- /** PrivateFunction: _sasl_auth1_cb
- * _Private_ handler to start stream binding.
- *
- * Parameters:
- * (XMLElement) elem - The matching stanza.
- *
- * Returns:
- * false to remove the handler.
- */
- _sasl_auth1_cb: function (elem) {
- // save stream:features for future usage
- this.features = elem;
- var i, child;
- for (i = 0; i < elem.childNodes.length; i++) {
- child = elem.childNodes[i];
- if (child.nodeName == 'bind') {
- this.do_bind = true;
- }
-
- if (child.nodeName == 'session') {
- this.do_session = true;
- }
- }
-
- if (!this.do_bind) {
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
- return false;
- } else {
- this._addSysHandler(this._sasl_bind_cb.bind(this), null, null,
- null, "_bind_auth_2");
-
- var resource = Strophe.getResourceFromJid(this.jid);
- if (resource) {
- this.send($iq({type: "set", id: "_bind_auth_2"})
- .c('bind', {xmlns: Strophe.NS.BIND})
- .c('resource', {}).t(resource).tree());
- } else {
- this.send($iq({type: "set", id: "_bind_auth_2"})
- .c('bind', {xmlns: Strophe.NS.BIND})
- .tree());
- }
- }
- return false;
- },
-
- /** PrivateFunction: _sasl_bind_cb
- * _Private_ handler for binding result and session start.
- *
- * Parameters:
- * (XMLElement) elem - The matching stanza.
- *
- * Returns:
- * false to remove the handler.
- */
- _sasl_bind_cb: function (elem) {
- if (elem.getAttribute("type") == "error") {
- Strophe.info("SASL binding failed.");
- var conflict = elem.getElementsByTagName("conflict"), condition;
- if (conflict.length > 0) {
- condition = 'conflict';
- }
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, condition);
- return false;
- }
-
- // TODO - need to grab errors
- var bind = elem.getElementsByTagName("bind");
- var jidNode;
- if (bind.length > 0) {
- // Grab jid
- jidNode = bind[0].getElementsByTagName("jid");
- if (jidNode.length > 0) {
- this.jid = Strophe.getText(jidNode[0]);
-
- if (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());
- } else {
- this.authenticated = true;
- this._changeConnectStatus(Strophe.Status.CONNECTED, null);
- }
- }
- } else {
- Strophe.info("SASL binding failed.");
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
- return false;
- }
- },
-
- /** PrivateFunction: _sasl_session_cb
- * _Private_ handler to finish successful SASL connection.
- *
- * This sets Connection.authenticated to true on success, which
- * starts the processing of user handlers.
- *
- * Parameters:
- * (XMLElement) elem - The matching stanza.
- *
- * Returns:
- * false to remove the handler.
- */
- _sasl_session_cb: function (elem) {
- if (elem.getAttribute("type") == "result") {
- this.authenticated = true;
- this._changeConnectStatus(Strophe.Status.CONNECTED, null);
- } else if (elem.getAttribute("type") == "error") {
- Strophe.info("Session creation failed.");
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
- return false;
- }
- return false;
- },
-
- /** PrivateFunction: _sasl_failure_cb
- * _Private_ handler for SASL authentication failure.
- *
- * Parameters:
- * (XMLElement) elem - The matching stanza.
- *
- * Returns:
- * false to remove the handler.
- */
- /* jshint unused:false */
- _sasl_failure_cb: function (elem) {
- // delete unneeded handlers
- if (this._sasl_success_handler) {
- this.deleteHandler(this._sasl_success_handler);
- this._sasl_success_handler = null;
- }
- if (this._sasl_challenge_handler) {
- this.deleteHandler(this._sasl_challenge_handler);
- this._sasl_challenge_handler = null;
- }
-
- if(this._sasl_mechanism)
- this._sasl_mechanism.onFailure();
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
- return false;
- },
- /* jshint unused:true */
-
- /** PrivateFunction: _auth2_cb
- * _Private_ handler to finish legacy authentication.
- *
- * This handler is called when the result from the jabber:iq:auth
- * <iq/> stanza is returned.
- *
- * Parameters:
- * (XMLElement) elem - The stanza that triggered the callback.
- *
- * Returns:
- * false to remove the handler.
- */
- _auth2_cb: function (elem) {
- if (elem.getAttribute("type") == "result") {
- this.authenticated = true;
- this._changeConnectStatus(Strophe.Status.CONNECTED, null);
- } else if (elem.getAttribute("type") == "error") {
- this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
- this.disconnect('authentication failed');
- }
- return false;
- },
-
- /** PrivateFunction: _addSysTimedHandler
- * _Private_ function to add a system level timed handler.
- *
- * This function is used to add a Strophe.TimedHandler for the
- * library code. System timed handlers are allowed to run before
- * authentication is complete.
- *
- * Parameters:
- * (Integer) period - The period of the handler.
- * (Function) handler - The callback function.
- */
- _addSysTimedHandler: function (period, handler) {
- var thand = new Strophe.TimedHandler(period, handler);
- thand.user = false;
- this.addTimeds.push(thand);
- return thand;
- },
-
- /** PrivateFunction: _addSysHandler
- * _Private_ function to add a system level stanza handler.
- *
- * This function is used to add a Strophe.Handler for the
- * library code. System stanza handlers are allowed to run before
- * authentication is complete.
- *
- * Parameters:
- * (Function) handler - The callback function.
- * (String) ns - The namespace to match.
- * (String) name - The stanza name to match.
- * (String) type - The stanza type attribute to match.
- * (String) id - The stanza id attribute to match.
- */
- _addSysHandler: function (handler, ns, name, type, id) {
- var hand = new Strophe.Handler(handler, ns, name, type, id);
- hand.user = false;
- this.addHandlers.push(hand);
- return hand;
- },
-
- /** PrivateFunction: _onDisconnectTimeout
- * _Private_ timeout handler for handling non-graceful disconnection.
- *
- * If the graceful disconnect process does not complete within the
- * time allotted, this handler finishes the disconnect anyway.
- *
- * Returns:
- * false to remove the handler.
- */
- _onDisconnectTimeout: function () {
- Strophe.info("_onDisconnectTimeout was called");
- this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);
- this._proto._onDisconnectTimeout();
- // actually disconnect
- this._doDisconnect();
- return false;
- },
-
- /** PrivateFunction: _onIdle
- * _Private_ handler to process events during idle cycle.
- *
- * This handler is called every 100ms to fire timed handlers that
- * are ready and keep poll requests going.
- */
- _onIdle: function () {
- var i, thand, since, newList;
-
- // add timed handlers scheduled for addition
- // NOTE: we add before remove in the case a timed handler is
- // added and then deleted before the next _onIdle() call.
- while (this.addTimeds.length > 0) {
- this.timedHandlers.push(this.addTimeds.pop());
- }
-
- // remove timed handlers that have been scheduled for deletion
- while (this.removeTimeds.length > 0) {
- thand = this.removeTimeds.pop();
- i = this.timedHandlers.indexOf(thand);
- if (i >= 0) {
- this.timedHandlers.splice(i, 1);
- }
- }
-
- // call ready timed handlers
- var now = new Date().getTime();
- newList = [];
- for (i = 0; i < this.timedHandlers.length; i++) {
- thand = this.timedHandlers[i];
- if (this.authenticated || !thand.user) {
- since = thand.lastCalled + thand.period;
- if (since - now <= 0) {
- if (thand.run()) {
- newList.push(thand);
- }
- } else {
- newList.push(thand);
- }
- }
- }
- this.timedHandlers = newList;
-
- clearTimeout(this._idleTimeout);
-
- this._proto._onIdle();
-
- // reactivate the timer only if connected
- if (this.connected) {
- // XXX: setTimeout should be called only with function expressions (23974bc1)
- this._idleTimeout = setTimeout(function() {
- this._onIdle();
- }.bind(this), 100);
- }
- }
-};
-
-/** Class: Strophe.SASLMechanism
- *
- * encapsulates SASL authentication mechanisms.
- *
- * User code may override the priority for each mechanism or disable it completely.
- * See <priority> for information about changing priority and <test> for informatian on
- * how to disable a mechanism.
- *
- * By default, all mechanisms are enabled and the priorities are
- *
- * EXTERNAL - 60
- * OAUTHBEARER - 50
- * SCRAM-SHA1 - 40
- * DIGEST-MD5 - 30
- * PLAIN - 20
- * ANONYMOUS - 10
- *
- * See: Strophe.Connection.addSupportedSASLMechanisms
- */
-
-/**
- * PrivateConstructor: Strophe.SASLMechanism
- * SASL auth mechanism abstraction.
- *
- * Parameters:
- * (String) name - SASL Mechanism name.
- * (Boolean) isClientFirst - If client should send response first without challenge.
- * (Number) priority - Priority.
- *
- * Returns:
- * A new Strophe.SASLMechanism object.
- */
-Strophe.SASLMechanism = function(name, isClientFirst, priority) {
- /** PrivateVariable: name
- * Mechanism name.
- */
- this.name = name;
- /** PrivateVariable: isClientFirst
- * If client sends response without initial server challenge.
- */
- this.isClientFirst = isClientFirst;
- /** Variable: priority
- * Determines which <SASLMechanism> is chosen for authentication (Higher is better).
- * Users may override this to prioritize mechanisms differently.
- *
- * In the default configuration the priorities are
- *
- * SCRAM-SHA1 - 40
- * DIGEST-MD5 - 30
- * Plain - 20
- *
- * Example: (This will cause Strophe to choose the mechanism that the server sent first)
- *
- * > Strophe.SASLMD5.priority = Strophe.SASLSHA1.priority;
- *
- * See <SASL mechanisms> for a list of available mechanisms.
- *
- */
- this.priority = priority;
-};
-
-Strophe.SASLMechanism.prototype = {
- /**
- * Function: test
- * Checks if mechanism able to run.
- * To disable a mechanism, make this return false;
- *
- * To disable plain authentication run
- * > Strophe.SASLPlain.test = function() {
- * > return false;
- * > }
- *
- * See <SASL mechanisms> for a list of available mechanisms.
- *
- * Parameters:
- * (Strophe.Connection) connection - Target Connection.
- *
- * Returns:
- * (Boolean) If mechanism was able to run.
- */
- /* jshint unused:false */
- test: function(connection) {
- return true;
- },
- /* jshint unused:true */
-
- /** PrivateFunction: onStart
- * Called before starting mechanism on some connection.
- *
- * Parameters:
- * (Strophe.Connection) connection - Target Connection.
- */
- onStart: function(connection) {
- this._connection = connection;
- },
-
- /** PrivateFunction: onChallenge
- * Called by protocol implementation on incoming challenge. If client is
- * first (isClientFirst == true) challenge will be null on the first call.
- *
- * Parameters:
- * (Strophe.Connection) connection - Target Connection.
- * (String) challenge - current challenge to handle.
- *
- * Returns:
- * (String) Mechanism response.
- */
- /* jshint unused:false */
- onChallenge: function(connection, challenge) {
- throw new Error("You should implement challenge handling!");
- },
- /* jshint unused:true */
-
- /** PrivateFunction: onFailure
- * Protocol informs mechanism implementation about SASL failure.
- */
- onFailure: function() {
- this._connection = null;
- },
-
- /** PrivateFunction: onSuccess
- * Protocol informs mechanism implementation about SASL success.
- */
- onSuccess: function() {
- this._connection = null;
- }
-};
-
- /** Constants: SASL mechanisms
- * Available authentication mechanisms
- *
- * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.
- * Strophe.SASLPlain - SASL PLAIN authentication.
- * Strophe.SASLMD5 - SASL DIGEST-MD5 authentication
- * Strophe.SASLSHA1 - SASL SCRAM-SHA1 authentication
- * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication
- * Strophe.SASLExternal - SASL EXTERNAL authentication
- */
-
-// Building SASL callbacks
-
-/** PrivateConstructor: SASLAnonymous
- * SASL ANONYMOUS authentication.
- */
-Strophe.SASLAnonymous = function() {};
-Strophe.SASLAnonymous.prototype = new Strophe.SASLMechanism("ANONYMOUS", false, 10);
-
-Strophe.SASLAnonymous.prototype.test = function(connection) {
- return connection.authcid === null;
-};
-
-
-/** PrivateConstructor: SASLPlain
- * SASL PLAIN authentication.
- */
-Strophe.SASLPlain = function() {};
-Strophe.SASLPlain.prototype = new Strophe.SASLMechanism("PLAIN", true, 20);
-
-Strophe.SASLPlain.prototype.test = function(connection) {
- return connection.authcid !== null;
-};
-
-Strophe.SASLPlain.prototype.onChallenge = function(connection) {
- var auth_str = connection.authzid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.authcid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.pass;
- return utils.utf16to8(auth_str);
-};
-
-
-/** PrivateConstructor: SASLSHA1
- * SASL SCRAM SHA 1 authentication.
- */
-Strophe.SASLSHA1 = function() {};
-Strophe.SASLSHA1.prototype = new Strophe.SASLMechanism("SCRAM-SHA-1", true, 40);
-
-Strophe.SASLSHA1.prototype.test = function(connection) {
- return connection.authcid !== null;
-};
-
-Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cnonce) {
- var cnonce = test_cnonce || MD5.hexdigest(Math.random() * 1234567890);
- var auth_str = "n=" + utils.utf16to8(connection.authcid);
- 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) {
- var nonce, salt, iter, Hi, U, U_old, i, k, pass;
- var clientKey, serverKey, clientSignature;
- var responseText = "c=biws,";
- var authMessage = connection._sasl_data["client-first-message-bare"] + "," +
- challenge + ",";
- var cnonce = connection._sasl_data.cnonce;
- var attribMatch = /([a-z]+)=([^,]+)(,|$)/;
-
- while (challenge.match(attribMatch)) {
- var matches = challenge.match(attribMatch);
- challenge = challenge.replace(matches[0], "");
- switch (matches[1]) {
- case "r":
- nonce = matches[2];
- break;
- case "s":
- salt = matches[2];
- break;
- case "i":
- iter = matches[2];
- break;
- }
- }
-
- if (nonce.substr(0, cnonce.length) !== cnonce) {
- connection._sasl_data = {};
- return connection._sasl_failure_cb();
- }
-
- responseText += "r=" + nonce;
- authMessage += responseText;
-
- salt = Base64.decode(salt);
- salt += "\x00\x00\x00\x01";
-
- pass = utils.utf16to8(connection.pass);
- Hi = U_old = SHA1.core_hmac_sha1(pass, salt);
- for (i = 1; i < iter; i++) {
- U = SHA1.core_hmac_sha1(pass, SHA1.binb2str(U_old));
- for (k = 0; k < 5; k++) {
- Hi[k] ^= U[k];
- }
- U_old = U;
- }
- Hi = SHA1.binb2str(Hi);
-
- clientKey = SHA1.core_hmac_sha1(Hi, "Client Key");
- serverKey = SHA1.str_hmac_sha1(Hi, "Server Key");
- clientSignature = SHA1.core_hmac_sha1(SHA1.str_sha1(SHA1.binb2str(clientKey)), authMessage);
- connection._sasl_data["server-signature"] = SHA1.b64_hmac_sha1(serverKey, authMessage);
-
- for (k = 0; k < 5; k++) {
- clientKey[k] ^= clientSignature[k];
- }
-
- responseText += ",p=" + Base64.encode(SHA1.binb2str(clientKey));
- return responseText;
- }.bind(this);
-
- return auth_str;
-};
-
-
-/** PrivateConstructor: SASLMD5
- * SASL DIGEST MD5 authentication.
- */
-Strophe.SASLMD5 = function() {};
-Strophe.SASLMD5.prototype = new Strophe.SASLMechanism("DIGEST-MD5", false, 30);
-
-Strophe.SASLMD5.prototype.test = function(connection) {
- return connection.authcid !== null;
-};
-
-/** PrivateFunction: _quote
- * _Private_ utility function to backslash escape and quote strings.
- *
- * Parameters:
- * (String) str - The string to be quoted.
- *
- * Returns:
- * quoted string
- */
-Strophe.SASLMD5.prototype._quote = function (str) {
- return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"';
- //" end string workaround for emacs
-};
-
-Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cnonce) {
- var attribMatch = /([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/;
- var cnonce = test_cnonce || MD5.hexdigest("" + (Math.random() * 1234567890));
- var realm = "";
- var host = null;
- var nonce = "";
- var qop = "";
- var matches;
-
- while (challenge.match(attribMatch)) {
- matches = challenge.match(attribMatch);
- challenge = challenge.replace(matches[0], "");
- matches[2] = matches[2].replace(/^"(.+)"$/, "$1");
- switch (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];
- break;
- }
- }
-
- var digest_uri = connection.servtype + "/" + connection.domain;
- if (host !== null) {
- digest_uri = digest_uri + "/" + host;
- }
-
- var cred = utils.utf16to8(connection.authcid + ":" + realm + ":" + this._connection.pass);
- var A1 = MD5.hash(cred) + ":" + nonce + ":" + cnonce;
- var A2 = 'AUTHENTICATE:' + digest_uri;
-
- var responseText = "";
- responseText += 'charset=utf-8,';
- responseText += 'username=' + this._quote(utils.utf16to8(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 "";
- };
- return responseText;
-};
-
-
-/** PrivateConstructor: SASLOAuthBearer
- * SASL OAuth Bearer authentication.
- */
-Strophe.SASLOAuthBearer = function() {};
-Strophe.SASLOAuthBearer.prototype = new Strophe.SASLMechanism("OAUTHBEARER", true, 50);
-
-Strophe.SASLOAuthBearer.prototype.test = function(connection) {
- return connection.authcid !== null;
-};
-
-Strophe.SASLOAuthBearer.prototype.onChallenge = function(connection) {
- var auth_str = 'n,a=';
- auth_str = auth_str + connection.authzid;
- auth_str = auth_str + ',';
- auth_str = auth_str + "\u0001";
- auth_str = auth_str + 'auth=Bearer ';
- auth_str = auth_str + connection.pass;
- auth_str = auth_str + "\u0001";
- auth_str = auth_str + "\u0001";
- return utils.utf16to8(auth_str);
-};
-
-
-/** PrivateConstructor: SASLExternal
- * SASL EXTERNAL authentication.
- *
- * The EXTERNAL mechanism allows a client to request the server to use
- * credentials established by means external to the mechanism to
- * authenticate the client. The external means may be, for instance,
- * TLS services.
- */
-Strophe.SASLExternal = function() {};
-Strophe.SASLExternal.prototype = new Strophe.SASLMechanism("EXTERNAL", true, 60);
-
-Strophe.SASLExternal.prototype.onChallenge = function(connection) {
- /** According to XEP-178, an authzid SHOULD NOT be presented when the
- * authcid contained or implied in the client certificate is the JID (i.e.
- * authzid) with which the user wants to log in as.
- *
- * To NOT send the authzid, the user should therefore set the authcid equal
- * to the JID when instantiating a new Strophe.Connection object.
- */
- return connection.authcid === connection.authzid ? '' : connection.authzid;
-};
-
-return {
- Strophe: Strophe,
- $build: $build,
- $msg: $msg,
- $iq: $iq,
- $pres: $pres,
- SHA1: SHA1,
- Base64: Base64,
- MD5: MD5,
-};
-}));
-
-/*
- This program is distributed under the terms of the MIT license.
- Please see the LICENSE file for details.
-
- Copyright 2006-2008, OGG, LLC
-*/
-
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/* global define, window, setTimeout, clearTimeout, XMLHttpRequest, ActiveXObject, Strophe, $build */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-bosh', ['strophe-core'], function (core) {
- return factory(
- core.Strophe,
- core.$build
- );
- });
- } else {
- // Browser globals
- return factory(Strophe, $build);
- }
-}(this, function (Strophe, $build) {
-
-/** PrivateClass: Strophe.Request
- * _Private_ helper class that provides a cross implementation abstraction
- * for a BOSH related XMLHttpRequest.
- *
- * The Strophe.Request class is used internally to encapsulate BOSH request
- * information. It is not meant to be used from user's code.
- */
-
-/** PrivateConstructor: Strophe.Request
- * Create and initialize a new Strophe.Request object.
- *
- * Parameters:
- * (XMLElement) elem - The XML data to be sent in the request.
- * (Function) func - The function that will be called when the
- * XMLHttpRequest readyState changes.
- * (Integer) rid - The BOSH rid attribute associated with this request.
- * (Integer) sends - The number of times this same request has been sent.
- */
-Strophe.Request = function (elem, func, rid, sends) {
- this.id = ++Strophe._requestId;
- this.xmlData = elem;
- this.data = Strophe.serialize(elem);
- // save original function in case we need to make a new request
- // from this one.
- this.origFunc = func;
- this.func = func;
- this.rid = rid;
- this.date = NaN;
- this.sends = sends || 0;
- this.abort = false;
- this.dead = null;
-
- this.age = function () {
- if (!this.date) { return 0; }
- var now = new Date();
- return (now - this.date) / 1000;
- };
- this.timeDead = function () {
- if (!this.dead) { return 0; }
- var now = new Date();
- return (now - this.dead) / 1000;
- };
- this.xhr = this._newXHR();
-};
-
-Strophe.Request.prototype = {
- /** PrivateFunction: getResponse
- * Get a response from the underlying XMLHttpRequest.
- *
- * This function attempts to get a response from the request and checks
- * for errors.
- *
- * Throws:
- * "parsererror" - A parser error occured.
- * "badformat" - The entity has sent XML that cannot be processed.
- *
- * Returns:
- * The DOM element tree of the response.
- */
- getResponse: function () {
- var node = null;
- if (this.xhr.responseXML && this.xhr.responseXML.documentElement) {
- node = this.xhr.responseXML.documentElement;
- if (node.tagName == "parsererror") {
- Strophe.error("invalid response received");
- Strophe.error("responseText: " + this.xhr.responseText);
- Strophe.error("responseXML: " +
- Strophe.serialize(this.xhr.responseXML));
- throw "parsererror";
- }
- } else if (this.xhr.responseText) {
- Strophe.error("invalid response received");
- Strophe.error("responseText: " + this.xhr.responseText);
- throw "badformat";
- }
-
- return node;
- },
-
- /** PrivateFunction: _newXHR
- * _Private_ helper function to create XMLHttpRequests.
- *
- * This function creates XMLHttpRequests across all implementations.
- *
- * Returns:
- * A new XMLHttpRequest.
- */
- _newXHR: function () {
- var xhr = null;
- if (window.XMLHttpRequest) {
- xhr = new XMLHttpRequest();
- if (xhr.overrideMimeType) {
- xhr.overrideMimeType("text/xml; charset=utf-8");
- }
- } else if (window.ActiveXObject) {
- xhr = new ActiveXObject("Microsoft.XMLHTTP");
- }
- // use Function.bind() to prepend ourselves as an argument
- xhr.onreadystatechange = this.func.bind(null, this);
- return xhr;
- }
-};
-
-/** Class: Strophe.Bosh
- * _Private_ helper class that handles BOSH Connections
- *
- * The Strophe.Bosh class is used internally by Strophe.Connection
- * to encapsulate BOSH sessions. It is not meant to be used from user's code.
- */
-
-/** File: bosh.js
- * A JavaScript library to enable BOSH in Strophejs.
- *
- * this library uses Bidirectional-streams Over Synchronous HTTP (BOSH)
- * to emulate a persistent, stateful, two-way connection to an XMPP server.
- * More information on BOSH can be found in XEP 124.
- */
-
-/** PrivateConstructor: Strophe.Bosh
- * Create and initialize a Strophe.Bosh object.
- *
- * Parameters:
- * (Strophe.Connection) connection - The Strophe.Connection that will use BOSH.
- *
- * Returns:
- * A new Strophe.Bosh object.
- */
-Strophe.Bosh = function(connection) {
- this._conn = connection;
- /* request id for body tags */
- this.rid = Math.floor(Math.random() * 4294967295);
- /* The current session ID. */
- this.sid = null;
-
- // default BOSH values
- this.hold = 1;
- this.wait = 60;
- this.window = 5;
- this.errors = 0;
- this.inactivity = null;
-
- this._requests = [];
-};
-
-Strophe.Bosh.prototype = {
- /** Variable: strip
- *
- * BOSH-Connections will have all stanzas wrapped in a <body> tag when
- * passed to <Strophe.Connection.xmlInput> or <Strophe.Connection.xmlOutput>.
- * To strip this tag, User code can set <Strophe.Bosh.strip> to "body":
- *
- * > Strophe.Bosh.prototype.strip = "body";
- *
- * This will enable stripping of the body tag in both
- * <Strophe.Connection.xmlInput> and <Strophe.Connection.xmlOutput>.
- */
- strip: null,
-
- /** PrivateFunction: _buildBody
- * _Private_ helper function to generate the <body/> wrapper for BOSH.
- *
- * Returns:
- * A Strophe.Builder with a <body/> element.
- */
- _buildBody: function () {
- var bodyWrap = $build('body', {
- rid: this.rid++,
- xmlns: Strophe.NS.HTTPBIND
- });
- if (this.sid !== null) {
- bodyWrap.attrs({sid: this.sid});
- }
- if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) {
- this._cacheSession();
- }
- return bodyWrap;
- },
-
- /** PrivateFunction: _reset
- * Reset the connection.
- *
- * This function is called by the reset function of the Strophe Connection
- */
- _reset: function () {
- this.rid = Math.floor(Math.random() * 4294967295);
- this.sid = null;
- this.errors = 0;
- if (this._conn._sessionCachingSupported()) {
- window.sessionStorage.removeItem('strophe-bosh-session');
- }
-
- this._conn.nextValidRid(this.rid);
- },
-
- /** PrivateFunction: _connect
- * _Private_ function that initializes the BOSH connection.
- *
- * Creates and sends the Request that initializes the BOSH connection.
- */
- _connect: function (wait, hold, route) {
- this.wait = wait || this.wait;
- this.hold = hold || this.hold;
- this.errors = 0;
-
- // build the body tag
- 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
- });
-
- if(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();
- },
-
- /** PrivateFunction: _attach
- * Attach to an already created and authenticated BOSH session.
- *
- * This function is provided to allow Strophe to attach to BOSH
- * sessions which have been created externally, perhaps by a Web
- * application. This is often used to support auto-login type features
- * without putting user credentials into the page.
- *
- * Parameters:
- * (String) jid - The full JID that is bound by the session.
- * (String) sid - The SID of the BOSH session.
- * (String) rid - The current RID of the BOSH session. This RID
- * will be used by the next request.
- * (Function) callback The connect callback function.
- * (Integer) wait - The optional HTTPBIND wait value. This is the
- * time the server will wait before returning an empty result for
- * a request. The default setting of 60 seconds is recommended.
- * Other settings will require tweaks to the Strophe.TIMEOUT value.
- * (Integer) hold - The optional HTTPBIND hold value. This is the
- * number of connections the server will hold at one time. This
- * should almost always be set to 1 (the default).
- * (Integer) wind - The optional HTTBIND window value. This is the
- * allowed range of request ids that are valid. The default is 5.
- */
- _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 = true;
- this._conn.connected = true;
-
- this.wait = wait || this.wait;
- this.hold = hold || this.hold;
- this.window = wind || this.window;
-
- this._conn._changeConnectStatus(Strophe.Status.ATTACHED, null);
- },
-
- /** PrivateFunction: _restore
- * Attempt to restore a cached BOSH session
- *
- * Parameters:
- * (String) jid - The full JID that is bound by the session.
- * This parameter is optional but recommended, specifically in cases
- * where prebinded BOSH sessions are used where it's important to know
- * that the right session is being restored.
- * (Function) callback The connect callback function.
- * (Integer) wait - The optional HTTPBIND wait value. This is the
- * time the server will wait before returning an empty result for
- * a request. The default setting of 60 seconds is recommended.
- * Other settings will require tweaks to the Strophe.TIMEOUT value.
- * (Integer) hold - The optional HTTPBIND hold value. This is the
- * number of connections the server will hold at one time. This
- * should almost always be set to 1 (the default).
- * (Integer) wind - The optional HTTBIND window value. This is the
- * allowed range of request ids that are valid. The default is 5.
- */
- _restore: function (jid, callback, wait, hold, wind) {
- var session = JSON.parse(window.sessionStorage.getItem('strophe-bosh-session'));
- if (typeof session !== "undefined" &&
- session !== null &&
- session.rid &&
- session.sid &&
- session.jid &&
- (typeof jid === "undefined" || jid === null || Strophe.getBareJidFromJid(session.jid) == Strophe.getBareJidFromJid(jid)))
- {
- this._conn.restored = true;
- this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind);
- } else {
- throw { name: "StropheSessionError", message: "_restore: no restoreable session." };
- }
- },
-
- /** PrivateFunction: _cacheSession
- * _Private_ handler for the beforeunload event.
- *
- * This handler is used to process the Bosh-part of the initial request.
- * Parameters:
- * (Strophe.Request) bodyWrap - The received stanza.
- */
- _cacheSession: function () {
- if (this._conn.authenticated) {
- if (this._conn.jid && this.rid && this.sid) {
- window.sessionStorage.setItem('strophe-bosh-session', JSON.stringify({
- 'jid': this._conn.jid,
- 'rid': this.rid,
- 'sid': this.sid
- }));
- }
- } else {
- window.sessionStorage.removeItem('strophe-bosh-session');
- }
- },
-
- /** PrivateFunction: _connect_cb
- * _Private_ handler for initial connection request.
- *
- * This handler is used to process the Bosh-part of the initial request.
- * Parameters:
- * (Strophe.Request) bodyWrap - The received stanza.
- */
- _connect_cb: function (bodyWrap) {
- var typ = bodyWrap.getAttribute("type");
- var cond, conflict;
- if (typ !== null && typ == "terminate") {
- // an error occurred
- cond = bodyWrap.getAttribute("condition");
- Strophe.error("BOSH-Connection failed: " + cond);
- conflict = bodyWrap.getElementsByTagName("conflict");
- if (cond !== null) {
- if (cond == "remote-stream-error" && conflict.length > 0) {
- cond = "conflict";
- }
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, cond);
- } else {
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "unknown");
- }
- this._conn._doDisconnect(cond);
- return Strophe.Status.CONNFAIL;
- }
-
- // check to make sure we don't overwrite these if _connect_cb is
- // called multiple times in the case of missing stream:features
- if (!this.sid) {
- this.sid = bodyWrap.getAttribute("sid");
- }
- var wind = bodyWrap.getAttribute('requests');
- if (wind) { this.window = parseInt(wind, 10); }
- var hold = bodyWrap.getAttribute('hold');
- if (hold) { this.hold = parseInt(hold, 10); }
- var wait = bodyWrap.getAttribute('wait');
- if (wait) { this.wait = parseInt(wait, 10); }
- var inactivity = bodyWrap.getAttribute('inactivity');
- if (inactivity) { this.inactivity = parseInt(inactivity, 10); }
- },
-
- /** PrivateFunction: _disconnect
- * _Private_ part of Connection.disconnect for Bosh
- *
- * Parameters:
- * (Request) pres - This stanza will be sent before disconnecting.
- */
- _disconnect: function (pres) {
- this._sendTerminate(pres);
- },
-
- /** PrivateFunction: _doDisconnect
- * _Private_ function to disconnect.
- *
- * Resets the SID and RID.
- */
- _doDisconnect: function () {
- this.sid = null;
- this.rid = Math.floor(Math.random() * 4294967295);
- if (this._conn._sessionCachingSupported()) {
- window.sessionStorage.removeItem('strophe-bosh-session');
- }
-
- this._conn.nextValidRid(this.rid);
- },
-
- /** PrivateFunction: _emptyQueue
- * _Private_ function to check if the Request queue is empty.
- *
- * Returns:
- * True, if there are no Requests queued, False otherwise.
- */
- _emptyQueue: function () {
- return this._requests.length === 0;
- },
-
- /** PrivateFunction: _callProtocolErrorHandlers
- * _Private_ function to call error handlers registered for HTTP errors.
- *
- * Parameters:
- * (Strophe.Request) req - The request that is changing readyState.
- */
- _callProtocolErrorHandlers: function (req) {
- var reqStatus = this._getRequestStatus(req),
- err_callback;
- err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus];
- if (err_callback) {
- err_callback.call(this, reqStatus);
- }
- },
-
- /** PrivateFunction: _hitError
- * _Private_ function to handle the error count.
- *
- * Requests are resent automatically until their error count reaches
- * 5. Each time an error is encountered, this function is called to
- * increment the count and disconnect if the count is too high.
- *
- * Parameters:
- * (Integer) reqStatus - The request status.
- */
- _hitError: function (reqStatus) {
- this.errors++;
- Strophe.warn("request errored, status: " + reqStatus +
- ", number of errors: " + this.errors);
- if (this.errors > 4) {
- this._conn._onDisconnectTimeout();
- }
- },
-
- /** PrivateFunction: _no_auth_received
- *
- * Called on stream start/restart when no stream:features
- * has been received and sends a blank poll request.
- */
- _no_auth_received: function (_callback) {
- if (_callback) {
- _callback = _callback.bind(this._conn);
- } else {
- _callback = 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();
- },
-
- /** PrivateFunction: _onDisconnectTimeout
- * _Private_ timeout handler for handling non-graceful disconnection.
- *
- * Cancels all remaining Requests and clears the queue.
- */
- _onDisconnectTimeout: function () {
- this._abortAllRequests();
- },
-
- /** PrivateFunction: _abortAllRequests
- * _Private_ helper function that makes sure all pending requests are aborted.
- */
- _abortAllRequests: function _abortAllRequests() {
- var req;
- while (this._requests.length > 0) {
- req = this._requests.pop();
- req.abort = true;
- req.xhr.abort();
- // jslint complains, but this is fine. setting to empty func
- // is necessary for IE6
- req.xhr.onreadystatechange = function () {}; // jshint ignore:line
- }
- },
-
- /** PrivateFunction: _onIdle
- * _Private_ handler called by Strophe.Connection._onIdle
- *
- * Sends all queued Requests or polls with empty Request if there are none.
- */
- _onIdle: function () {
- var data = this._conn._data;
- // if no requests are in progress, poll
- if (this._conn.authenticated && this._requests.length === 0 &&
- data.length === 0 && !this._conn.disconnecting) {
- Strophe.info("no requests during idle cycle, sending " +
- "blank request");
- data.push(null);
- }
-
- if (this._conn.paused) {
- return;
- }
-
- if (this._requests.length < 2 && data.length > 0) {
- var body = this._buildBody();
- for (var i = 0; i < data.length; i++) {
- if (data[i] !== null) {
- if (data[i] === "restart") {
- body.attrs({
- to: this._conn.domain,
- "xml:lang": "en",
- "xmpp:restart": "true",
- "xmlns:xmpp": Strophe.NS.BOSH
- });
- } else {
- 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._throttledRequestHandler();
- }
-
- if (this._requests.length > 0) {
- var time_elapsed = this._requests[0].age();
- if (this._requests[0].dead !== null) {
- if (this._requests[0].timeDead() >
- Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait)) {
- this._throttledRequestHandler();
- }
- }
-
- if (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();
- }
- }
- },
-
- /** PrivateFunction: _getRequestStatus
- *
- * Returns the HTTP status code from a Strophe.Request
- *
- * Parameters:
- * (Strophe.Request) req - The Strophe.Request instance.
- * (Integer) def - The default value that should be returned if no
- * status value was found.
- */
- _getRequestStatus: function (req, def) {
- var reqStatus;
- if (req.xhr.readyState == 4) {
- try {
- reqStatus = req.xhr.status;
- } catch (e) {
- // ignore errors from undefined status attribute. Works
- // around a browser bug
- Strophe.error(
- "Caught an error while retrieving a request's status, " +
- "reqStatus: " + reqStatus);
- }
- }
- if (typeof(reqStatus) == "undefined") {
- reqStatus = typeof def === 'number' ? def : 0;
- }
- return reqStatus;
- },
-
- /** PrivateFunction: _onRequestStateChange
- * _Private_ handler for Strophe.Request state changes.
- *
- * This function is called when the XMLHttpRequest readyState changes.
- * It contains a lot of error handling logic for the many ways that
- * requests can fail, and calls the request callback when requests
- * succeed.
- *
- * Parameters:
- * (Function) func - The handler for the request.
- * (Strophe.Request) req - The request that is changing readyState.
- */
- _onRequestStateChange: function (func, req) {
- Strophe.debug("request id "+req.id+"."+req.sends+
- " state changed to "+req.xhr.readyState);
- if (req.abort) {
- req.abort = false;
- return;
- }
- if (req.xhr.readyState !== 4) {
- // The request is not yet complete
- return;
- }
- var reqStatus = this._getRequestStatus(req);
- if (this.disconnecting && reqStatus >= 400) {
- this._hitError(reqStatus);
- this._callProtocolErrorHandlers(req);
- return;
- }
-
- if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
- // remove from internal queue
- this._removeRequest(req);
- Strophe.debug("request id "+req.id+" should now be removed");
- }
-
- if (reqStatus == 200) {
- // request succeeded
- var reqIs0 = (this._requests[0] == req);
- var reqIs1 = (this._requests[1] == req);
- // if request 1 finished, or request 0 finished and request
- // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to
- // restart the other - both will be in the first spot, as the
- // completed request has been removed from the queue already
- if (reqIs1 ||
- (reqIs0 && this._requests.length > 0 &&
- this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) {
- this._restartRequest(0);
- }
- this._conn.nextValidRid(Number(req.rid) + 1);
- Strophe.debug("request id "+req.id+"."+req.sends+" got 200");
- func(req); // call handler
- this.errors = 0;
- } else if (reqStatus === 0 ||
- (reqStatus >= 400 && reqStatus < 600) ||
- reqStatus >= 12000) {
- // request failed
- Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
- this._hitError(reqStatus);
- this._callProtocolErrorHandlers(req);
- if (reqStatus >= 400 && reqStatus < 500) {
- this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null);
- this._conn._doDisconnect();
- }
- } else {
- Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
- }
- if (!(reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
- this._throttledRequestHandler();
- }
- },
-
- /** PrivateFunction: _processRequest
- * _Private_ function to process a request in the queue.
- *
- * This function takes requests off the queue and sends them and
- * restarts dead requests.
- *
- * Parameters:
- * (Integer) i - The index of the request in the queue.
- */
- _processRequest: function (i) {
- var self = this;
- var req = this._requests[i];
- var reqStatus = this._getRequestStatus(req, -1);
-
- // make sure we limit the number of retries
- if (req.sends > this._conn.maxRetries) {
- this._conn._onDisconnectTimeout();
- return;
- }
-
- var time_elapsed = req.age();
- var primaryTimeout = (!isNaN(time_elapsed) &&
- time_elapsed > Math.floor(Strophe.TIMEOUT * this.wait));
- var secondaryTimeout = (req.dead !== null &&
- req.timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait));
- var requestCompletedWithServerError = (req.xhr.readyState == 4 &&
- (reqStatus < 1 || reqStatus >= 500));
- if (primaryTimeout || secondaryTimeout ||
- requestCompletedWithServerError) {
- if (secondaryTimeout) {
- Strophe.error("Request " + this._requests[i].id +
- " timed out (secondary), restarting");
- }
- req.abort = true;
- req.xhr.abort();
- // setting to null fails on IE6, so set to empty function
- req.xhr.onreadystatechange = function () {};
- this._requests[i] = new Strophe.Request(req.xmlData,
- req.origFunc,
- req.rid,
- req.sends);
- req = this._requests[i];
- }
-
- if (req.xhr.readyState === 0) {
- Strophe.debug("request id "+req.id+"."+req.sends+" posting");
-
- try {
- var contentType = this._conn.options.contentType || "text/xml; charset=utf-8";
- req.xhr.open("POST", this._conn.service, this._conn.options.sync ? false : true);
- if (typeof req.xhr.setRequestHeader !== 'undefined') {
- // IE9 doesn't have setRequestHeader
- req.xhr.setRequestHeader("Content-Type", contentType);
- }
- if (this._conn.options.withCredentials) {
- req.xhr.withCredentials = true;
- }
- } catch (e2) {
- Strophe.error("XHR open failed.");
- if (!this._conn.connected) {
- this._conn._changeConnectStatus(
- Strophe.Status.CONNFAIL, "bad-service");
- }
- this._conn.disconnect();
- return;
- }
-
- // Fires the XHR request -- may be invoked immediately
- // or on a gradually expanding retry window for reconnects
- var sendFunc = function () {
- req.date = new Date();
- if (self._conn.options.customHeaders){
- var headers = self._conn.options.customHeaders;
- for (var header in headers) {
- if (headers.hasOwnProperty(header)) {
- req.xhr.setRequestHeader(header, headers[header]);
- }
- }
- }
- req.xhr.send(req.data);
- };
-
- // Implement progressive backoff for reconnects --
- // First retry (send == 1) should also be instantaneous
- if (req.sends > 1) {
- // Using a cube of the retry number creates a nicely
- // expanding retry window
- var backoff = Math.min(Math.floor(Strophe.TIMEOUT * this.wait),
- Math.pow(req.sends, 3)) * 1000;
- setTimeout(function() {
- // XXX: setTimeout should be called only with function expressions (23974bc1)
- sendFunc();
- }, backoff);
- } else {
- sendFunc();
- }
-
- req.sends++;
-
- if (this._conn.xmlOutput !== Strophe.Connection.prototype.xmlOutput) {
- if (req.xmlData.nodeName === this.strip && req.xmlData.childNodes.length) {
- this._conn.xmlOutput(req.xmlData.childNodes[0]);
- } else {
- this._conn.xmlOutput(req.xmlData);
- }
- }
- if (this._conn.rawOutput !== Strophe.Connection.prototype.rawOutput) {
- this._conn.rawOutput(req.data);
- }
- } else {
- Strophe.debug("_processRequest: " +
- (i === 0 ? "first" : "second") +
- " request has readyState of " +
- req.xhr.readyState);
- }
- },
-
- /** PrivateFunction: _removeRequest
- * _Private_ function to remove a request from the queue.
- *
- * Parameters:
- * (Strophe.Request) req - The request to remove.
- */
- _removeRequest: function (req) {
- Strophe.debug("removing request");
- var i;
- for (i = this._requests.length - 1; i >= 0; i--) {
- if (req == this._requests[i]) {
- this._requests.splice(i, 1);
- }
- }
- // IE6 fails on setting to null, so set to empty function
- req.xhr.onreadystatechange = function () {};
- this._throttledRequestHandler();
- },
-
- /** PrivateFunction: _restartRequest
- * _Private_ function to restart a request that is presumed dead.
- *
- * Parameters:
- * (Integer) i - The index of the request in the queue.
- */
- _restartRequest: function (i) {
- var req = this._requests[i];
- if (req.dead === null) {
- req.dead = new Date();
- }
-
- this._processRequest(i);
- },
-
- /** PrivateFunction: _reqToData
- * _Private_ function to get a stanza out of a request.
- *
- * Tries to extract a stanza out of a Request Object.
- * When this fails the current connection will be disconnected.
- *
- * Parameters:
- * (Object) req - The Request.
- *
- * Returns:
- * The stanza that was passed.
- */
- _reqToData: function (req) {
- try {
- return req.getResponse();
- } catch (e) {
- if (e != "parsererror") { throw e; }
- this._conn.disconnect("strophe-parsererror");
- }
- },
-
- /** PrivateFunction: _sendTerminate
- * _Private_ function to send initial disconnect sequence.
- *
- * This is the first step in a graceful disconnect. It sends
- * the BOSH server a terminate body and includes an unavailable
- * presence if authentication has completed.
- */
- _sendTerminate: function (pres) {
- Strophe.info("_sendTerminate was called");
- var body = this._buildBody().attrs({type: "terminate"});
- if (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();
- },
-
- /** PrivateFunction: _send
- * _Private_ part of the Connection.send function for BOSH
- *
- * Just triggers the RequestHandler to send the messages that are in the queue
- */
- _send: function () {
- clearTimeout(this._conn._idleTimeout);
- this._throttledRequestHandler();
-
- // XXX: setTimeout should be called only with function expressions (23974bc1)
- this._conn._idleTimeout = setTimeout(function() {
- this._onIdle();
- }.bind(this._conn), 100);
- },
-
- /** PrivateFunction: _sendRestart
- *
- * Send an xmpp:restart stanza.
- */
- _sendRestart: function () {
- this._throttledRequestHandler();
- clearTimeout(this._conn._idleTimeout);
- },
-
- /** PrivateFunction: _throttledRequestHandler
- * _Private_ function to throttle requests to the connection window.
- *
- * This function makes sure we don't send requests so fast that the
- * request ids overflow the connection window in the case that one
- * request died.
- */
- _throttledRequestHandler: function () {
- if (!this._requests) {
- Strophe.debug("_throttledRequestHandler called with " +
- "undefined requests");
- } else {
- Strophe.debug("_throttledRequestHandler called with " +
- this._requests.length + " requests");
- }
-
- if (!this._requests || this._requests.length === 0) {
- return;
- }
-
- if (this._requests.length > 0) {
- this._processRequest(0);
- }
-
- if (this._requests.length > 1 &&
- Math.abs(this._requests[0].rid -
- this._requests[1].rid) < this.window) {
- this._processRequest(1);
- }
- }
-};
-return Strophe;
-}));
-
-/*
- This program is distributed under the terms of the MIT license.
- Please see the LICENSE file for details.
-
- Copyright 2006-2008, OGG, LLC
-*/
-
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/* global define, window, clearTimeout, WebSocket, DOMParser, Strophe, $build */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define('strophe-websocket', ['strophe-core'], function (core) {
- return factory(
- core.Strophe,
- core.$build
- );
- });
- } else {
- // Browser globals
- return factory(Strophe, $build);
- }
-}(this, function (Strophe, $build) {
-
-/** Class: Strophe.WebSocket
- * _Private_ helper class that handles WebSocket Connections
- *
- * The Strophe.WebSocket class is used internally by Strophe.Connection
- * to encapsulate WebSocket sessions. It is not meant to be used from user's code.
- */
-
-/** File: websocket.js
- * A JavaScript library to enable XMPP over Websocket in Strophejs.
- *
- * This file implements XMPP over WebSockets for Strophejs.
- * If a Connection is established with a Websocket url (ws://...)
- * Strophe will use WebSockets.
- * For more information on XMPP-over-WebSocket see RFC 7395:
- * http://tools.ietf.org/html/rfc7395
- *
- * WebSocket support implemented by Andreas Guth (andreas.guth@rwth-aachen.de)
- */
-
-/** PrivateConstructor: Strophe.Websocket
- * Create and initialize a Strophe.WebSocket object.
- * Currently only sets the connection Object.
- *
- * Parameters:
- * (Strophe.Connection) connection - The Strophe.Connection that will use WebSockets.
- *
- * Returns:
- * A new Strophe.WebSocket object.
- */
-Strophe.Websocket = function(connection) {
- this._conn = connection;
- this.strip = "wrapper";
-
- var service = connection.service;
- if (service.indexOf("ws:") !== 0 && service.indexOf("wss:") !== 0) {
- // If the service is not an absolute URL, assume it is a path and put the absolute
- // URL together from options, current URL and the path.
- var new_service = "";
-
- if (connection.options.protocol === "ws" && window.location.protocol !== "https:") {
- new_service += "ws";
- } else {
- new_service += "wss";
- }
-
- new_service += "://" + window.location.host;
-
- if (service.indexOf("/") !== 0) {
- new_service += window.location.pathname + service;
- } else {
- new_service += service;
- }
-
- connection.service = new_service;
- }
-};
-
-Strophe.Websocket.prototype = {
- /** PrivateFunction: _buildStream
- * _Private_ helper function to generate the <stream> start tag for WebSockets
- *
- * Returns:
- * A Strophe.Builder with a <stream> element.
- */
- _buildStream: function () {
- return $build("open", {
- "xmlns": Strophe.NS.FRAMING,
- "to": this._conn.domain,
- "version": '1.0'
- });
- },
-
- /** PrivateFunction: _check_streamerror
- * _Private_ checks a message for stream:error
- *
- * Parameters:
- * (Strophe.Request) bodyWrap - The received stanza.
- * connectstatus - The ConnectStatus that will be set on error.
- * Returns:
- * true if there was a streamerror, false otherwise.
- */
- _check_streamerror: function (bodyWrap, connectstatus) {
- var errors;
- if (bodyWrap.getElementsByTagNameNS) {
- errors = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, "error");
- } else {
- errors = bodyWrap.getElementsByTagName("stream:error");
- }
- if (errors.length === 0) {
- return false;
- }
- var error = errors[0];
-
- var condition = "";
- var text = "";
-
- var ns = "urn:ietf:params:xml:ns:xmpp-streams";
- for (var i = 0; i < error.childNodes.length; i++) {
- var e = error.childNodes[i];
- if (e.getAttribute("xmlns") !== ns) {
- break;
- } if (e.nodeName === "text") {
- text = e.textContent;
- } else {
- condition = e.nodeName;
- }
- }
-
- var errorString = "WebSocket stream error: ";
-
- if (condition) {
- errorString += condition;
- } else {
- errorString += "unknown";
- }
-
- if (text) {
- errorString += " - " + condition;
- }
-
- Strophe.error(errorString);
-
- // close the connection on stream_error
- this._conn._changeConnectStatus(connectstatus, condition);
- this._conn._doDisconnect();
- return true;
- },
-
- /** PrivateFunction: _reset
- * Reset the connection.
- *
- * This function is called by the reset function of the Strophe Connection.
- * Is not needed by WebSockets.
- */
- _reset: function () {
- return;
- },
-
- /** PrivateFunction: _connect
- * _Private_ function called by Strophe.Connection.connect
- *
- * Creates a WebSocket for a connection and assigns Callbacks to it.
- * Does nothing if there already is a WebSocket.
- */
- _connect: function () {
- // Ensure that there is no open WebSocket from a previous Connection.
- this._closeSocket();
-
- // Create the new WobSocket
- 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);
- },
-
- /** PrivateFunction: _connect_cb
- * _Private_ function called by Strophe.Connection._connect_cb
- *
- * checks for stream:error
- *
- * Parameters:
- * (Strophe.Request) bodyWrap - The received stanza.
- */
- _connect_cb: function(bodyWrap) {
- var error = this._check_streamerror(bodyWrap, Strophe.Status.CONNFAIL);
- if (error) {
- return Strophe.Status.CONNFAIL;
- }
- },
-
- /** PrivateFunction: _handleStreamStart
- * _Private_ function that checks the opening <open /> tag for errors.
- *
- * Disconnects if there is an error and returns false, true otherwise.
- *
- * Parameters:
- * (Node) message - Stanza containing the <open /> tag.
- */
- _handleStreamStart: function(message) {
- var error = false;
-
- // Check for errors in the <open /> tag
- var ns = message.getAttribute("xmlns");
- if (typeof ns !== "string") {
- error = "Missing xmlns in <open />";
- } else if (ns !== Strophe.NS.FRAMING) {
- error = "Wrong xmlns in <open />: " + ns;
- }
-
- var ver = message.getAttribute("version");
- if (typeof ver !== "string") {
- error = "Missing version in <open />";
- } else if (ver !== "1.0") {
- error = "Wrong version in <open />: " + ver;
- }
-
- if (error) {
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, error);
- this._conn._doDisconnect();
- return false;
- }
-
- return true;
- },
-
- /** PrivateFunction: _connect_cb_wrapper
- * _Private_ function that handles the first connection messages.
- *
- * On receiving an opening stream tag this callback replaces itself with the real
- * message handler. On receiving a stream error the connection is terminated.
- */
- _connect_cb_wrapper: function(message) {
- if (message.data.indexOf("<open ") === 0 || message.data.indexOf("<?xml") === 0) {
- // Strip the XML Declaration, if there is one
- var data = message.data.replace(/^(<\?.*?\?>\s*)*/, "");
- if (data === '') return;
-
- var streamStart = new DOMParser().parseFromString(data, "text/xml").documentElement;
- this._conn.xmlInput(streamStart);
- this._conn.rawInput(message.data);
-
- //_handleStreamSteart will check for XML errors and disconnect on error
- if (this._handleStreamStart(streamStart)) {
- //_connect_cb will check for stream:error and disconnect on error
- this._connect_cb(streamStart);
- }
- } else if (message.data.indexOf("<close ") === 0) { //'<close xmlns="urn:ietf:params:xml:ns:xmpp-framing />') {
- this._conn.rawInput(message.data);
- this._conn.xmlInput(message);
- var see_uri = message.getAttribute("see-other-uri");
- if (see_uri) {
- this._conn._changeConnectStatus(Strophe.Status.REDIRECT, "Received see-other-uri, resetting connection");
- this._conn.reset();
- this._conn.service = see_uri;
- this._connect();
- } else {
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "Received closing stream");
- this._conn._doDisconnect();
- }
- } else {
- var string = this._streamWrap(message.data);
- var elem = new DOMParser().parseFromString(string, "text/xml").documentElement;
- this.socket.onmessage = this._onMessage.bind(this);
- this._conn._connect_cb(elem, null, message.data);
- }
- },
-
- /** PrivateFunction: _disconnect
- * _Private_ function called by Strophe.Connection.disconnect
- *
- * Disconnects and sends a last stanza if one is given
- *
- * Parameters:
- * (Request) pres - This stanza will be sent before disconnecting.
- */
- _disconnect: function (pres) {
- if (this.socket && this.socket.readyState !== WebSocket.CLOSED) {
- if (pres) {
- this._conn.send(pres);
- }
- var close = $build("close", { "xmlns": Strophe.NS.FRAMING });
- this._conn.xmlOutput(close);
- var closeString = Strophe.serialize(close);
- this._conn.rawOutput(closeString);
- try {
- this.socket.send(closeString);
- } catch (e) {
- Strophe.info("Couldn't send <close /> tag.");
- }
- }
- this._conn._doDisconnect();
- },
-
- /** PrivateFunction: _doDisconnect
- * _Private_ function to disconnect.
- *
- * Just closes the Socket for WebSockets
- */
- _doDisconnect: function () {
- Strophe.info("WebSockets _doDisconnect was called");
- this._closeSocket();
- },
-
- /** PrivateFunction _streamWrap
- * _Private_ helper function to wrap a stanza in a <stream> tag.
- * This is used so Strophe can process stanzas from WebSockets like BOSH
- */
- _streamWrap: function (stanza) {
- return "<wrapper>" + stanza + '</wrapper>';
- },
-
-
- /** PrivateFunction: _closeSocket
- * _Private_ function to close the WebSocket.
- *
- * Closes the socket if it is still open and deletes it
- */
- _closeSocket: function () {
- if (this.socket) { try {
- this.socket.close();
- } catch (e) {} }
- this.socket = null;
- },
-
- /** PrivateFunction: _emptyQueue
- * _Private_ function to check if the message queue is empty.
- *
- * Returns:
- * True, because WebSocket messages are send immediately after queueing.
- */
- _emptyQueue: function () {
- return true;
- },
-
- /** PrivateFunction: _onClose
- * _Private_ function to handle websockets closing.
- *
- * Nothing to do here for WebSockets
- */
- _onClose: function() {
- if(this._conn.connected && !this._conn.disconnecting) {
- Strophe.error("Websocket closed unexpectedly");
- this._conn._doDisconnect();
- } else {
- Strophe.info("Websocket closed");
- }
- },
-
- /** PrivateFunction: _no_auth_received
- *
- * Called on stream start/restart when no stream:features
- * has been received.
- */
- _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");
- if (_callback) {
- _callback = _callback.bind(this._conn);
- _callback();
- }
- this._conn._doDisconnect();
- },
-
- /** PrivateFunction: _onDisconnectTimeout
- * _Private_ timeout handler for handling non-graceful disconnection.
- *
- * This does nothing for WebSockets
- */
- _onDisconnectTimeout: function () {},
-
- /** PrivateFunction: _abortAllRequests
- * _Private_ helper function that makes sure all pending requests are aborted.
- */
- _abortAllRequests: function () {},
-
- /** PrivateFunction: _onError
- * _Private_ function to handle websockets errors.
- *
- * Parameters:
- * (Object) error - The websocket error.
- */
- _onError: function(error) {
- Strophe.error("Websocket error " + error);
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "The WebSocket connection could not be established or was disconnected.");
- this._disconnect();
- },
-
- /** PrivateFunction: _onIdle
- * _Private_ function called by Strophe.Connection._onIdle
- *
- * sends all queued stanzas
- */
- _onIdle: function () {
- var data = this._conn._data;
- if (data.length > 0 && !this._conn.paused) {
- for (var i = 0; i < data.length; i++) {
- if (data[i] !== null) {
- var stanza, rawStanza;
- if (data[i] === "restart") {
- stanza = this._buildStream().tree();
- } else {
- stanza = data[i];
- }
- rawStanza = Strophe.serialize(stanza);
- this._conn.xmlOutput(stanza);
- this._conn.rawOutput(rawStanza);
- this.socket.send(rawStanza);
- }
- }
- this._conn._data = [];
- }
- },
-
- /** PrivateFunction: _onMessage
- * _Private_ function to handle websockets messages.
- *
- * This function parses each of the messages as if they are full documents.
- * [TODO : We may actually want to use a SAX Push parser].
- *
- * Since all XMPP traffic starts with
- * <stream:stream version='1.0'
- * xml:lang='en'
- * xmlns='jabber:client'
- * xmlns:stream='http://etherx.jabber.org/streams'
- * id='3697395463'
- * from='SERVER'>
- *
- * The first stanza will always fail to be parsed.
- *
- * Additionally, the seconds stanza will always be <stream:features> with
- * the stream NS defined in the previous stanza, so we need to 'force'
- * the inclusion of the NS in this stanza.
- *
- * Parameters:
- * (string) message - The websocket message.
- */
- _onMessage: function(message) {
- var elem, data;
- // check for closing stream
- var close = '<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />';
- if (message.data === close) {
- this._conn.rawInput(close);
- this._conn.xmlInput(message);
- if (!this._conn.disconnecting) {
- this._conn._doDisconnect();
- }
- return;
- } else if (message.data.search("<open ") === 0) {
- // This handles stream restarts
- elem = new DOMParser().parseFromString(message.data, "text/xml").documentElement;
- if (!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;
- }
-
- //handle unavailable presence stanza before disconnecting
- if (this._conn.disconnecting &&
- elem.firstChild.nodeName === "presence" &&
- elem.firstChild.getAttribute("type") === "unavailable") {
- this._conn.xmlInput(elem);
- this._conn.rawInput(Strophe.serialize(elem));
- // if we are already disconnecting we will ignore the unavailable stanza and
- // wait for the </stream:stream> tag before we close the connection
- return;
- }
- this._conn._dataRecv(elem, message.data);
- },
-
- /** PrivateFunction: _onOpen
- * _Private_ function to handle websockets connection setup.
- *
- * The opening stream tag is sent here.
- */
- _onOpen: function() {
- Strophe.info("Websocket open");
- var start = this._buildStream();
- this._conn.xmlOutput(start.tree());
-
- var startString = Strophe.serialize(start);
- this._conn.rawOutput(startString);
- this.socket.send(startString);
- },
-
- /** PrivateFunction: _reqToData
- * _Private_ function to get a stanza out of a request.
- *
- * WebSockets don't use requests, so the passed argument is just returned.
- *
- * Parameters:
- * (Object) stanza - The stanza.
- *
- * Returns:
- * The stanza that was passed.
- */
- _reqToData: function (stanza) {
- return stanza;
- },
-
- /** PrivateFunction: _send
- * _Private_ part of the Connection.send function for WebSocket
- *
- * Just flushes the messages that are in the queue
- */
- _send: function () {
- this._conn.flush();
- },
-
- /** PrivateFunction: _sendRestart
- *
- * Send an xmpp:restart stanza.
- */
- _sendRestart: function () {
- clearTimeout(this._conn._idleTimeout);
- this._conn._onIdle.bind(this._conn)();
- }
-};
-return Strophe;
-}));
-
-(function(root){
- if(typeof define === 'function' && define.amd){
- define("strophe", [
- "strophe-core",
- "strophe-bosh",
- "strophe-websocket"
- ], function (wrapper) {
- return wrapper;
- });
- }
-})(this);
-
-/* jshint ignore:start */
-if (callback) {
- if(typeof define === 'function' && define.amd){
- //For backwards compatability
- var n_callback = callback;
- if (typeof requirejs === 'function') {
- requirejs(["strophe"], function(o){
- n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
- });
- } else {
- require(["strophe"], function(o){
- n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
- });
- }
- }else{
- return callback(Strophe, $build, $msg, $iq, $pres);
- }
-}
-
-
-})(function (Strophe, build, msg, iq, pres) {
- window.Strophe = Strophe;
- window.$build = build;
- window.$msg = msg;
- window.$iq = iq;
- window.$pres = pres;
-});
-/* jshint ignore:end */
diff --git a/build/js/jsxc/lib/strophe.vcard/index.js b/build/js/jsxc/lib/strophe.vcard/index.js
deleted file mode 100644
index 9430710..0000000
--- a/build/js/jsxc/lib/strophe.vcard/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// Generated by CoffeeScript 1.10.0
-
-/*
-Plugin to implement the vCard extension.
-http://xmpp.org/extensions/xep-0054.html
-
-Author: Nathan Zorn (nathan.zorn@gmail.com)
-CoffeeScript port: Andreas Guth (guth@dbis.rwth-aachen.de)
- */
-
-
-/* jslint configuration: */
-
-
-/* global document, window, setTimeout, clearTimeout, console,
- XMLHttpRequest, ActiveXObject,
- Base64, MD5,
- Strophe, $build, $msg, $iq, $pres
- */
-
-(function() {
- var buildIq;
-
- buildIq = function(type, jid, vCardEl) {
- var iq;
- iq = $iq(jid ? {
- type: type,
- to: jid
- } : {
- type: type
- });
- iq.c("vCard", {
- xmlns: Strophe.NS.VCARD
- });
- if (vCardEl) {
- iq.cnode(vCardEl);
- }
- return iq;
- };
-
- Strophe.addConnectionPlugin('vcard', {
- _connection: null,
- init: function(conn) {
- this._connection = conn;
- return Strophe.addNamespace('VCARD', 'vcard-temp');
- },
-
- /*Function
- Retrieve a vCard for a JID/Entity
- Parameters:
- (Function) handler_cb - The callback function used to handle the request.
- (String) jid - optional - The name of the entity to request the vCard
- If no jid is given, this function retrieves the current user's vcard.
- (Function) error_cb - The callback function used to handle error repsonse.
- */
- get: function(handler_cb, jid, error_cb) {
- var iq;
- if (typeof jid === 'function') {
- error_cb = jid;
- jid = null;
- }
- iq = buildIq("get", jid);
- return this._connection.sendIQ(iq, handler_cb, error_cb);
- },
-
- /* Function
- Set an entity's vCard.
- */
- set: function(handler_cb, vCardEl, jid, error_cb) {
- var iq;
- iq = buildIq("set", jid, vCardEl);
- return this._connection.sendIQ(iq, handler_cb, error_cb);
- }
- });
-
-}).call(this);
diff --git a/build/js/jsxc/lib/strophe.x/index.js b/build/js/jsxc/lib/strophe.x/index.js
deleted file mode 100644
index 0635096..0000000
--- a/build/js/jsxc/lib/strophe.x/index.js
+++ /dev/null
@@ -1,845 +0,0 @@
-// Generated by CoffeeScript 1.8.0
-(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; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
- helper = {
- fill: function(src, target, klass) {
- var f, _i, _len, _results;
- _results = [];
- for (_i = 0, _len = src.length; _i < _len; _i++) {
- f = src[_i];
- _results.push(target.push(f instanceof klass ? f : new klass(f)));
- }
- return _results;
- },
- createHtmlFieldCouple: function(f) {
- var div, id;
- 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 />");
- return div.children();
- },
- getHtmlFields: function(html) {
- html = $(html);
- return __slice.call(html.find("input")).concat(__slice.call(html.find("select")), __slice.call(html.find("textarea")));
- }
- };
-
- Form = (function() {
- Form._types = ["form", "submit", "cancel", "result"];
-
- 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;
- this.fields = [];
- this.items = [];
- this.reported = [];
- if (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;
- _results = [];
- for (_i = 0, _len = src.length; _i < _len; _i++) {
- f = src[_i];
- _results.push(target.push(f instanceof klass ? f : new klass(f)));
- }
- return _results;
- };
- if (opt.fields) {
- if (opt.fields) {
- helper.fill(opt.fields, this.fields, Field);
- }
- } else if (opt.items) {
- if (opt.items) {
- helper.fill(opt.items, this.items, Item);
- }
- _ref1 = this.items;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- i = _ref1[_i];
- _ref2 = i.fields;
- for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
- f = _ref2[_j];
- if (!(_ref3 = f["var"], __indexOf.call(this.reported, _ref3) >= 0)) {
- this.reported.push(f["var"]);
- }
- }
- }
- }
- }
- }
-
- 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;
- xml = $build("x", {
- xmlns: "jabber:x:data",
- type: this.type
- });
- if (this.title) {
- xml.c("title").t(this.title.toString()).up();
- }
- if (this.instructions) {
- xml.c("instructions").t(this.instructions.toString()).up();
- }
- if (this.fields.length > 0) {
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- xml.cnode(f.toXML()).up();
- }
- } else if (this.items.length > 0) {
- xml.c("reported");
- _ref1 = this.reported;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
- r = _ref1[_j];
- xml.c("field", {
- "var": r
- }).up();
- }
- xml.up();
- _ref2 = this.items;
- for (_k = 0, _len2 = _ref2.length; _k < _len2; _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;
- json = {
- type: this.type
- };
- if (this.title) {
- json.title = this.title;
- }
- if (this.instructions) {
- json.instructions = this.instructions;
- }
- if (this.fields.length > 0) {
- json.fields = [];
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- json.fields.push(f.toJSON());
- }
- } else if (this.items.length > 0) {
- json.items = [];
- json.reported = this.reported;
- _ref1 = this.items;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _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;
- form = $("<form data-type='" + this.type + "'>");
- if (this.title) {
- form.append("<h1>" + this.title + "</h1>");
- }
- if (this.instructions) {
- form.append("<p>" + this.instructions + "</p>");
- }
- if (this.fields.length > 0) {
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- (helper.createHtmlFieldCouple(f)).appendTo(form);
- }
- } else if (this.items.length > 0) {
- _ref1 = this.items;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _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;
- xml = $(xml);
- f = new Form({
- type: xml.attr("type")
- });
- title = xml.find("title");
- if (title.length === 1) {
- f.title = title.text();
- }
- instr = xml.find("instructions");
- if (instr.length === 1) {
- f.instructions = instr.text();
- }
- fields = xml.find("field");
- items = xml.find("item");
- if (items.length > 0) {
- f.items = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = items.length; _i < _len; _i++) {
- i = items[_i];
- _results.push(Item.fromXML(i));
- }
- return _results;
- })();
- } else if (fields.length > 0) {
- f.fields = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = fields.length; _i < _len; _i++) {
- j = fields[_i];
- _results.push(Field.fromXML(j));
- }
- return _results;
- })();
- }
- reported = xml.find("reported");
- if (reported.length === 1) {
- fields = reported.find("field");
- f.reported = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = fields.length; _i < _len; _i++) {
- r = fields[_i];
- _results.push(($(r)).attr("var"));
- }
- return _results;
- })();
- }
- return f;
- };
-
- Form.fromHTML = function(html) {
- var f, field, fields, i, instructions, item, items, j, title, _i, _j, _len, _len1, _ref, _ref1, _ref2;
- html = $(html);
- f = new Form({
- type: html.attr("data-type")
- });
- title = html.find("h1").text();
- if (title) {
- f.title = title;
- }
- instructions = html.find("p").text();
- if (instructions) {
- f.instructions = instructions;
- }
- items = html.find("fieldset");
- fields = helper.getHtmlFields(html);
- if (items.length > 0) {
- f.items = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = items.length; _i < _len; _i++) {
- i = items[_i];
- _results.push(Item.fromHTML(i));
- }
- return _results;
- })();
- _ref = f.items;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- item = _ref[_i];
- _ref1 = item.fields;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
- field = _ref1[_j];
- if (!(_ref2 = field["var"], __indexOf.call(f.reported, _ref2) >= 0)) {
- f.reported.push(field["var"]);
- }
- }
- }
- } else if (fields.length > 0) {
- f.fields = (function() {
- var _k, _len2, _results;
- _results = [];
- for (_k = 0, _len2 = fields.length; _k < _len2; _k++) {
- j = fields[_k];
- _results.push(Field.fromHTML(j));
- }
- return _results;
- })();
- }
- return f;
- };
-
- return Form;
-
- })();
-
- Field = (function() {
- 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"];
-
- 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 = [];
- if (opt) {
- if (_ref = opt.type, __indexOf.call(Field._types, _ref) >= 0) {
- this.type = opt.type.toString();
- }
- if (opt.desc) {
- this.desc = opt.desc.toString();
- }
- if (opt.label) {
- this.label = opt.label.toString();
- }
- this["var"] = ((_ref1 = opt["var"]) != null ? _ref1.toString() : void 0) || "_no_var_was_defined_";
- this.required = opt.required === true || opt.required === "true";
- if (opt.options) {
- this.addOptions(opt.options);
- }
- if (opt.value) {
- opt.values = [opt.value];
- }
- if (opt.values) {
- this.addValues(opt.values);
- }
- }
- }
-
- Field.prototype.type = "text-single";
-
- Field.prototype.desc = null;
-
- Field.prototype.label = null;
-
- Field.prototype["var"] = "_no_var_was_defined_";
-
- Field.prototype.required = false;
-
- Field.prototype.addValue = function(val) {
- return this.addValues([val]);
- };
-
- Field.prototype.addValues = function(vals) {
- var multi, v, _ref;
- multi = (_ref = this.type, __indexOf.call(Field._multiTypes, _ref) >= 0);
- if (multi || (!multi && vals.length === 1)) {
- this.values = __slice.call(this.values).concat(__slice.call((function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = vals.length; _i < _len; _i++) {
- v = vals[_i];
- _results.push(v.toString());
- }
- return _results;
- })()));
- }
- return this;
- };
-
- Field.prototype.addOption = function(opt) {
- return this.addOptions([opt]);
- };
-
- Field.prototype.addOptions = function(opts) {
- var o;
- if (this.type === "list-single" || this.type === "list-multi") {
- if (typeof opts[0] !== "object") {
- opts = (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = opts.length; _i < _len; _i++) {
- o = opts[_i];
- _results.push(new Option({
- value: o.toString()
- }));
- }
- return _results;
- })();
- }
- helper.fill(opts, this.options, Option);
- }
- return this;
- };
-
- Field.prototype.toJSON = function() {
- var json, o, _i, _len, _ref;
- json = {
- type: this.type,
- "var": this["var"],
- required: this.required
- };
- if (this.desc) {
- json.desc = this.desc;
- }
- if (this.label) {
- json.label = this.label;
- }
- if (this.values) {
- json.values = this.values;
- }
- if (this.options) {
- json.options = [];
- _ref = this.options;
- for (_i = 0, _len = _ref.length; _i < _len; _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;
- attrs = {
- type: this.type,
- "var": this["var"]
- };
- if (this.label) {
- attrs.label = this.label;
- }
- xml = $build("field", attrs);
- if (this.desc) {
- xml.c("desc").t(this.desc).up();
- }
- if (this.required) {
- xml.c("required").up();
- }
- if (this.values) {
- _ref = this.values;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- v = _ref[_i];
- xml.c("value").t(v.toString()).up();
- }
- }
- if (this.options) {
- _ref1 = this.options;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _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':
- el = $("<select>");
- if (this.type === 'list-multi') {
- el.attr('multiple', 'multiple');
- }
- if (this.options.length > 0) {
- _ref = this.options;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- opt = _ref[_i];
- if (!(opt)) {
- continue;
- }
- o = $(opt.toHTML());
- _ref1 = this.values;
- for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
- k = _ref1[_j];
- if (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;
- _ref2 = this.values;
- _results = [];
- for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
- line = _ref2[_k];
- _results.push(line);
- }
- return _results;
- }).call(this)).join('\n');
- if (txt) {
- el.text(txt);
- }
- break;
- case 'text-single':
- case 'boolean':
- case 'text-private':
- case 'hidden':
- case 'fixed':
- case 'jid-single':
- el = $("<input>");
- if (this.values) {
- el.val(this.values[0]);
- }
- switch (this.type.toLowerCase()) {
- case 'text-single':
- el.attr('type', 'text');
- el.attr('placeholder', this.desc);
- break;
- case 'boolean':
- el.attr('type', 'checkbox');
- val = (_ref2 = this.values[0]) != null ? typeof _ref2.toString === "function" ? _ref2.toString() : void 0 : void 0;
- if (val && (val === "true" || val === "1")) {
- 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'>");
- }
- el.attr('name', this["var"]);
- if (this.required) {
- el.attr('required', this.required);
- }
- return el[0];
- };
-
- Field.fromXML = function(xml) {
- var o, v;
- xml = $(xml);
- return new Field({
- type: xml.attr("type"),
- "var": xml.attr("var"),
- label: xml.attr("label"),
- desc: xml.find("desc").text(),
- required: xml.find("required").length === 1,
- values: (function() {
- var _i, _len, _ref, _results;
- _ref = xml.find(">value");
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- v = _ref[_i];
- _results.push(($(v)).text());
- }
- return _results;
- })(),
- options: (function() {
- var _i, _len, _ref, _results;
- _ref = xml.find("option");
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- o = _ref[_i];
- _results.push(Option.fromXML(o));
- }
- return _results;
- })()
- });
- };
-
- Field._htmlElementToFieldType = function(el) {
- var r, type;
- el = $(el);
- switch (el[0].nodeName.toLowerCase()) {
- case "textarea":
- type = "text-multi";
- break;
- case "select":
- if (el.attr("multiple") === "multiple") {
- type = "list-multi";
- } else {
- type = "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 = el.attr("readonly") === "readonly";
- if (r) {
- type = "fixed";
- } else {
- type = "text-single";
- }
- }
- }
- return type;
- };
-
- Field.fromHTML = function(html) {
- var el, f, txt, type;
- html = $(html);
- type = Field._htmlElementToFieldType(html);
- f = new Field({
- type: type,
- "var": html.attr("name"),
- required: html.attr("required") === "required"
- });
- switch (type) {
- case "list-multi":
- case "list-single":
- f.values = (function() {
- var _i, _len, _ref, _results;
- _ref = html.find("option:selected");
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- el = _ref[_i];
- _results.push(($(el)).val());
- }
- return _results;
- })();
- f.options = (function() {
- var _i, _len, _ref, _results;
- _ref = html.find("option");
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- el = _ref[_i];
- _results.push(Option.fromHTML(el));
- }
- return _results;
- })();
- break;
- case "text-multi":
- case "jid-multi":
- txt = html.text();
- if (txt.trim() !== "") {
- f.values = txt.split('\n');
- }
- break;
- case 'text-single':
- case 'boolean':
- case 'text-private':
- case 'hidden':
- case 'fixed':
- case 'jid-single':
- if (html.val().trim() !== "") {
- f.values = [html.val()];
- }
- }
- return f;
- };
-
- return Field;
-
- })();
-
- Option = (function() {
- function Option(opt) {
- this.toHTML = __bind(this.toHTML, this);
- this.toJSON = __bind(this.toJSON, this);
- this.toXML = __bind(this.toXML, this);
- if (opt) {
- if (opt.label) {
- this.label = opt.label.toString();
- }
- if (opt.value) {
- this.value = opt.value.toString();
- }
- }
- }
-
- 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()
- });
- };
-
- return 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 = [];
- if (opts != null ? opts.fields : void 0) {
- helper.fill(opts.fields, this.fields, Field);
- }
- }
-
- Item.prototype.toXML = function() {
- var f, xml, _i, _len, _ref;
- xml = $build("item");
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- xml.cnode(f.toXML()).up();
- }
- return xml.tree();
- };
-
- Item.prototype.toJSON = function() {
- var f, json, _i, _len, _ref;
- json = {};
- if (this.fields) {
- json.fields = [];
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- json.fields.push(f.toJSON());
- }
- }
- return json;
- };
-
- Item.prototype.toHTML = function() {
- var f, fieldset, _i, _len, _ref;
- fieldset = $("<fieldset>");
- _ref = this.fields;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- (helper.createHtmlFieldCouple(f)).appendTo(fieldset);
- }
- return fieldset[0];
- };
-
- Item.fromXML = function(xml) {
- var f, fields;
- xml = $(xml);
- fields = xml.find("field");
- return new Item({
- fields: (function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = fields.length; _i < _len; _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;
- _ref = helper.getHtmlFields(html);
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- f = _ref[_i];
- _results.push(Field.fromHTML(f));
- }
- return _results;
- })()
- });
- };
-
- return 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;
- Strophe.addNamespace('DATA', 'jabber:x:data');
- if (((_ref = conn.disco) != null ? _ref.addFeature : void 0) != null) {
- conn.disco.addFeature(Strophe.NS.DATA);
- }
- if (((_ref1 = conn.disco) != null ? _ref1.addNode : void 0) != null) {
- return conn.disco.addNode(Strophe.NS.DATA, {
- items: []
- });
- }
- },
- parseFromResult: function(result) {
- var _ref;
- if (result.nodeName.toLowerCase() === "x") {
- return Form.fromXML(result);
- } else {
- return Form.fromXML((_ref = ($(result)).find("x")) != null ? _ref[0] : void 0);
- }
- }
- });
-
-}).call(this);
diff --git a/build/js/jsxc/lib/translation.js b/build/js/jsxc/lib/translation.js
index 3f0413d..79c1f79 100644
--- a/build/js/jsxc/lib/translation.js
+++ b/build/js/jsxc/lib/translation.js
@@ -1 +1 @@
-var I18next = {"bg":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Kopie","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":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":"Schließe alle"}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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 media 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","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification"}},"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":"Solo 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":"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo 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":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más 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":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","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":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","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 vacía, añadir un <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.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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 contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","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":"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","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 contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","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 le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","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":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","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 un 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 contact n'a pas fourni d'informations","Info_about":"À 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":"raccrocher","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 contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"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":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"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":"Ne peut charger que __count__ salons pour l'autocomplétion","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à rejoint 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":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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":"L'historique du salon est conservé","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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","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>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":null}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","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":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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":"Posiadasz tylko 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":"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.","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ą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","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ń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","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":"Prośba o kontakt","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":"Wybacz, 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":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","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.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Sua impressão digital","Buddy_fingerprint":"Impressão digital 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":"Impressões digitais","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":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","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":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","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.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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_":"Создается приватный ключ. Это может занять некоторое время","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_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","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":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"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":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","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_":"__status__","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":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"vi-VN":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"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":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","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_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","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":"來電","from":"只出","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":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","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_":"狀態: __status__","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":"加密但未校驗的對話開始了。","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":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":null}},"zh":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}}; \ No newline at end of file
+var I18next = {"bg":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Kopie","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":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":"Teile Bildschirm","Incoming_stream":"Eingehender Stream","Stream_started":"Stream gestarted","HTTPS_REQUIRED":"Diese Aktion erfordert eine verschlüsselte Verbindung.","EXTENSION_UNAVAILABLE":"Sie benötigen eine Browser Erweiterung.","UNKNOWN_ERROR":"Ein unbekannter Fehler ist aufgetreten.","Install_extension":"Bitte installieren Sie die Erweiterung um ihren Bildschirm zu teilen: ","Connection_accepted":"Verbindung angenommen","Stream_terminated":"Stream beendet","Close_all":"Schließe alle"}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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 media 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","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification","Unreadable_OTR_message":"Unreadable OTR message omitted"}},"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":"Solo 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":"Falló 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, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo 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":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más 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":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","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":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","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 vacía, añadir un <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.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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 contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","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":"Non 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 contact 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 contact 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, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","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 contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","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 le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion 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":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","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":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","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 un 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 contact n'a pas fourni d'informations","Info_about":"À 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":"raccrocher","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 contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"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":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"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":"Ne peut charger que __count__ salons pour l'autocomplétion","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à rejoint 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":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","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":"L'historique du salon est conservé","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 pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","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>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":"Tout fermer"}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","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":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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":"Posiadasz tylko 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":"Otrzymano niezaszyfrowaną 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! Powinieneś zrobić to samo.","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ą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i 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 znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","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ń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","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":"Prośba o kontakt","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":"Wybacz, 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":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","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.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"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":"Sua impressão digital","Buddy_fingerprint":"Impressão digital 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":"Impressões digitais","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":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","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":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","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.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":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_":"Создается приватный ключ. Это может занять некоторое время","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_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","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":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"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":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","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_":"__status__","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":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":" yazıyor...","_are_composing":" yazıyorlar...","Chat_state_notifications":"Sohbet durumu bildirimleri","setting-explanation-chat-state":"Birisi mesaj başlattığında veya mesaj yazmayı bıraktığında, sohbet durumu bildirimleri göndermek ve almak istiyor musunuz?","Share_screen":"Ekran paylaşımı","Incoming_stream":"Gelen akış","Stream_started":"Akış başladı","HTTPS_REQUIRED":"Bu eylem, şifreli bir bağlantı gerektirir.","EXTENSION_UNAVAILABLE":"Tarayıcı eklentisine ihtiyacınız var.","UNKNOWN_ERROR":"Bilinmeyen bir hata oluştu.","Install_extension":"Ekran paylaşımını kullanabilmek için lütfen eklentiyi yükleyin: ","Connection_accepted":"Bağlantı kabul edildi","Stream_terminated":"Akış sonlandırıldı","Close_all":"Hepsini kapat"}},"vi-VN":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"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":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","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_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","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":"來電","from":"只出","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":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","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_":"狀態: __status__","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":"加密但未校驗的對話開始了。","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":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":"全部關掉"}},"zh":{"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,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}}; \ No newline at end of file
diff --git a/build/js/ojsxc.js b/build/js/ojsxc.js
index 5210ea0..a0c9c0b 100644
--- a/build/js/ojsxc.js
+++ b/build/js/ojsxc.js
@@ -1,5 +1,5 @@
/*!
- * ojsxc v3.1.0-beta - 2017-01-23
+ * ojsxc v3.1.0-beta.2 - 2017-02-10
*
* Copyright (c) 2017 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 3.1.0-beta
+ * @version 3.1.0-beta.2
* @license MIT
*/
@@ -49,6 +49,13 @@ function onRosterToggle(event, state, duration) {
});
}
+ // update rich documents (collabora)
+ if (typeof documentsMain !== 'undefined') {
+ $('#mainContainer').animate({
+ right: (roster_width + toggle_width) + 'px'
+ });
+ }
+
// update app sidebar
if ($('#app-sidebar').length > 0) {
$('#app-sidebar').animate({
@@ -113,6 +120,13 @@ function onRosterReady() {
}
});
+ // update rich documents (collabora)
+ if (typeof documentsMain !== 'undefined') {
+ $('#mainContainer').animate({
+ right: (roster_width + roster_right + toggle_width) + 'px'
+ });
+ }
+
setTimeout(function(){
// update app sidebar
if ($('#app-sidebar').length > 0) {
diff --git a/build/settings.php b/build/settings.php
index 5c7d803..320ab27 100644
--- a/build/settings.php
+++ b/build/settings.php
@@ -22,4 +22,8 @@ $tmpl->assign('iceTtl', $config->getAppValue('ojsxc', 'iceTtl'));
$tmpl->assign('firefoxExtension', $config->getAppValue('ojsxc', 'firefoxExtension'));
$tmpl->assign('chromeExtension', $config->getAppValue('ojsxc', 'chromeExtension'));
+$externalServices = $config->getAppValue('ojsxc', 'externalServices');
+$externalServices = explode("|", $externalServices);
+$tmpl->assign('externalServices', $externalServices);
+
return $tmpl->fetchPage();
diff --git a/build/templates/settings.php b/build/templates/settings.php
index f892ad6..81843c4 100644
--- a/build/templates/settings.php
+++ b/build/templates/settings.php
@@ -2,90 +2,135 @@
<h2>JavaScript Xmpp Client</h2>
<form id="ojsxc">
<div class="form-group">
- <input type="radio" name="serverType" id="serverTypeInternal" required="required" value="internal" <?php if($_['serverType'] === 'internal')echo 'checked'; ?> />
- <label for="serverTypeInternal">Internal (Experimental)</label>
+ <label class="text-left form-no-padding">
+ <input type="radio" name="serverType" required="required" value="internal" <?php if($_['serverType'] === 'internal')echo 'checked'; ?> />
+ Internal (Experimental)
+ </label>
<em>Limited functionality only: No clients besides JSXC in ownCloud, no multi-user chat, no server-to-server federations.</em>
</div>
<div class="form-group">
- <input type="radio" name="serverType" id="serverTypeExternal" class="required" required="required" value="external" <?php if($_['serverType'] === 'external')echo 'checked'; ?> />
- <label for="serverTypeExternal">External</label>
+ <label class="text-left form-no-padding">
+ <input type="radio" name="serverType" class="required" required="required" value="external" <?php if($_['serverType'] === 'external')echo 'checked'; ?> />
+ External
+ </label>
<em>Choose this option to use your own XMPP server.</em>
</div>
- <div class="ojsxc-internal hidden">
-
- </div>
+ <fieldset>
+ <h3>Basic</h3>
+ <div class="ojsxc-internal hidden">
- <div class="ojsxc-external hidden">
- <div class="form-group">
- <label for="xmppDomain">* XMPP domain</label>
- <input type="text" name="xmppDomain" id="xmppDomain" class="required" required="required" value="<?php p($_['xmppDomain']); ?>" />
- </div>
- <div class="form-group">
- <label for="xmppPreferMail">Prefer mail address to loginName@xmppDomain</label>
- <input type="checkbox" name="xmppPreferMail" id="xmppPreferMail" value="true" <?php if($_['xmppPreferMail'] === 'true' || $_['xmppPreferMail'] === true) echo "checked"; ?> />
- </div>
- <div class="form-group">
- <label for="boshUrl">* BOSH url</label>
- <input type="text" name="boshUrl" id="boshUrl" class="required" required="required" value="<?php p($_['boshUrl']); ?>" />
- <div class="boshUrl-msg"></div>
</div>
- <div class="form-group">
- <label for="xmppResource">XMPP resource</label>
- <input type="text" name="xmppResource" id="xmppResource" value="<?php p($_['xmppResource']); ?>" />
+
+ <div class="ojsxc-external hidden">
+ <div class="form-group">
+ <label for="xmppDomain">* XMPP domain</label>
+ <div class="form-col">
+ <input type="text" name="xmppDomain" id="xmppDomain" class="required" required="required" value="<?php p($_['xmppDomain']); ?>" />
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="xmppPreferMail">Prefer mail address to loginName@xmppDomain</label>
+ <input type="checkbox" name="xmppPreferMail" id="xmppPreferMail" value="true" <?php if($_[ 'xmppPreferMail']==='true' || $_[ 'xmppPreferMail']===true) echo "checked"; ?> />
+ </div>
+ <div class="form-group">
+ <label for="boshUrl">* BOSH url</label>
+ <div class="form-col">
+ <input type="text" name="boshUrl" id="boshUrl" class="required" required="required" value="<?php p($_['boshUrl']); ?>" />
+ <div class="boshUrl-msg"></div>
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="xmppResource">XMPP resource</label>
+ <div class="form-col">
+ <input type="text" name="xmppResource" id="xmppResource" value="<?php p($_['xmppResource']); ?>" />
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="xmppOverwrite">Allow user to overwrite XMPP settings</label>
+ <div class="form-col">
+ <input type="checkbox" name="xmppOverwrite" id="xmppOverwrite" value="true" <?php if($_[ 'xmppOverwrite']==='true' || $_[ 'xmppOverwrite']===true) echo "checked"; ?> />
+ </div>
+ </div>
</div>
+
<div class="form-group">
- <label for="xmppOverwrite">Allow user to overwrite XMPP settings</label>
- <input type="checkbox" name="xmppOverwrite" id="xmppOverwrite" value="true" <?php if($_['xmppOverwrite'] === 'true' || $_['xmppOverwrite'] === true) echo "checked"; ?> />
+ <label for="xmppStartMinimized">Hide roster after first login</label>
+ <div class="form-col">
+ <input type="checkbox" name="xmppStartMinimized" id="xmppStartMinimized" value="true" <?php if($_[ 'xmppStartMinimized']==='true' || $_[ 'xmppStartMinimized']===true) echo "checked"; ?> />
+ </div>
</div>
- </div>
+ </fieldset>
- <div class="form-group">
- <label for="xmppStartMinimized">Hide roster after first login</label>
- <input type="checkbox" name="xmppStartMinimized" id="xmppStartMinimized" value="true" <?php if($_['xmppStartMinimized'] === 'true' || $_['xmppStartMinimized'] === true) echo "checked"; ?> />
- </div>
<fieldset>
<h3>ICE server <small>(WebRTC)</small></h3>
<div class="form-group">
<label for="iceUrl">Url</label>
- <input type="text" name="iceUrl" id="iceUrl" value="<?php p($_['iceUrl']); ?>" placeholder="stun:stun.stunprotocol.org" pattern="^(stun|turn):.+" />
+ <div class="form-col">
+ <input type="text" name="iceUrl" id="iceUrl" value="<?php p($_['iceUrl']); ?>" placeholder="stun:stun.stunprotocol.org" pattern="^(stun|turn):.+" />
+ </div>
</div>
<div class="form-group">
<label for="iceUsername">TURN Username</label>
- <input type="text" name="iceUsername" id="iceUrl" value="<?php p($_['iceUsername']); ?>" />
- <em>If no username is set, TURN-REST-API credentials are used.</em>
+ <div class="form-col">
+ <input type="text" name="iceUsername" id="iceUsername" value="<?php p($_['iceUsername']); ?>" />
+ <em>If no username is set, TURN-REST-API credentials are used.</em>
+ </div>
</div>
<div class="form-group">
<label for="iceCredential">TURN Credential</label>
- <input type="text" name="iceCredential" id="iceCredential" value="<?php p($_['iceCredential']); ?>" />
- <em>If no password is set, TURN-REST-API credentials are used.</em>
+ <div class="form-col">
+ <input type="text" name="iceCredential" id="iceCredential" value="<?php p($_['iceCredential']); ?>" />
+ <em>If no password is set, TURN-REST-API credentials are used.</em>
+ </div>
</div>
<div class="form-group">
<label for="iceSecret">TURN Secret</label>
- <input type="text" name="iceSecret" id="iceSecret" value="<?php p($_['iceSecret']); ?>" />
- <em>Secret for TURN-REST-API credentials as described <a href="http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00" target="_blank">here</a>.</em>
+ <div class="form-col">
+ <input type="text" name="iceSecret" id="iceSecret" value="<?php p($_['iceSecret']); ?>" />
+ <em>Secret for TURN-REST-API credentials as described <a href="http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00" target="_blank">here</a>.</em>
+ </div>
</div>
<div class="form-group">
<label for="iceTtl">TURN TTL</label>
- <input type="number" name="iceTtl" id="iceTtl" value="<?php p($_['iceTtl']); ?>" />
- <em>Lifetime for TURN-REST-API credentials in seconds.</em>
+ <div class="form-col">
+ <input type="number" name="iceTtl" id="iceTtl" value="<?php p($_['iceTtl']); ?>" />
+ <em>Lifetime for TURN-REST-API credentials in seconds.</em>
+ </div>
</div>
</fieldset>
<fieldset>
<h3>Screen sharing</h3>
<div class="form-group">
<label for="firefoxExtension">Firefox Extension Url</label>
- <input type="url" name="firefoxExtension" id="firefoxExtension" value="<?php p($_['firefoxExtension']); ?>" />
- <em>Firefox needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ <div class="form-col">
+ <input type="url" name="firefoxExtension" id="firefoxExtension" value="<?php p($_['firefoxExtension']); ?>" />
+ <em>Firefox needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ </div>
</div>
<div class="form-group">
<label for="chromeExtension">Chrome Extension Url</label>
- <input type="url" name="chromeExtension" id="chromeExtension" value="<?php p($_['chromeExtension']); ?>" />
- <em>Chrome needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ <div class="form-col">
+ <input type="url" name="chromeExtension" id="chromeExtension" value="<?php p($_['chromeExtension']); ?>" />
+ <em>Chrome needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <h3>CSP <small>Content-Security-Policy</small></h3>
+ <div class="form-group">
+ <label for="fileUpload">External services</label>
+ <div class="form-col">
+ <?php foreach($_['externalServices'] as $external): ?>
+ <input type="text" name="externalServices[]" value="<?php p($external); ?>" pattern="^(https://)?([\w\d*][\w\d-]*)(\.[\w\d-]+)+(:[\d]+)?$" />
+ <?php endforeach;?>
+ <button class="add-input">+</button>
+ <em>All domains of external services which JSXC should reach. E.g. http file upload service. <a href="#" id="insert-upload-service">Insert upload services automatically</a>.</em>
+ </div>
</div>
</fieldset>
- <div class="form-offset-label">
+ <div class="form-col-offset">
<div class="msg"></div>
<input type="submit" value="Save settings" />